準 備
- happy_miniを使う場合は,次のGithubのサイトからHappy Mini TurtleBot3 Simulationsパッケージを次のコマンドでクローンしておく必要があります.turtlebot3 burger, waffle,waffle_piを使う場合は必要ありません.
$ cd ~/colcon_ws/src
$ git clone https://github.com/demulab/happy_mini_turtlebot3_sim.git
$ cd ~/colcon_ws
$ colcon build --symlink-install
ナビゲーションシミュレーションの起動
- 前回の演習で地図を作成しました.今回はこの地図を使ってナビゲーションを行います.
$ export TURTLEBOT3_MODEL=happy_mini
$ ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
ナビゲーションノードの実行
$ export TURTLEBOT3_MODEL=happy_mini
$ ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=$HOME/map.yaml
初期姿勢の推定
- ナビゲーションを行う前に,まず,初期姿勢を設定する必要があります.次の要領でLIDARのデータと地図を一致させます.
- RViz2のメニューにある
2D Pose Estimate
ボタンをクリックします. - 地図上でロボットがいる地点をクリックして,ロボットの進行方向に緑色の矢印をドラッグします.
- 保存した地図とLIDARのデータが一致するようにステップ1と2を繰り返します.
- teleop_keyboardノードを次のコマンドで起動します.
$ ros2 run turtlebot3_teleop teleop_keyboard
- 遠隔操作でロボットを少し前後して,下図の左下に見える小さな矢印が一か所に集まるようにします.
- ナビゲーションがうまく実行されるように,
Ctrl
+C
を押してteleop_keyboardノードを落とします.
目標地点の設定
- RViz2の
Navigation2 Goal
ボタンをクリック - 地図上でナビゲーションの目標地点をクリックして,その地点でのロボットの向きをドラッグします.
- この緑の矢印がロボットの目標地点での姿勢(位置と向き)を表します.
- 矢印の根本の座標
x
,y
が目標地点の座標で,矢印の向きがロボットの姿勢θ
になります. - 位置 x, y, と姿勢θ が設定されたら,ロボットが目標に向けて動き出します.
終わり
コメント