LoginSignup
5
1

自動運転AIチャレンジ2023(インテグレーション)取り組みの工夫と失敗〜予選(シミュレーション)編〜

Last updated at Posted at 2023-12-04
1 / 14

あらすじ

※ 発言は個人の見解に基づくものであり、所属組織を代表するものではありません
※ Blogを書くまでが自動運転AIチャレンジ!


自己紹介

チーム遊戯王です。
謎の有志団体であるchallenge_clubの有志メンバーで構成されています。

https://challenge-club.connpass.com
謎の有志団体であるchallenge_club(技術チャレンジ部)です。
新しいことにチャレンジしてみたい!
技術をさらに深めたい!
いろんな人と知り合いたい!
一人だと心折れちゃう!一緒に取り組む仲間が欲しい!

チーム遊戯王は予選は社会人上位だったものの、決勝では惜しくも入賞を逃しました。
これを真摯に受け止め、これまで取組んだ工夫、及び今後の課題点について振返ります。


予選(シミュレーション)の取組み

ポイント

  • シミュレータ上に再現された走行試験場のコースを走行し、距離を競う
  • コース上には障害物(段ボール、三角コーン)、特に後半クランクは高難度の狭路

以下の工夫点について順に記載します。

  • 1.経路計画の最適化(停止、障害物回避、狭路走行)
  • 2.評価の効率化

スクリーンショット 2023-12-02 15.30.24.png


1.経路計画の最適化(停止、障害物回避、狭路走行)

経路計画は「planning」という機能を活用します。
autowareのplanning機能が非常に充実しているので、該当のplannerを上手く活用、パラメータ調整を実施します。

スクリーンショット 2023-12-02 14.14.38.png


今回、以下の4つのplannerを活用しました。

  • 障害物手前の停止:obstacle_stop_planner
  • 障害物回避(段ボール):obstacle_avoidance_planner
  • 障害物回避(三角コーン):lane_following_planner
  • 狭路走行:crank_driving_planner(これは自作)

以降、順番に説明します。


1.1 障害物手前の停止:obstacle_stop_planner

・「障害物手前の停止」では、障害物から手前4.5mほどの位置での停止が求められます
・障害物検出時にobstacle_stop_plannerを発動、今回は、停止marginを期待通りになるよう調整し解決を図ります

スクリーンショット 2023-12-02 14.26.35.png

ドキュメントリンクは以下の辺りです


1.2 障害物回避(段ボール):obstacle_avoidance_planner

・「障害物回避(段ボール)」では、段ボールと路肩間のスムーズな進行が求められます
・障害物回避経路走行時にobstacle_avoidance_plannerを発動、今回は、路肩までのバッファ(road_shoulder_safety_margin)、障害物までのバッファ(lateral_collision_buffer)を調整し解決を図ります

スクリーンショット 2023-12-02 14.28.21.png

ドキュメントリンクは以下の辺りです
https://autowarefoundation.github.io/autoware.universe/main/control/trajectory_follower_node/obstacle_avoidance_planner


1.3 障害物回避(三角コーン):lane_following_planner

・「障害物回避(三角コーン)」では、路肩に存在する三角コーンを回避する経路生成が求められます
・通常走行時に活用するlane_following_plannerの制御パラメータのうち、進行方向に対して横方向の誤差を許容するパラメータ(curvature_weight_lat_error)を大きめに調整し、路肩の三角コーン回避を図りました

スクリーンショット 2023-12-02 15.13.43.png

路肩に三角コーンが存在するカーブ手前にて、少し横方向に膨らんで曲がる経路を生成することで三角コーンに当たらなくなりました

ドキュメントリンクは以下の辺りです(図がなかったので該当パラメータを図示)
尚、本解法には別解が存在するようです。

スクリーンショット 2023-12-02 14.37.30.png


1.4 狭路走行:crank_driving_planner(これは自作)

・「道幅の狭いクランクの走行」では道幅が狭いエリアでの高精度な制御が求められます
・は通常のplannerでは困難であったため、曲がる軌道をよりクランクの経路に対応させます
・クランクを曲がる軌道を円で近似し、それに沿って曲がることでよりクランクの奥に進む経路を生成しました

スクリーンショット 2023-12-02 19.53.48.png

ドキュメントリンクは以下の辺りです

narrow space drivingなども参照したのですがどうも今回の課題には適当ではなかった様子。


2.評価の効率化

・パラメータ最適化には十分な試行錯誤が必要、しかし手動だと非常に時間が掛かります。
・クラウド・サーバ技術を活用し、自動評価を並列実行することで解決を図ります。これでパラメータ調整時の効果測定を効率化します(徹夜しなくてもよくなったぞ^^)

スクリーンショット 2023-12-04 1.38.09.png


走行動画

上記の工夫によりコース前半+後半中盤付近までの課題を概ね解決できました。
動画は以下の通り。

2023 8 31 aichallenge submit
https://youtu.be/oD6F7P9Bx08

スクリーンショット 2023-12-02 13.47.52.png

ここまでを2023/7/E-9/1まで試行錯誤し、無事に予選を通過いたしました。


と、ここまでは良かったことを書いてみました。
一見すると作戦が功を奏しているかのようですが、まさか決勝であんなことが起ころうとは誰もが予期しておりませんでした。
、、(後半に続く)


参考/謝辞

参考にさせていただきました。ありがとうございます。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1