概要
「初心者がAI Challengeやってみた」シリーズの第3弾です。
今回はlongitudinal関連や、path interval関連のパラメータを調整して回避動作がシャープになったので共有します。
前回と前々回の記事はこちら:
- 第1弾:初心者がAIチャレンジやってみた(1):Autowareを動かしてみる
- 第2弾:初心者がAIチャレンジやってみた(2):1つ目の障害物の回避成功
筆者はautoware初心者です。
説明等が正確でない可能性があるので本記事だけではなく他の記事やautowareのドキュメントも確認するようにしてください。
パラメータ調整
Longitudinal関連
車両の進行方向の距離関連のパラメータ。
多分障害物を避け始めるタイミングとかを設定しており、デフォルト値だと障害物の十分前から回避をするように計画するため、かなり緩やかな回避経路が生成される。
逆に言うとAI Challengeのように障害物を連続で回避しないといけない場合は1つ目の障害物を緩やかに回避しすぎて2つ目が回避できなくなってしまう。
avoidance:
# (省略)
longitudinal:
prepare_time: 0.0 # [s] 元々2.0
longitudinal_collision_safety_buffer: 0.0 # [m]
min_prepare_distance: 0.0 # [m] 元々1.0
min_avoidance_distance: 0.0 # [m] 元々10.0
min_nominal_avoidance_speed: 1.0 # [m/s] 元々7.0
min_sharp_avoidance_speed: 1.0 # [m/s]
前回に比べて1つ目の障害物を直前で回避するようになった。
Path Interval関連
経路を生成する時の解像度に関するパラメータ。
大きいと荒すぎる経路が生成されるが、小さすぎると計算コストが高くなってしまう。
上の動画を見ると経路が荒くて2つ目の障害物が回避できていないように見えたので調整してみた。
path_interval: 0.1 #元々2.0
resample_interval_for_planning: 0.05 # [m] 元々0.3
resample_interval_for_output: 0.1 # [m] 元々4.0
確かに生成される経路のshift pointの数は増えたように見えるが、経路自体はそんなに変わらなかった印象。
obstacle_check_force_avoidance_clearance
あんまよく分からないけど、ここで設定したclearance先に障害物があると車両が一時停止して、回避経路を生成してくれる気がする。下の例だと障害物の1m手前で車両が一時停止して、回避動作をし始めてくれる。
object_check_force_avoidance_clearance: 1.0 # [m]
object_check_forward_distance: 10.0 # [m]
object_check_backward_distance: 0.0 # [m]
object_check_goal_distance: 20.0 # [m]