使い方
1.GMKの電源を入れてMQTTを立ち上げる
2.ロボットカーに電池をつなぎ起動する(LEDが赤全灯から青1個点灯に変わる)
3.DELL2で使用するROSのノードをまとめて起動する
ros2 launch My_Navi_basic my_navigation_launch.py # デフォルトのmy_mapを使う場合
ros2 launch My_Navi_basic my_navigation_launch.py map_name:=my_map2 # 地図を指定する場合
4.DELL2にリモートでログインする
5./scanと/odomのパブリッシュを開始する。
mosquitto_pub -h 192.168.0.110 -t "Roller485/cmd_sw" -m '{"pos": "on"}' # 起動
mosquitto_pub -h 192.168.0.110 -t "Roller485/cmd_sw" -m '{"pos": "off"}' # 停止
# ジョイステックを使う場合
6.コントローラをBluetoothでMiNI2に接続する
7.MiNI2からMy_Mavi.pyを起動する
8.コントローラの三角ボタンを押して、/scanと/odomのパブリッシュを開始する
nav2_params.yamlの変更一覧
| 項目名 | 所属ノード | Nav2デフォルト値 (推定) | 現在設定している値 | 設定変更の理由 |
inflation_radius | global/local_costmap | 0.55 m | 0.75 m | ロボットが障害物から十分な距離 (約 +0.05m) を確保して通過できるように安全マージンを拡大した。 |
QoS (reliability) | amcl, costmap (scan) | best_effort (センサー標準) | reliable | SLAM安定化のためLiDARノードを RELIABLE に変更したことに伴い、Nav2側の購読設定も合わせて通信不整合を防ぐため。 |
controller_frequency | controller_server | 20.0 Hz | 10.0 Hz | 通信遅延や計算負荷を考慮しつつ、スムーズな制御を行うためのバランス調整。以前の 5.0 Hz から引き上げている。 |
temperature | controller_server (MPPI) | 0.3 | 0.2 | スタート時の「ぎくしゃく感」を抑えるため、ランダム性をわずかに緩和して挙動を安定化させた。 |
batch_size | controller_server (MPPI) | 600 (CPU版) | 1000 | 経路探索の候補数を増やし、より最適なパスを見つけやすくすることで、複雑な回避動作の精度を向上させた。 |
time_steps | controller_server (MPPI) | 56 | 25 | 予測ホライズンを短くすることで計算負荷を下げ、近傍の障害物回避にリソースを集中させた。 |
max_rotational_vel | behavior_server | 1.8 rad/s | 0.75 rad/s | ロボットの物理的な旋回性能に合わせ、暴走や脱調を防ぐために速度を制限した。 |
max_vel_theta / wz_max | controller_server | 1.8 rad/s | 0.75 rad/s | コントローラー側でも最大回転速度を制限し、挙動を一貫させた。 |
max_speed_xy / vx_max | controller_server | 0.26 ~ 0.5 m/s | 0.15 m/s | マップ追従の安定性を確保し、通信遅延時のオーバーシュートを防ぐために直進速度を低速に制限した。 |
publish_frequency | local_costmap | 5.0 Hz | 5.0 Hz | 以前の設定では低すぎた可能性があるため、標準的な更新頻度を維持して障害物への反応速度を確保した。 |
update_frequency | local_costmap | 5.0 Hz | 10.0 Hz | コストマップの更新頻度を高め、移動中の障害物検知の遅れを最小限にした。 |
xy_goal_tolerance | controller_server | 0.25 m | 0.30 m | ゴール直前での微細な位置合わせによる「ふらつき」を減らし、到着判定をスムーズにするため緩和した。 |
yaw_goal_tolerance | controller_server | 0.25 rad | 0.40 rad | ゴール時の角度合わせの厳密さを緩和し、スムーズに停止動作へ移行させるため。 |