FAQ
参加について
GPU未搭載のUbuntuPCでも参加できますか?
Intel内蔵GPUでもご参加いただけます。GPUが完全に未搭載PCの場合は、AWSIMをヘッドレスモードで実行することで最低限の動作確認はできます。
MacやWindowsでも参加できますか?
本大会のサポート対象はUbuntu 22.04です。詳細のご案内はできませんが、一般的に下記のような方法があると思われます。なお、性能やパッケージの有無、ホスト-コンテナ内の通信設定などの問題が起きる可能性があります。
- デュアルブートでUbuntuを用意
- Windows上にVMでUbuntuを用意 (Hyper-V、VirtualBox、VMwareなど)
- WSL2上にUbuntuを用意
- Windows上にdocker環境を用意(直接、Autowareのイメージを入れる)
- クラウドに環境を構築 (過去の大会ではAWSを利用して参加されている方もいらっしゃいました)
プログラミング経験はどの程度必要ですか?
C++またはPythonの基礎的な知識があれば参加できます。まずはパラメータ調整から始めて、慣れてきたらコードの変更に挑戦してみてください。基礎演習ではゼロからステップバイステップで学べます。
Autoware / ROS 2 を触ったことがないのですが大丈夫ですか?
大丈夫です。多くの参加者がAutowareやROS 2に初めて触れる方です。開発の進め方を参考にまずはコマンドを打つところから始めてみましょう。その後、基礎演習等で学んでいきましょう。
どのようにしてAutowareを改良して参加すればよいかが分かりません。
段階的に以下のアプローチで進めることをお勧めします。
- パラメータ調整:
reference.launch.xmlの速度やゲイン値を変更する(開発のアイデア参照) - 基礎演習で学ぶ: 基礎演習で車両制御や経路追従の基礎を習得する
- ノードの改良・置き換え: メインモジュールを参考に、PlanningやControlのノードをカスタマイズする
また、外部の方の記事ですが、こちらも参考になるかもしれません。
FAQに載っていない質問はどこで聞けますか?
コミュニティページから参加者同士の情報交換の場にアクセスできます。
環境構築について質問する場合は、症状に加えてご自身の環境と./setup.bash doctorの結果もご共有いただけると、よりスムーズにアドバイスできます。
環境構築
WARNING unable to detect os for base image 'aichallenge-racingkart-dev', maybe the base image does not existが出ます。
Dockerイメージのビルドをお願いします。
Dockerがpullできません
newgrp dockerかsudo service docker restartでdockerの再起動またはUbuntuの再起動をお願いします。
make devで起動しません。
以下を確認してください。
- GPUドライバが正しくインストールされているか確認:
nvidia-smiでGPU情報が表示されることを確認してください。 - Dockerコンテナが残っていないか確認:
make downおよびmake down_allを実行してから再度make devを試してください。 - Dockerイメージがビルド済みか確認:
./docker_build.sh devを実行してから再度試してください。
AWSIMがコアダンプで終了します。
AWSIMを起動した直後にcoredumpで終了する場合、GPUのメモリが不足している可能性があります。そのため、nvidia-smiでGPUメモリの利用率が限界に達していないか確認してください。
なお、GPUのメモリは11GB以上を推奨しています。
AWSIMがピンク画面になります。
GPUの認識に失敗している可能性があります。例えば、NVIDIA GPUのみが存在するPCで、.env に docker-compose.gpu.yml が追加されていないとピンク画面になります。.envの確認を参照してください。まずはコンテナ内で nvidia-smi が正常に動作することを確認してください。NVIDIAドライバのインストール状況とDockerのGPU設定も確認してください。
AWSIMが重いです。(Intel 内蔵 GPU 使用時)
ご使用のGPUのスペックをご確認ください。特にPC全体が重くなってしまう場合はスペックが足りていない可能性があります。例えば第10世代 Intel Coreの内蔵GPUだと、3FPS程度しか出ませんでした。
AWSIMが重い・たまに固まります。(NVIDIA GPU 使用時)
NVIDIA GPU と Intel 内蔵 GPU の両方が搭載されたPCを使用している場合は、NVIDIAを優先して使用するように設定してください。
sudo prime-select nvidia
AWSIMの起動・終了に時間がかかります。
現状、数秒〜10秒程度かかります。
AWSIMが黒画面のままになることがあります。
稀に起動に失敗することがあります。 make down_all で全コンテナを終了してから再度起動してください。100%の頻度で黒画面になる場合は設定・環境の問題であるため、セットアップ手順を再確認してください。
AWSで環境構築したところ、AWSIMは表示されたが、Rvizがブラックスクリーンとなりました。
sudo apt upgradeで治ったという事例がありますので、内容を確認の上、お試しください。
また、過去Issueにてご質問内容と似た質問がありましたので、こちらも合わせてご確認ください。
開発・デバッグ
pythonでパッケージを作成すると実行時 no module named * のerrorが起きます。
こちらを参考にしてみてください。
ros2 topic list が表示されません。
コマンドをDockerコンテナ内で発行していることと、ROS_DOMAIN_IDが設定されていることを確認してください。例えば、 export ROS_DOMAIN_ID=1
もしもDockerコンテナ外で確認している場合は、ワークスペースがソースされていることの確認をお願いします。
トピックの型を調べるには、どのようなコマンドを打てばよろしいでしょうか。
topicの型を調べる際はros2 topic info -v fuga_topicもしくはnodeが特定できれば、ros2 node info hoge-nodeで調べることができます。
その他にもROSに関する情報を調べたい場合は「ROS2 コマンド」で、ネット検索すると良いかもしれません。
Rviz上で地図・ルートが表示されません。
使用しているマップデータが適切な場所に配置されいるか・正しいかを確認してください。
docker_run.sh: 行 35: rocker: コマンドが見つかりませんが出ます。
現在の推奨ワークフローではmake devを使用するため、通常はdocker_run.shを使う必要はありません。開発の進め方を参照してください。デバッグ目的でdocker_run.shを使用する場合は、rockerの公式READMEに従ってインストールしてください。
Rockerが起動しません。
まず、rockerがインストールされているかの確認をお願いします。 インストールされているにも関わらず、起動しない場合は権限をご確認ください。過去の事例ですと、イメージをビルドしたアカウントと実行する際のアカウントの種類・権限が異なると実行できないことが報告されています。
AWSIMが「Waiting for start flag..」表示のままになることがあります。
走行を繰り返すと稀に発生します。ターミナルから make awsim-request-start を発行してください。
AWSIMの設定を変更してレースを再開したら、RViz上で車両の位置がスタート位置にありません。
RViz上で「Initial Pose Set」をクリックしてください。または、ターミナルから make autoware-request-initialpose を発行してください。
AWSIMのシナリオエディターで車両を配置してレースを開始したら、配置した車両が地面にめり込んだり、地面の下に下降し続けます。
傾斜のある場所に車両を配置するとそのようになる可能性があります。車両を別の位置に配置してください。
AWSIMのシナリオエディターで車両を配置してレースを開始したら、「Waiting for all vehicles to be grounded」表示のままになります。
車両が他のオブジェクトの上やコース外に配置されていると、そのようになります。
Autoware
経路生成(Behavior Path/Motion Planner)に関して教えてください。
behavior plannerは、主にODD3以上のいわゆる一般道での走行を行うのに必要な機能(一時停止線、横断歩道、信号停止)など破ってはいけない交通ルールを加味したplanningを行うものとなっています。 それ故、回避機能もルールベースの回避で最適化を行っていません。 一方でmotionはODD2以下のいわゆる限定区域や限定空間での走行を実現するもので、例えば信号や、地図の情報等といった情報を扱うものはありません。 障害物の回避や、停止、速度の最適化など、通常走行に必要な機能を担うものとなっています。
Autowareの回避行動について教えて下さい
回避には二種類あり、behavior pathとobstacle avoidanceがあります。 デフォルトではobstacle avoidabceの回避はoffで、経路の平滑化のみ行われる設定になっています。 また、デフォルトではbehavior pathで回避する設定にはなっていますがその際の回避対象物は車とトラックのみです。
center pointについて教えて下さい。
center pointは車両とトラックと歩行者を検知してくれますが、ダンボールなどタグ付けされていないものは検知できません。 ただ、現状のautowareとしてはplanningがobjectを受け取らないと動かないようになっており、objectを受け取る段階でcenter pointを使うデフォルトの構成にしていると、以下の2つの原因により不具合が起こります。
- center pointが死んだときにplanningが経路を生成できなくなる
- data associationでclusteringによる障害物検知結果が消される
そのため、perceptionの構成はautoware miniが理想的ですが、このあたりを理解してノードの足し引き、取捨選択をして実装することははなかなか難しいため、center pointが問題なく動くようにすることは重要になってくるかもしれません。 参考
mpcのチューニングをしたいのですが,今回AWSIMで使用されているモデルパラメータ(遅れや時定数など)は公開されていないでしょうか.
遅れや時定数については計測も公開もされていませんが、基本的な仕様についてはこちらに公開されています。
AI
RTX 50 シリーズのGPUで学習を行う方法を教えてください。
現状提供しているDocker環境はCUDA 12.1 + PyTorch 2.3.1です。RTX 50 シリーズ (Blackwell) では CUDA 12.8以上 + PyTorch 2.7.0以上が必要となります。
こちらのPR を参考にrequirements.txtを更新してから、./docker_build.sh dev によってDockerイメージを再ビルドしてください。
- 注意:本変更はローカル環境のみに有効です。AI学習などには使えますが、オンライン実行環境は運営が管理しているためデフォルト設定のままになります
- 注意:本変更を行うとPyTorchで使われるCUDAバージョンが新しくなります。これに伴い、ホストPCのNVIDIAドライバが古い場合には、学習時にGPUが使われずCPUにフォールバックしてしまい、学習が遅くなる可能性があります。もしも学習時に下記警告が発生したら、NVIDIAドライバのバージョンを570.26以上に更新してください。
UserWarning: CUDA initialization: The NVIDIA driver on your system is too old
オーバーテイクレーン
オーバーテイクレーンとは何ですか?
後続車の進路を塞ぐ走行(ブロック)を抑えるために、バックストレート上に設定された水色の長方形ゾーンです。判定は AWSIM が自動で行い、違反すると BLOCK ペナルティ(20秒間・5 km/h の速度制限)が科されます。ルールの詳細はオーバーテイクレーンを参照してください。
どのレースで有効になりますか?
SIM決勝(s2r-final モード)のみです。SIM予選・make dev などの通常モードでは無効で、End to End部門にも適用しません。判定はレース開始後のみ行われ、スタート前・シナリオエディタ・安全ゲートでは動作しません。
ゾーンの位置と大きさを教えてください。
バックストレート上に置かれた、幅 2.5 m × 長さ 36 m の長方形です。判定は路面(XZ 平面)で行われ、描画されている高さは見やすさのためのもので判定には影響しません。
水色とオレンジ色の違いは何ですか?
通常時は水色(静的)、hot 状態のときはオレンジ色に脈動します。hot は「アタッカーが1台以上ゾーン内にいる」状態を表します。オレンジのときだけ、ゾーン内・ゾーンへの進入が制限されます。
「アタッカー」の条件は何ですか?
車体全体(4隅すべて)がゾーン内にあり、かつ27 km/h 以上で走行している車両です。一度アタッカーになると、ゾーンから完全に離れる(車体がまったく触れなくなる)までアタッカーのままです。進入した瞬間だけでなく、ゾーン内にいる間は毎ステップ判定されるため、コーナー明けに低速で入ってストレートで加速した場合もアタッカーになります。
どのような場合に BLOCK になりますか?
hot(アタッカーがいる)状態で、アタッカー以外の車両が次のいずれかに該当した場合です。
- 退避義務違反: ゾーンに触れたまま 27 km/h 以下で走行し、3秒以内にゾーンから完全に退出しなかった。
- 低速進入: ゾーン外にいた車両が、27 km/h 未満でゾーンに触れた(触れた瞬間に発火)。
退避タイマーが動き出した後に加速すれば免除されますか?
免除されません。義務は「加速」ではなく「退避」です。3秒以内に車体全体をゾーン外へ出さなければ発火します。また、退避義務を負っている間は、加速してもアタッカーとして扱われません(加速でペナルティを回避することはできません)。タイマーが解除されるのは、ゾーンから完全に退出したとき、または hot が解除された(アタッカーがいなくなった)ときです。
ちょうど 27 km/h の場合はどうなりますか?
車体全体がゾーン内であればアタッカー(27 km/h 以上)の判定が優先されるため、退避義務は発生しません。一方、車体の一部だけがゾーンに触れている状態ではアタッカーになれないため、27 km/h 以下として退避義務の対象になります。
アタッカーがいないときに、ゆっくりゾーンを走ってもよいですか?
問題ありません。hot でない(アタッカーが1台もいない)間は、ゾーン内の速度に対する制限はありません。ゾーンに進入しないという選択も可能で、その場合はこのルールによる制約を一切受けません。
ペナルティ中にさらに違反判定されますか?
BLOCK などのペナルティが発動している車両は、オーバーテイクレーンの発火対象・退避タイマーの対象から外れます。なお CRASH(追突)はゾーン内でも通常どおり適用され、オーバーテイクレーンの判定とは独立しています。
違反したかどうかはどこで確認できますか?
HUD の速度表示の横に BLOCK と残り秒数が表示されます。また、AWSIM のログに OvertakingLane: BLOCK fired ... が出力され、走行結果(result-summary.json)の penalty_events / penalty_by_kind にも block として記録されます。
ローカルで練習するにはどうすればよいですか?
make simulator-s2r-final で AWSIM を起動し、別ターミナルで make autoware-simulator を実行すると、SIM決勝と同じ条件(オーバーテイクレーン on)で走行できます。make dev で試したい場合は dev.sh の --overtaking-lane off を on に書き換えてください。詳細はシミュレータ仕様を参照してください。
解決しない場合
Slackの質問チャンネルもご活用ください。