🔥

自動運転AIチャレンジ2023 インテグレーション大会決勝振り返り

2023/11/30に公開
4

自動運転AIチャレンジが11/12にありました。
https://www.jsae.or.jp/jaaic/
今回作成したコードと決勝大会当日の様子をまとめておきたいと思います。

予選の話も昔書きました
https://zenn.dev/norikenpi/articles/5d60b217cfb0e1

シミュレーションと実機の違い

ゴルフカートとPCの接続方法や大会の流れの確認のために決勝とは別に準備会がありました。そこで予選大会と同じコードでゴルフカートを自動運転してみました。

そのときの動画が以下です(もっとちゃんと撮ればよかった)。
https://youtube.com/shorts/stnRYWteST0?feature=share

そこでなんとなくわかったことが以下です(本来はrosbagをとるべきなのですが、うまく取れませんでした。。。)。

  • Autoware-miniがうまく車両と繋がらない。
  • AWSIMよりもplanning simulatorの方が挙動が似ている感じがした。

Autoware-miniがうまく車両と繋がらない問題は前から懸念されていた問題で、Autoware-miniは最小構成なのでvehicle interface系が元から実装されておらず、自分でどうにかする必要がありました。
準備会でAutoware-miniの問題がありそうな場所を教えていただきましたが、とりあえず決勝はノーマルのAutowareでどうにかすることにしました。

また、AWSIMと挙動がかなり違う感じがして、planning simulatorの方が挙動が似ているような気もしました。
AWSIMは点群から自己位置推定をしていたり、unityでシミュレーションしているので車両の動きも現実に近いはずだと思っていたのですが意外でした。

人力planning

準備会で準備していた他のパラメータでも段ボールを回避してくれなかったので、障害物の隣に中継点を設定することで回避しやすくなるようにしました。
ゴール位置を逐次更新していくことで、画像のように疑似的に中継点を再現しました。

障害物の横にゴール位置が設定されている。ゴールにたどり着いたら別のゴール位置を設定する。

今回の大会ではマップに対する障害物の位置が公開されていたので、どこに中継点を置いたらよいかはAWSIMやPlanning simulatorとにらめっこしながら決めました(人力)。

また、Autowareではゴール位置を変えると自動運転が切れて停止してしまうので、中継点の設定に加えて自動運転を再起動する機能も含んだROSノードを作りました。

ros2 topic pub /planning/mission_planning/goal geometry_msgs/msg/PoseStamped "{header: {stamp: {sec: $SEC, nanosec: $NANOSEC}, frame_id: 'map'}, pose: {position: {x: 3720.764404296875
, y: 73737.8671875
, z: 0.0}, orientation: {x: 0.0, y: 0.0, z: -0.9756383058075038
, w: 0.21938526897005559}}}" --once

でゴール位置(中継点)を設定して、

ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode {}

で自動運転を再起動しています。

以下が人力planningのROSノードです。
https://github.com/norikenpi/disp_goal

経路の決め打ちは障害物回避の点で危険なので禁止されていましたが、今回の人力planningはゴールを変えているだけなのでぎりぎりセーフ?だと思いました(自動運転システムとしてはよろしくないplanningですが。。)。

第4コーナーで必要な切り返しに関しては、ギアをバックに入れて進むことはできたのですが、そのためプランニングが完成せずという感じでした。

決勝当日は第3コーナー手前と霧のところで止まってしまったので、100点ちょいのスコアだと思います。

決勝大会の様子

当日の動画は後日公式さんがyoutubeにアップロードしそうなので、そこで出てこなそうな写真だけアップロードしておきます。

参加者が待機している場所の反対側からの動画が中継されていました。見やすい!

一人の持ち時間は15分でタイマーが鳴ったら終了でした。

当日はかなり寒かったので、暖かい待機室はありがたかった!

次回の自動運転AIチャレンジ

次回の自動運転AIチャレンジは2023年12月4日~2024年1月31日に開催されるらしいです(すぐすぎる?!)。
https://www.jsae.or.jp/jaaic/2023_simulation.php

とりあえず動かすところまではやってみました!
https://twitter.com/norikenpi/status/1728031213758423371

車両の挙動が前回のゴルフカートよりもリアルで、一筋縄ではいかない可能性もありそうです。。。少なくとも今回の人力planningは使えなさそう。

https://twitter.com/norikenpi/status/1728306117359333751

まとめ

ゴルフカートがある程度自分が想定した通りに動いてくれたのはとても面白かったです。AWSIMで見たコースが実在してるのも不思議な感じでした。
決勝当日はかなり多くのスタッフがいらっしゃって、無料で参加していいものなのかとビビりましたが、とても楽しめました!
次回のシミュレーション大会もがんばります!

Discussion

seigotseigot

人力planningの起点の利かせ方すごいですね。
AWSIMよりもplanning simulatorの方が現実と近い感覚がありませんでした。(むしろAWSIMの方が再現性が高いとすら感じていました)
また、自己位置がおかしくなる事はなかったでしょうか?我々のチーム+他の一部のチームは自己位置がおかしくなり段ボール付近の走破が悩ましい結果になりましたorz

norikenpinorikenpi

ありがとうございます。
自己位置がおかしくなる事はなかったですね。
自己位置に関して特に変わったことはしていませんが、しいて言うならcenterpoint_tinyを使ったぐらいですかね。

t4tanakat4tanaka

理論上はAWSIMのほうが近い挙動になるのですが、PSimのほうが感覚として近かったですか、意外でした。
走行中途中で止まって据えきりしてからL字ランクを走行していたのは印象的でしたが、どのように実現されていたのでしょうか?

norikenpinorikenpi

据え切りを実現できたのは、自動運転がoffになることによる副産物でした。自動運転が再起動されて最初にMPCが生成する舵角入力が、現在のゴルフカートの舵角を考慮していないからだと思われます。なので、現在の舵角に対して非連続的な舵角入力がMPCによって生成されて据え切りのような形になっているのだと思います。