ロボットプログラミングⅡ:第7週 地図作成・自己位置推定(SLAM, AMCL)

rviz2この記事は私が担当している講義ロボットプログラミングⅡ用です。今回は地図作成(SLAM)と自己位置推定(AMCL)のパッケージを使いロボットにナビゲーションをさせましょう! 本記事を以下のチュートリアルを参考にしています。

1. 地図生成

(1) 端末を3つ開き以下のコマンドを実行する。

gazeboシミュレータを起動

  • $ roslaunch turtlebot_gazebo turtlebot_world.launch

地図生成のgmappingを起動

  • $ roslaunch turtlebot_gazebo gmapping_demo.launch

ROSのビジュアライションツールrvizを起動

  • $ roslaunch turtlebot_rviz_launchers view_navigation.launch

注:rvizがOpenGL関係のエラーで落ちる場合は、以下の1行を.bashrcの最後に付け加える。

  • export LIBGL_ALWAYS_SOFTWARE=1

(2) 端末を開き、以下のコマンドでロボットを動かし、地図を作る。

  • $ roslaunch turtlebot_teleop keyboard_teleop.launch

(3)  端末を開き、以下のコマンドで地図を保存する。mymapは保存する地図名なので適宜変更する。

  • $ mkdir  ~/maps
  • $ rosrun map_server map_saver -f  ~/maps/mymap

 

2. ナビゲーション

一度開いている端末を全部閉じ、ノードを落とす。

(1)  gazeboシミュレータを起動

  • $ roslaunch turtlebot_gazebo turtlebot_world.launch

(2) 自己位置推定ノードの起動
上で作成した地図を使ってナビゲーションできるが、ここではすでに作られている地図を使う。

  • $ roslaunch turtlebot_gazebo amcl_demo.launch map_file:=/opt/ros/indigo/share/turtlebot_gazebo/maps/playground.yaml

(3) rvizを起動

  • $ roslaunch turtlebot_rviz_launchers view_navigation.launch

(4) ロボット初期位置の設定
上で起動したrviz(上図)の”2D Pose Estimation”をクリックして選択し、下図シミュレータのロボットの向きと位置が合うように、rviz上でロボットの位置と向きを設定する。ロボットの位置にマウスのカーソールを持って行き、ロボットの向きにドラッグすると設定終わり。

(5) ゴールの設定
次にrvizの”2D Nav Goal”をクリックして、初期位置を設定したのと同様に、ゴールの位置と向きを設定する。設定するとロボットが自動で動き出す。

gazebo終わり

コメント

タイトルとURLをコピーしました