この記事は私が金沢工業大学ロボティクス学科で担当している講義ロボットプログラミングⅡ用です。今回は地図作成(SLAM)と自己位置推定(AMCL)のパッケージを使いロボットにナビゲーションをさせましょう! 本記事を以下の記事を参考にしています。
1. 地図生成
(1) 端末を3つ開き以下のコマンドを実行する。
gazeboシミュレータを起動
- $ export TURTLEBOT3_MODEL=burger
- $ roslaunch turtlebot3_gazebo turtlebot3_world.launch
地図生成のgmappingを起動
- $ export TURTLEBOT3_MODEL=burger
- $ roslaunch turtlebot3_slam turtlebot3_slam.launch
ROSのビジュアライションツールrvizを起動
- rosrun rviz rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_slam.rviz
注:rvizがOpenGL関係のエラーで落ちる場合は、以下の1行を.bashrcの最後に付け加える。
- export LIBGL_ALWAYS_SOFTWARE=1
(2) 端末を開き、以下のコマンドでロボットを動かし、地図を作る。
- $ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
(3) 端末を開き、以下のコマンドで地図を保存する。mymapは保存する地図名なので適宜変更する。
- $ mkdir ~/maps
- $ rosrun map_server map_saver -f ~/maps/mymap
2. ナビゲーション
一度開いている端末を全部閉じ、ノードを落とす。
(1) gazeboシミュレータを起動
- $ export TURTLEBOT3_MODEL=burger
- $ roslaunch turtlebot3_gazebo turtlebot3_world.launch
(2) 自己位置推定ノードの起動
上で作成した地図を使ってナビゲーションをする。
- $ export TURTLEBOT3_MODEL=burger
- $ roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/maps/mymap.yaml
(3) rvizを起動
- $ rosrun rviz rviz -d `rospack find turtlebot3_navigation`/rviz/turtlebot3_nav.rviz
(4) ロボット初期位置の設定
上で起動したrviz(上図)の”2D Pose Estimation”をクリックして選択し、下図シミュレータのロボットの向きと位置が合うように、rviz上でロボットの位置と向きを設定する。ロボットの位置にマウスのカーソールを持って行き、ロボットの向きにドラッグすると設定終わり。
(5) ゴールの設定
次にrvizの”2D Nav Goal”をクリックして、初期位置を設定したのと同様に、ゴールの位置と向きを設定する。設定するとロボットが自動で動き出す。
終わり
コメント