目次 — 知りたいところから読む
最初のNav2実験では、独自ロボットの設定をすべて同時に持ち込まず、公式のTurtleBotシミュレーションで「地図を作る」と「保存済み地図で移動する」を分けて確認する。2026年9月7日時点のJazzy向け資料に基づく手順であり、この執筆環境ではGazeboを起動していない。
環境と版を記録する
対象はUbuntu 24.04、ROS 2 Jazzy、対応するGazebo環境。ROS 2導入済みのGUI端末で、Nav2 Quickstartに従って必要なパッケージを準備する。Humble向けGazebo Classicの手順とは混ぜない。
source /opt/ros/jazzy/setup.bash
sudo apt update
sudo apt install ros-jazzy-navigation2 ros-jazzy-nav2-bringup ros-jazzy-slam-toolbox ros-jazzy-nav2-minimal-tb3-sim
dpkg-query -W ros-jazzy-navigation2 ros-jazzy-nav2-bringup ros-jazzy-slam-toolbox ros-jazzy-nav2-minimal-tb3-sim
ros2 launch nav2_bringup tb3_simulation_launch.py --show-args
インストール時の版を記録し、slam、map、use_sim_time引数があることを確認する。Jazzyのlaunchファイルを対応する資料として読む。
地図作成モードで起動する
実機と通信しない専用のROS環境で起動する。以下のROS_DOMAIN_IDは例であり、同じIDの実機が存在しないことを確認する。以後、新しい端末でも同じ設定を使う。
source /opt/ros/jazzy/setup.bash
export ROS_DOMAIN_ID=73
ros2 launch nav2_bringup tb3_simulation_launch.py slam:=True headless:=False use_sim_time:=True
公式SLAM手順ではSLAMが/mapとmap → odomを提供する。このモードへAMCLを別途追加して、同じTFを二重に配信しない。
小さいゴールで地図が更新されるかを見る
別端末で環境を読み込み、export ROS_DOMAIN_ID=73を設定してから確認する。
ros2 topic list
ros2 topic hz /scan
ros2 run tf2_ros tf2_echo map base_link
RVizで地図、LaserScan、ロボットの位置が対応していることを確認する。まず既に観測できている近い自由空間へNav2 Goalを置き、到達したら隣の領域へ進む。未知領域の奥をいきなり指定して経路が出ないことと、SLAMが動いていないことを混同しない。
地図を保存して再起動する
同じ環境の別端末で、新しい作業フォルダへ地図を保存する。mapは保存ファイルの名前であり、既存の地図を上書きしない名前を選ぶ。
mkdir -p nav2-map-lab
cd nav2-map-lab
ros2 run nav2_map_server map_saver_cli -f map --ros-args -p use_sim_time:=true
生成されたmap.yamlと、それが参照する画像の両方を保持する。元のlaunchをCtrl+Cで止めて終了を待ち、nav2-map-labフォルダから保存地図で起動する。
ros2 launch nav2_bringup tb3_simulation_launch.py slam:=False map:="$PWD/map.yaml" headless:=False use_sim_time:=True
RVizの2D Pose Estimateでシミュレータ上の現在位置・向きを指定する。その後、近いゴールを指定し、経路の生成と到達を確認する。保存地図モードは地図を更新するSLAMモードと役割が異なる。
失敗を境界ごとに切り分ける
| 症状 | 先に確認すること |
|---|---|
| ロボットや世界が表示されない | シミュレータの起動ログとモデルの導入 |
| 地図が出ない | /scan、SLAMノード、シミュレーション時計 |
| TFが見つからない | ノード間のdomain、時刻、frame名 |
| 保存地図で位置が合わない | YAMLの画像参照と初期位置・向き |
| 経路が出ない | ゴールが既知の自由空間内か、車体の大きさを含めて通れるか |
各段階で使用した版、起動コマンド、地図、成功・失敗のログを残す。newbotの実装記録は3D LiDARと別のオドメトリ構成を含むため、この最小手順からの変更点を一つずつ追って読む。
コメント
コメントの投稿にはログインが必要です
まだコメントはありません。