FAQ
参加について
プログラミング経験はどの程度必要ですか?
C++またはPythonの基礎的な知識があれば参加できます。まずはパラメータ調整から始めて、慣れてきたらコードの変更に挑戦してみてください。入門講座ではゼロからステップバイステップで学べます。
Autoware / ROS 2 を触ったことがないのですが大丈夫ですか?
大丈夫です。多くの参加者がAutowareやROS 2に初めて触れる方です。入門講座で基本を学び、開発の進め方を参考に進めてください。
MacやWindowsでも参加できますか?
本大会のサポート対象はUbuntu 22.04です。Windowsのみをお持ちの場合は、デュアルブート、WSL2、仮想マシン(Hyper-V、VirtualBox等)、クラウド環境の利用などの方法があります。詳しくは下の「環境構築・Docker」セクションの「GPU搭載のWindowsPCしか用意できませんでした」をご覧ください。
FAQに載っていない質問はどこで聞けますか?
コミュニティページから参加者同士の情報交換の場にアクセスできます。
通信・接続
AWSIM and Autoware間の通信が安定しません。
local でテストする際、すべての terminal でROS_LOCALHOST_ONLY=1に設定すると通信速度が向上します。
.bashrc に以下の行を追加してください。
export ROS_LOCALHOST_ONLY=1
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
if [ ! -e /tmp/cycloneDDS_configured ]; then
sudo sysctl -w net.core.rmem_max=2147483647
sudo ip link set lo multicast on
touch /tmp/cycloneDDS_configured
fi
なお、今回の大会ではPC2 台構成の Windows+Linux、Linux+Linuxの二台構成も考慮しています。
その場合は、 ROS_LOCALHOST_ONLY=0としてください。
注意:
- OS の起動後、ターミナルの起動時にパスワードが要求され、初回には
sudo ip link set lo multicast onが必要です。 - 一度上記のように.bashrc に書き込んで変更したことを忘れると常に適用されてしまうことになるため、
echo $ROS_LOCALHOST_ONLYで確認するなど必ず変更点は追ってください。 ROS_LOCALHOST_ONLY=1とROS_LOCALHOST_ONLY=0が混在していると container 間の通信ができません。ROS_LOCALHOST_ONLYが実行ファイルに記載されていることには注意してください。
ros2 topic list が表示されません。
あなたのマシンのROS_DOMAIN_IDが一致していることを確認してください。(ROS_DOMAIN_ID を設定していない方は問題ないです)
また、ROS2 がソースされていることの確認をお願いします。
WindowsのAWSIMとUbuntuのAutowareを使用しており、$ ros2 topic list が表示されません。
Windows Firewallでの通信を許可してください。
また、ros2 daemon stopとros2 daemon startを実行して、不要なプロセスが残っていないか確認し、再起動をお願いします。
環境構築・Docker
Rockerが起動しません。
まず、rockerがインストールされているかの確認をお願いします。 インストールされているにも関わらず、起動しない場合は権限をご確認ください。過去の事例ですと、イメージをビルドしたアカウントと実行する際のアカウントの種類・権限が異なると実行できないことが報告されています。
AWSIMがコアダンプで終了します。
AWSIMを起動した直後にcoredumpで終了する場合、GPUのメモリが不足している可能性があります。そのため、nvidia-smiでGPUメモリの利用率が限界に達していないか確認してください。
なお、GPUのメモリは11GB以上を推奨しています。
./run_simulator.bashを実行してもUnityがロードされません。
シミュレータ実行時(例:Getting Started: TinyLiDARNet)に、下図のようにシミュレータ画面がピンク一色になる場合、コンテナがGPUを認識していない可能性があります。
シミュレータを実行する前に、コンテナ内でnvidia-smiが正常に動作することを確認してください。nvidia-smiが動作しない場合は、NVIDIAドライバのインストール状況とDockerのGPU設定を確認してください。
GPU搭載のWindowsPCしか用意できませんでした。
本大会のサポート対象はHP記載の構成になりますため、詳細のご案内はできませんが、一般的に下記のような方法があると思われます。
参加するためには、Autoware環境が問題です。 そのため、いかに「Autowareを動かすための環境を用意」するかがポイントになるため、 性能やパッケージの有無、ホスト-コンテナ内の通信設定などの問題が起きる可能性がありますが、以下の方法があると思います。
- デュアルブートでUbuntuを用意
- Windows上にVMでUbuntuを用意 (Hyper-V、VirtualBox、VMwareなど)
- WSL2上にUbuntuを用意
- Windows上にdocker環境を用意(直接、Autowareのイメージを入れる)
- クラウドに環境を構築 (過去の大会ではAWSを利用して参加されている方もいらっしゃいました)
AWSIMを起動したところ、ブラックスクリーンになってしてしまい、Ctrl + Cを押しても終了しません。
Ctrl + Zでバックグラウンドにしてから、kill -9 $1でプロセスを終了させてください。
AWSで環境構築したところ、AWSIMは表示されたが、Rvizがブラックスクリーンとなりました。
sudo apt upgradeで治ったという事例がありますので、内容を確認の上、お試しください。
また、過去Issueにてご質問内容と似た質問がありましたので、こちらも合わせてご確認ください。
docker_run.sh: 行 35: rocker: コマンドが見つかりませんが出ます。
現在の推奨ワークフローではmake devを使用するため、通常はdocker_run.shを使う必要はありません。ビルド・実行を参照してください。デバッグ目的でdocker_run.shを使用する場合は、rockerの公式READMEに従ってインストールしてください。
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の再起動をお願いします。
開発・デバッグ
pythonでパッケージを作成すると実行時 no module named * のerrorが起きます。
こちらを参考にしてみてください。
トピックの型を調べるには、どのようなコマンドを打てばよろしいでしょうか。
topicの型を調べる際はros2 topic info -v fuga_topicもしくはnodeが特定できれば、ros2 node info hoge-nodeで調べることができます。
その他にもROSに関する情報を調べたい場合は「ROS2 コマンド」で、ネット検索すると良いかもしれません。
Rviz上で地図・ルートが表示されません。
使用しているマップデータが適切な場所に配置されいるか・正しいかを確認してください。
どのようにしてAutowareを改良して参加すればよいかが分かりません。
段階的に以下のアプローチで進めることをお勧めします。
- パラメータ調整:
reference.launch.xmlの速度やゲイン値を変更する(開発の進め方参照) - 入門講座で学ぶ: 入門講座で車両制御や経路追従の基礎を習得する
- ノードの改良・置き換え: メインモジュールを参考に、PlanningやControlのノードをカスタマイズする
また、外部の方の記事ですが、こちらも参考になるかもしれません。
経路生成(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が問題なく動くようにすることは重要になってくるかもしれません。 参考
シミュレータ・実行
車を初期位置にリセットするにはどうすればいいでしょうか。
AWSIMのキーボード操作でSpaceキーを押すとリセットできます。また、/admin/awsim/resetトピックにstd_msgs/msg/EmptyをPublishすることでもリセットが可能です。
AWSIMの動作が安定しません。
GPUの性能不足が原因の一つになります。 高性能GPUの利用が難しい場合は、awsimの画面の下部にスライドバーでtime scaleを0.5くらいに設定すると安定して動作する可能性があります。
mpcのチューニングをしたいのですが,今回AWSIMで使用されているモデルパラメータ(遅れや時定数など)は公開されていないでしょうか.
遅れや時定数については計測も公開もされていませんが、基本的な仕様についてはこちらに公開されています。
センサの追加取り付けは可能ですか。
同一条件・難易度で課題に取り組んでいただくために、新たなセンサの取り付けは不可としています。
make devで起動しません。
以下を確認してください。
- GPUドライバが正しくインストールされているか確認:
nvidia-smiでGPU情報が表示されることを確認してください。 - Dockerコンテナが残っていないか確認:
make downを実行してから再度make devを試してください。 - Dockerイメージがビルド済みか確認:
./docker_build.sh devを実行してから再度試してください。
ドメインIDとは何ですか?
本大会ではマルチ車両対応のため、ROS 2のドメインID機能を使用しています。
- ドメイン0: AWSIM(シミュレータ)が使用
- ドメイン1〜4: 各車両が使用
domain_bridgeノードがドメイン間のトピックを橋渡しします。通常の開発では、ドメインIDを意識する必要はありません。
制御モードを変更するにはどうすればいいですか?
reference.launch.xmlのcontrol_mode引数を変更することで制御モードを切り替えられます。
rule_based(デフォルト): Pure Pursuitベースの制御e2e: TinyLiDARNetによるEnd-to-End制御joycon: 手動テレオペ操作