自作ロボットカーを自動走行する

使い方

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_radiusglobal/local_costmap0.55 m0.75 mロボットが障害物から十分な距離 (約 +0.05m) を確保して通過できるように安全マージンを拡大した。
QoS (reliability)amcl, costmap (scan)best_effort (センサー標準)reliableSLAM安定化のためLiDARノードを RELIABLE に変更したことに伴い、Nav2側の購読設定も合わせて通信不整合を防ぐため。
controller_frequencycontroller_server20.0 Hz10.0 Hz通信遅延や計算負荷を考慮しつつ、スムーズな制御を行うためのバランス調整。以前の 5.0 Hz から引き上げている。
temperaturecontroller_server (MPPI)0.30.2スタート時の「ぎくしゃく感」を抑えるため、ランダム性をわずかに緩和して挙動を安定化させた。
batch_sizecontroller_server (MPPI)600 (CPU版)1000経路探索の候補数を増やし、より最適なパスを見つけやすくすることで、複雑な回避動作の精度を向上させた。
time_stepscontroller_server (MPPI)5625予測ホライズンを短くすることで計算負荷を下げ、近傍の障害物回避にリソースを集中させた。
max_rotational_velbehavior_server1.8 rad/s0.75 rad/sロボットの物理的な旋回性能に合わせ、暴走や脱調を防ぐために速度を制限した。
max_vel_theta / wz_maxcontroller_server1.8 rad/s0.75 rad/sコントローラー側でも最大回転速度を制限し、挙動を一貫させた。
max_speed_xy / vx_maxcontroller_server0.26 ~ 0.5 m/s0.15 m/sマップ追従の安定性を確保し、通信遅延時のオーバーシュートを防ぐために直進速度を低速に制限した。
publish_frequencylocal_costmap5.0 Hz5.0 Hz以前の設定では低すぎた可能性があるため、標準的な更新頻度を維持して障害物への反応速度を確保した。
update_frequencylocal_costmap5.0 Hz10.0 Hzコストマップの更新頻度を高め、移動中の障害物検知の遅れを最小限にした。
xy_goal_tolerancecontroller_server0.25 m0.30 mゴール直前での微細な位置合わせによる「ふらつき」を減らし、到着判定をスムーズにするため緩和した。
yaw_goal_tolerancecontroller_server0.25 rad0.40 radゴール時の角度合わせの厳密さを緩和し、スムーズに停止動作へ移行させるため。