🎉

The Autoware Challenge 2023振り返り

2023/12/01に公開
2

Autoware Challenge 2023のOnline Presentationが11/8にありました。
https://autoware.org/autoware-challenge-2023/
今回作成したコードと当日の様子をまとめておきたいと思います。

Autoware Challenge

Autoware Challengeは運営から提案された課題の中から1つを選んで、その解決策を提示するというものです(Autowareに必要と思うものなら提案されたものでなくてもいいらしいです)。
運営からは12個の課題が提案されていて以下のサイトから確認できます。
https://autoware.org/autoware-challenge-2023/

自分は以下の画像の"Algorithm for achieving high-precision vehicle control for vehicles with various charactaristics"に取り組みました。様々な特性を持つ車両に素早く適応するために、運転データを用いて高精度な制御を実現するための制御方法を考えてくださいというものです。

こんな感じのスライドが12個掲載されています

課題に基づいて何をやる予定なのかを記したAbstructを9/1までに提出して、認められれば11/8に発表するというような流れでした。

以下のようなAbstructを書きました。Abstructだから思いつくもの全部書いておいた方がいいだろうと思ってたくさん書いたら、最終的に15%ぐらいしか達成できませんでした。
https://github.com/norikenpi/adaptive_mpc/blob/main/document/abstruct/Abstruct_en.pdf

運転データを用いて予測モデルを作成する

Autowareに実装されている、様々な車両に適応するためのモジュールにはaccel mapやsteering mapがあります。
https://autowarefoundation.github.io/autoware.universe/main/vehicle/accel_brake_map_calibrator/accel_brake_map_calibrator/

なのでとりあえず所望の加速度入力とステアリング角が実現できるとして、車両の情報や数学的モデルがない状況で所望の運動を実現するためにはどのような入力を与えればよいかを考えることにしました。

具体的に言うと、モデルベース制御の一種であるモデル予測制御で用いられる車両の数学的モデルを運転データから予測しました。

車両の数学的モデルを予測する方法はたくさんありますが、時間領域でのシステム同定でかなり基本と思われるARXモデルのパラメータを推定する方法を行いました。
https://qiita.com/motorcontrolman/items/587b532f7a493dfb591f

実はARXモデルのパラメータを推定する方法は自動車のモデル化においてはあまり良い方法ではないのですが(普通に等価2輪モデル使った方が安定する)、一番簡単なのでこれから始めてそのまま終わってしまったというような感じです。
Matlabで確かめた後にROSノードを作ろうと思ったのですが、それもできず。。。

これできたら面白いなとか先の計画だけ立てて、手が動くの遅れたパターンで今後はこういうこと起きないようにしたいですね。

やってることは基本的でシンプルなので細かい内容は割愛しましたが、作成したmatlabコードやsimulinkモデルはここに置いてあるので確認できます。運転データを作って、それを元に車両の数学的モデルを作り、その数学的モデルを用いたMPCの軌道追従精度をシミュレーションで計算できます。


運転データを取得するためのsimulinkモデル


ライブ スクリプトを上から順番に実行すれば動きます

作成したコードやsimulinkモデルは以下のリポジトリにあります。
https://github.com/norikenpi/adaptive_mpc

Final proposalの様子

発表はリモートで、様々な国の人がいました。全部で10チームぐらいいたと思うのですが、まさかの日本人が自分だけでした(多分)。

他のチームの発表内容は、とても完成度が高くちゃんとAutowareに統合されていて素晴らしかったです。来年は、ちゃんとROSノードを作ってシミュレーションで確認するぐらいのところまではやりたいなと思いました。

提出した資料やプレゼン資料はここにあります。
https://github.com/norikenpi/adaptive_mpc/tree/main/document/final

まとめ

このchallengeの性質上、Autowareをある程度理解していないと難しいと思っていたのですが、自動運転AIチャレンジでAutowareを割と理解できたのでなんとか最後までやりきれました(統合できていないですが)。

自動運転に関してはそんなに詳しくなかったので、何を提案すればいいのかなかなか悩んだのですがその過程で色々知識も得られたのでよかったです。しかし、自動運転詳しそうな人に相談すればもっとやれたかなとも思いました。
自動運転チャレンジで作成したモジュールを活用して参加することも可能だと思うので、来年はそのようなものも活用したいなーと思っています。

でわでわー。

Discussion

seigotseigot

日本人勢が少ない中でのチャレンジ素晴らしすぎます。皆どこいったんだろう。。

norikenpinorikenpi

ありがとうございます。どこ行ってしまったんでしょう。。。