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

迂回路探索

迂回路探索を試す場合は上の写真のように障害物を配置する。
その際のマップはmy_map3を使ってローンチは以下のコマンドを使う。
ros2 launch My_Navi_imu my_navigation_launch.py map_name:=my_map3 # 迂回路探索用の地図を指定する

使い方

1.PC(DELL2)の電源を入れる
2.ロボットカーに電池をつなぎ起動する(LEDが赤全灯から青1個点灯に変わる)
3.使用するROSのノードをまとめて起動する
  ros2 launch My_Navi_imu my_navigation_launch.py                   # デフォルトのmy_mapを使う場合
  ros2 launch My_Navi_imu my_navigation_launch.py map_name:=my_map5 # 地図を指定する場合
  # パラメータファイルを指定する場合。地図指定と併用可
  ros2 launch My_Navi_imu my_navigation_launch.py params_file:=nav2_params_20251225.yaml 
4.別のターミナルを開く
5./scanと/odomのパブリッシュを開始する。
  mosquitto_pub -h 192.168.0.63 -t "Roller485/cmd_sw" -m '{"pos": "on"}'     # 起動
  mosquitto_pub -h 192.168.0.63 -t "Roller485/cmd_sw" -m '{"pos": "off"}'    # 停止

# ジョイステックを使う場合

6.別のターミナルを開く
7.コントローラとPC(DELL2)をBluetoothで接続し、コントロールプログラムを起動する
  ~/My_Navi_ws/src/My_Navi_basic/launch/start_joystick.sh
8.コントローラの三角ボタンを押して、/scanと/odomのパブリッシュを開始する

nav2_params.yamlの変更一覧

項目名所属ノードNav2デフォルト値 (推定)現在設定している値設定変更の理由
transform_tolerance全ノード共通1.0 s1.0 s【Localhost化】 通信遅延が解消されたため、過剰な待機時間(3.0s等)を廃止し、異常時に即座に停止できるよう標準値に戻した。
alpha1 ~ alpha4amcl0.05 ~ 0.20.05【長期安定化】 以前(0.005)はオドメトリを過信しすぎていたため、標準的な値に戻して位置ズレをLiDARで補正しやすくした。
inflation_radiusglobal_costmap0.55 m0.55 m【パス品質向上】 障害物周辺の警戒エリアを広げ、明らかに通れない狭い隙間にパスが引かれるのを防ぐため拡大した。(以前 0.35m)
cost_scaling_factorglobal_costmap10.03.0【パス品質向上】 コストの勾配をなだらかにし、壁際を「高コスト」と認識させて、広い場所を通るように誘導するため。(以前 12.0)
inflation_radiuslocal_costmap0.55 m0.30 m【狭所対策】 狭い通路でもロボットが「通れる」と判断できるように、壁からの圧迫感(コスト半径)を縮小した。(以前 0.45m)
cost_scaling_factorlocal_costmap10.012.0【狭所対策】 壁際以外を急速に「安全」と判定させ、通路の中央をスムーズに通れるようにした。
footprint_paddinglocal_costmap0.01 m0.01 m【狭所対策】 衝突マージンを1cmまで削り、物理的にギリギリの場所でも通過を許可するようにした。(以前 0.03m)
xy_goal_tolerancecontroller_server0.25 m0.20 m【精度向上】 通信遅延解消により制御精度が上がったため、より正確な位置(20cm以内)に停止するように厳しくした。(以前 0.30m)
yaw_goal_tolerancecontroller_server0.25 rad0.30 rad【精度向上】 角度合わせも同様に精度を向上させた。(以前 0.40rad / 約23度 → 約17度)
update_frequencylocal_costmap5.0 Hz10.0 Hz【レスポンス向上】 MPPIの制御周期(10Hz)に合わせ、障害物への反応速度を最大化するため引き上げた。(以前 2.0Hz)
publish_frequencylocal_costmap5.0 Hz5.0 HzLocalhost化で通信帯域に余裕ができたため、可視化用の配信頻度を標準的な値に戻した。(以前 2.0Hz)
batch_sizecontroller_server
(MPPI)
6001000【性能維持】 狭所通過のために高い予測能力が必要なため、CPU負荷削減よりも経路探索の精度を優先して維持した。
time_stepscontroller_server
(MPPI)
5625【バランス調整】 予測ホライズンは以前の調整のまま(約2.5秒先)、近傍の回避に集中させている。