AIChallenge 2025の活動記(accel/brake map編)
AIチャレンジ2025活動記 第2弾です。今回のテーマはaccel_map brake_mapですが、なんと、カートの加速度を変えてより好タイムを狙える特性なのです!最速を目指して解剖してみましょう。
まず環境構築から始めたい方は前回の記事をご覧ください!
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などから算出された目標加速度から、目標アクセル量を参照するという流れになります。
ファイルの見方の詳細についてはこちらの記事で丁寧に紹介されていますので、ぜひご覧ください。
編集してみる
それでは、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 map、Trajectoryだけです。今後はLocalizationやControlにも手を加えてさらなるタイム更新を目指していきます。
Discussion