開発のアイデア
AIチャレンジではオープンソースソフトウェアを駆使しています。運営から提供されるコードとウェブプラットフォームを利用することで、初期開発フェーズをスキップし、競技のテーマに合わせた開発をすぐに開始できます。 このアプローチには、「車輪の再発明」を避けることができるという大きな利点があります。さらに、誰でも気軽に大会に参加でき、一貫した評価基準で大会を運営できるというメリットもあります。
初めて参加される方々は、先人たちが築き上げた基盤の上に立ち、自動運転に必要な機能がほとんど揃っている状態からスタートします。これからは、コミュニティによる「取り組みの公開」を通じて、競技領域での独自の開発を深めるチャンスです。 さらに、自動運転の理解を深めるために、運営が用意した「Autoware Practice」やROS 2のコミュニティが提供する「ROS 2」の学習プログラムを活用することをお勧めします。
既にチャレンジに参加された方々には、ご自身の経験を公開し、コミュニティに貢献して大会の発展に寄与していただければと思います。皆さんの積極的な参加が、大会をさらに充実させることに繋がります。
参加者の皆様にはこちらのコードやパラメータをカスタマイズすることで開発を進めていただきますが、Autowareに不慣れな方はまずは基礎演習を一通りやっていただくことをお勧めします。
※リポジトリ内のコードを使わず独自に開発する方など、各種仕様について知りたい方はインターフェース仕様、シミュレータ仕様のページを参照してください。
制御モードを切り替えてみる
reference.launch.xmlのcontrol_method引数を変更することで、制御方式を切り替えることができます。環境構築後何をして良いのかわからない方は、様々な制御方式を試して車両の挙動がどのように変わるかを体験してみましょう。
mpc(デフォルト):MPCベースの制御pure_pursuit:Pure Pursuitベースの制御tiny_lidar_net:TinyLiDARNetによるEnd-to-End制御(LiDAR 1080点から加速度と操舵角を直接出力)pilot_net:PilotNetによるEnd-to-End制御joycon:手動テレオペ操作
例えば、End-to-End制御を試すには、reference.launch.xml内のcontrol_methodのdefault値をpilot_netに変更して実行してください。
制御パラメータを変更してみる
次に、制御パラメータがどのような影響を与えるかを試してみましょう。今回は制御モジュールのsimple_pure_pursuitのパラメータを変更してみることにします。
まずreference.launch.xml内のcontrol_methodのdefault値をpure_pursuitに変更します。
次に$HOME/aichallenge-racingkart/aichallenge/workspace/src/aichallenge_submit/aichallenge_submit_launch/launch/control/pure_pursuit.launch.xml内の以下のvalue値を調整してみましょう。
<node pkg="simple_pure_pursuit" exec="simple_pure_pursuit" name="simple_pure_pursuit_node" output="screen">
<param name="use_external_target_vel" value="false"/>
<param name="external_target_vel" value="10.0"/>
<param name="lookahead_gain" value="0.5"/>
<param name="lookahead_min_distance" value="3.5"/>
<param name="speed_proportional_gain" value="1.0"/>
調整が終わったら再び実行してみましょう。挙動が変わったことが確認できたかと思います。
例えば、lookahead_gainを0.1、lookahead_min_distanceを0.5に設定すると、先読み距離が極端に短くなり、車両がジグザグしながら直線走行が苦手になります。パラメータが走行挙動に与える影響を体感できます。
新規パッケージを作成してみる
新たに自作パッケージを作成してみましょう。まずはオープンソースのパッケージやautoware practiceをコピーしてみましょう。 以下のように進めると良いと思います。
- 元のパッケージをコピーして、下記を変更
- パッケージ名
- フォルダ名
- コード
- package.xml
- CMakeLists.txt
- aichallenge_submitの中に配置
- aichallenge_submit_launch内のlaunchファイル(reference.launch.xml)を変更
※コピー元のパッケージのライセンスを違反しないよう各自確認お願いいたします。
[任意]Trajectoryの編集をしてみる
2025年度のAIチャレンジでは岐阜大学のチームが作成してくれたTrajectory Editorなどのツールを使ってTrajectoryの編集をしていきます。
Readmeにステップバイステップのインストラクションなどがあるので参考にしてみてください。
作成したlanelet2 mapはaichallenge/workspace/src/aichallenge_submit/simple_trajectory_generator/dataに格納してください。
評価結果を確認してみる
make evalを実行し、規定の6周の走行が完了すると、評価結果が自動的にoutput/<timestamp>/d<domain_id>/配下に保存されます。output/latest/d<domain_id>/からシンボリックリンクでもアクセスできます。現時点での実力を把握してみましょう。
提出してみる
ワークスペースのカスタマイズを行ったらここを参考に提出をしてみましょう。
参加者有志の参考記事を読んでみる
参加者有志が取り組んでくださった取り組みはAdvent Calendarにまとめられていますので参考にしてみてください。
どれから読もうか迷った方は2023年度コミュニティ貢献賞を受賞した田中新太さんが記載してくれたこちらの記事から読み進めると良いと思います。