🗺️

AIChallenge 2025の活動記(accel/brake map編)

に公開

AIチャレンジ2025活動記 第2弾です。今回のテーマはaccel_map brake_mapですが、なんと、カートの加速度を変えてより好タイムを狙える特性なのです!最速を目指して解剖してみましょう。


まず環境構築から始めたい方は前回の記事をご覧ください!

https://zenn.dev/iasl/articles/da5a3ea8442fde

accel_map / brake_mapとは

ワークスペースの/src/aichallenge_submit/aichallenge_submit_launch/data/accel_map.csv brake_map.csvというファイルがあります。初期値は下記のようになっていましたね。

# accel_map.csv

default, 0.0    ,2.0    ,4.0    ,6.0    ,8.0    ,10.0
    0.0, -0.3   ,-0.3   ,-0.3   ,-0.3   ,-0.3   ,-0.3
    0.1, 0.0    ,0.0    ,0.0    ,0.0    ,0.0    ,0.0
    0.2, 0.01   ,0.01   ,0.01   ,0.01   ,0.01   ,0.01
    0.3, 0.05   ,0.05   ,0.05   ,0.05   ,0.05   ,0.05
    0.4, 0.1    ,0.1    ,0.1    ,0.1    ,0.1    ,0.1
    0.5, 0.175  ,0.175  ,0.175  ,0.175  ,0.175  ,0.175
    0.6, 0.25   ,0.25   ,0.25   ,0.25   ,0.25   ,0.25 
    0.8, 0.7    ,0.7    ,0.7    ,0.7    ,0.7    ,0.7 
    1.0, 1.0    ,1.0    ,1.0    ,1.0    ,1.0    ,1.0 
# brake_map.csv

 default,  0.0,  2.0,  4.0,  6.0,  8.0,  10.0
     0.0, -0.3, -0.3, -0.3, -0.3, -0.3, -0.3
     0.1, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5
     0.2, -0.7, -0.7, -0.7, -0.7, -0.7, -0.7
     0.3, -0.9, -0.9, -0.9, -0.9, -0.9, -0.9
     0.4, -1.1, -1.1, -1.1, -1.1, -1.1, -1.1
     0.5, -1.3, -1.3, -1.3, -1.3, -1.3, -1.3
     0.6, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5
     1.0, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5

1行目は速度[m/s]を、1列目はアクセル開度を、表内の各数値は目標加速度を表しています。具体的には、現在の速度とsimple_pure_pursuitなどから算出された目標加速度から、目標アクセル量を参照するという流れになります。

ファイルの見方の詳細についてはこちらの記事で丁寧に紹介されていますので、ぜひご覧ください。
https://zenn.dev/ttanaka3/articles/4c1b6dea256ea5

編集してみる

それでは、accel_map / brake_mapを編集して走行の変化を確かめてみましょう。

初期値の具合は?

参考タイムとして、まずaccel_map.csv brake_map.csv両方とも初期値のままで実行してみます。

Lap Time
1周目 51.34 s
2周目 44.81 s
3周目 44.57 s
4周目 44.82 s
5周目 44.89 s
6周目 44.66 s

ブレーキなし設計

とにかく最速で走りたいのだからブレーキなんて必要ないのでは?というギモンを解消するため、brake_mapを編集してブレーキなし走行を試してみます。

# brake_map.csv

 default,  0.0,  2.0,  4.0,  6.0,  8.0,  10.0
     0.0, -0.3, -0.3, -0.3, -0.3, -0.3, -0.3
     0.0, -0.5, -0.5, -0.5, -0.5, -0.5, -0.5
     0.0, -0.7, -0.7, -0.7, -0.7, -0.7, -0.7
     0.0, -0.9, -0.9, -0.9, -0.9, -0.9, -0.9
     0.0, -1.1, -1.1, -1.1, -1.1, -1.1, -1.1
     0.0, -1.3, -1.3, -1.3, -1.3, -1.3, -1.3
     0.0, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5
     0.0, -2.5, -2.5, -2.5, -2.5, -2.5, -2.5
Lap Time
1周目 51.57 s
2周目 44.65 s
3周目 44.74 s
4周目 44.57 s
5周目 44.45 s
6周目 44.51 s

わずかですがタイムが縮まりました。

速度領域による差を適用

現在の速度により、同じアクセル量に応じた加速度は異なるので、同じ目標加速度に対して与えるべきアクセル開度も異なりますよね。変化を明確にすべく桁違いに異なる目標加速度を設定してみましょう。
わかりやすくするため、今回は速度/アクセル開度の区切りを減らして検証します。

# accel_map.csv

default,    0.0,    2.5,    5.0,    7.5,    10.0
    0.0,    -0.1,   -0.2,   -0.3,   -0.4,   -0.5
    0.25,   2.0,    1.0,    0.6,    0.4,    0.2
    0.5,    5.0,    4.0,    5.0,    2.0,    0.5
    0.75,   10.0,   7.0,    6.0,    5.0,    4.0
    1.0,    20.0,   10.0,    9.0,   8.0,    7.0


なんと、35km/hを超えてリミッターが掛かってしまいました...
確実に加速性能が向上しています!!

Trajectory EditorでMap埋め込み速度を調整

爆上げしたアクセルでも35km/hオーバーしないように、Trajectory Editorを使用してマップ上に埋め込む目標速度を上手く調整してみます。

Lap Time
1周目 46.54 s
2周目 42.69 s
3周目 42.62 s
4周目 42.06 s
5周目 42.46 s
6周目 42.74 s

大幅にタイム更新できました!
採点環境へ提出したところ、7/9時点で学生クラス2位を記録しました。

今後の改善

ここまでで変更を加えたのはsimple_pure_pursuitのパラメータaccel / brake mapTrajectoryだけです。今後はLocalizationControlにも手を加えてさらなるタイム更新を目指していきます。

岐阜大学アレックス研究室

Discussion