軌道最適化ツールを自動運転AIチャレンジ2024のコースに適用
本記事の要点
- 最適な走行軌道を生成するツール “global_trajectory_optimization” を自動運転AIチャレンジ 2024 のコースに適用する方法を紹介する
- 適用したソースコードは こちら に公開中
はじめに
トラックを走行する上で最適な軌道を生成するツールとして global_trajectory_optimization があります。
“最適” の評価指標として次の選択肢から選ぶことができます。
- 最短時間(mintime)
- 最短距離(shortest_path)
- 最小曲率(mincurv)
最短時間軌道の場合
最短距離軌道の場合
なお、最適指標の比較については M.Eguchiさんによるこちらの記事 が詳しいです。
環境構築
下記を実行すれば環境構築できます。少なくとも、自動運転AIチャレンジ 2024 の Docker 環境においては動作することを確認済みです。
git clone git@github.com:Roborovsky-Racers/global_racetrajectory_optimization.git
cd global_racetrajectory_optimization
./setup_env.bash
※Pythonパッケージに関する補足
- global_trajectory_optimization 本家 の最終更新はやや古く、 本家の requirements.txt に従ってインストールしても動作しない可能性があります。 そこで、適切なバージョンを requirements.txt に反映させ、Python パッケージのインストールスクリプトを こちら に用意しています。なお、 quadprog を requirements.txt に追加していないのは意図的です。
軌道生成の実行
下記を実行すれば軌道生成が開始されます。
cd /path/to/global_trajectory_optimization
python3 main_globaltraj.py
デフォルトでは最短時間(mintime)の軌道が生成されます。評価指標を変更したい場合は こちらを切り替えてください。
なお、自動運転AIチャレンジ 2024 のトラックの入力データは こちら に格納しています。入力データを生成するにあたり toki-1441さんのこちらの記事 に大変助けられました。ありがとうございます。
最適化における設定パラメータはこちら です。私達は左右の壁から少し離れた軌道を生成したかったため、車幅を実際より広めにするなどの変更が加えてあります。あくまで参考値としてご活用ください(本家との差分はこちら)。
※実行に関する補足
- 本家のリポジトリをそのまま実行すると、 casadi のバージョンが原因(?)か
.../casadi/core/function_internal.cpp:1832: 'eval_sx' not defined for IpoptInterface.
というエラーが発生します。こちらの Issue に従い、修正を加えてあります。
最後に
global_trajectory_optimization を自動運転AIチャレンジ 2024 の環境で実行できるようにするまでにいくつかハードルがあったため記事にしてみました。参考になれば幸いです。
また、先人達の解説記事にも感謝申し上げます。