2. 車体の自己位置推定と地図作成(SLAM)
実現方法
Gmapping アルゴリズムを使用して、シャーシカーが置かれた未知の環境の地図を作成しながら同時に自己位置推定を行い、最後にこの地図を保存します。下図は屋内シーンでの実際の様子です。(実際の状況に応じて、地図を作成する場所を選んでください。)

操作手順
ヒント:車体にリモート接続し、車体の下位制御コードを起動します。
その後、ローカルでキーボードによるリモート操作、地図作成、ナビゲーションなどの操作を行います。
ロボットへのリモート接続
ステップ1:回路を接続します。
ステップ2:プログラムを実行して動作を確認します。具体的な操作手順は以下のとおりです。
-
「Ctrl + T」でターミナルを開きます。
-
開いたターミナルで、ssh により車体に接続します(パスワードは sunrise)。
ssh sunrise@192.168.xx.xx
シャーシとLiDARの起動
- 下位ドライバ(シャーシとLiDAR)をリモートで起動します。
シャーシを起動するには、ターミナルで次のコマンドを入力します。
ros2 launch robot_driver robot_driver_launch.py
LiDARを起動するには、ターミナルで次のコマンドを入力します。
ros2 launch ydlidar_ros2_driver ydlidar_launch.py
シャーシによる地図作成
- urdf 設定ファイルを起動します。ローカルの VScode で開いたターミナルで、次のコマンドを入力します。
ros2 launch fishbot_bringup bringup_quick.launch.py
- 地図作成サービスを起動します。ローカルの VScode で開いたターミナルで、次のコマンドを入力します。
cd ~/unirobot_ws/src/ros2_humble_gmapping/slam_gmapping_altered/launch
続いてターミナルに次のように入力します。
ros2 launch pipeline_launch.py
- rviz を読み込みます。ローカルの VScode で開いたターミナルで、次のコマンドを入力します。
~/fishbot_nav/src/fishbot_navigation2/rviz
続いてターミナルに次のように入力します。
rviz2 -d slam_toolbox.rviz
- キーボードによる車体操作コマンドを起動します。ローカルの VScode で開いたターミナルで、次のコマンドを入力します。
ros2 run keyboard_control keyboard_control
-
車体をリモート操作して会場内を一周させ、地図作成を開始します。
-
地図を保存します。ローカルの VScode で開いたターミナルで、次のコマンドを入力します。
cd ~/fishbot_nav/src/fishbot_navigation2/maps
続いてターミナルに次のように入力します。
ros2 run nav2_map_server map_saver_cli -t map -f your_map_name
ドキュメント