rsuwa / aichallenge2022-sim

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

aichallenge2022-sim

日本語 | English

更新日:2022/12/29

本リポジトリでは、自動運転AIチャレンジ2022(シミュレーション)の参加者向けに、環境構築手順・大会ルール等、大会に参加するために必要な情報をまとめています。

2021年に行った第3回自動運転AIチャレンジと異なり、本大会では自動運転ソフトウェアAutoware.universeと自動運転シミュレータAWSIMを使用します。下記の手順に沿って環境を構築し、大会へご参加ください。

大会ルールの詳細な説明はRULE.mdを参照ください。

コース選択

本大会は初学者向けの「チャレンジコース」と上級者向けの「アドバンストコース」に分かれております。参加者の皆様には両コースに触れていただきご自身のスキルレベルに合わせて最終的にコースを選択していただきます。

オンライン採点環境ではアドバンストコース・チャレンジコース両方への提出が可能ですが、コースを切り替える際にはそれまでの提出スコアを削除する必要があります。

動作環境

本大会で使用していただくPCの動作環境として以下を推奨しております。

OS: Ubuntu 20.04
CPU: Intel Corei7 (8 cores) 以上
GPU: NVIDIA Geforce RTX 3080(VRAM 12 GB) 以上
メモリ: 32 GB 以上
ストレージ: SSD 30 GB 以上

上記のスペックを満たすPCをご用意できない方は、下記の「PC2台で参加する方向け」のスペックをご参照ください。

PC2台で参加する方向け

Autoware動作PC

OS: Ubuntu 20.04
CPU: Intel Corei7 (8 cores) 以上
GPU: NVIDIA Geforce GTX 1080 以上
メモリ: 16 GB以上
ストレージ: SSD 10 GB 以上
詳細はこちら

AWSIMシミュレータ動作PC

OS: Ubuntu 20.04 or windows 10
CPU: Intel Corei7 (6 cores and 12 thread) 以上
GPU: NVIDIA Geforce RTX 2080 Ti 以上
詳細はこちら

※Autoware動作PCとAWSIM動作PCは、同じネットワーク内に配置してください。
配置できていれば、基本的には追加設定をすることなく、PC間のトピック通信は可能です。万が一、トピック通信ができなかった場合はファイアーウォールの解除、もしくはルールの見直しをお願いします。

環境セットアップ

AWSIM(Ubuntu)

事前準備

・Nvidiaドライバのインストール
  1. リポジトリの追加
sudo add-apt-repository ppa:graphics-drivers/ppa
  1. パッケージリストの更新
sudo apt update
  1. インストール
sudo ubuntu-drivers autoinstall
  1. 再起動の後、インストールできていることを確認
nvidia-smi 

・Vulkunのインストール
  1. パッケージリストの更新
sudo apt update
  1. libvulkan1をインストール
sudo apt install libvulkan1

コースの準備

1. 大会用コースの実行ファイルをダウンロードし、解凍
・チャレンジコース:ファイルはこちら
・アドバンストコース:ファイルはこちら
2. パーミッションを図のように変更

3. ファイルをダブルクリックで起動
4. 下記のような画面が表示されることを確認

AWSIM(Windows10)

コースの準備

1. 大会用コースの実行ファイルをダウンロードし、解凍
・チャレンジコース:ファイルはこちら
・アドバンストコース:ファイルはこちら
2. ファイルをダブルクリックで起動
3. 下記のような画面が表示されることを確認

Autoware

本大会用にAutowareの Docker イメージ(CUDA利用)を用意しておりますので、ご利用ください。

事前準備

下記のインストールをお願いします。

Dockerイメージの準備・起動 〜 Autowareの準備

Dockerイメージ(v3.1)について(2023/1/6追記)

Dockerイメージはautoware(fc50327ec926d5c9a04d385581f102a418af0403)に以下を適用しています。

  1. Dockerイメージを入手
docker pull ghcr.io/automotiveaichallenge/aichallenge2022-sim/autoware-universe-cuda:3.1

※上記の方法では長時間かかってしまう方・タイムアウトしてしまう方↓
こちらに、イメージをtarにまとめたものを置きましたので、下記コマンドよりご利用ください。

docker load < aichallenge2022_sim_autoware_v3.1.tar.gz
  1. 大会用データのダウンロード
sudo apt install -y git-lfs
git lfs clone https://github.com/AutomotiveAIChallenge/aichallenge2022-sim
  1. rockerを起動
cd ./aichallenge2022-sim
rocker --nvidia --x11 --user --net host --privileged --volume autoware:/aichallenge -- ghcr.io/automotiveaichallenge/aichallenge2022-sim/autoware-universe-cuda:3.1

サンプルコード(ROS2パッケージ)

サンプルコードについて

参加者の皆様にはシナリオを遂行するROS2パッケージを作成していただきますが、本リポジトリ内でそのベースとなるサンプルコードとしてautoware/aichallenge_ws/srcに以下のROS2パッケージを提供しております。

  • aichallenge_launch
    • 大元のlaunchファイルaichallenge.launch.xmlを含んでいます。すべてのROS2ノードはこのlaunchファイルから起動されます。
  • aichallenge_eval
    • スコア算出用のパッケージです。
  • aichallenge_score_msgs
    • メッセージ定義を含みます。
  • aichallenge_submit
    • このディレクトリの内容は自由に変更していただいて構いません。
    • 提出時にはこのディレクトリの内容のみ提出していただきますので、参加者の皆さまが実装されたROS2パッケージはすべてこのディレクトリ内に配置してください。配布段階で以下のパッケージを含んでいます。
    • aichallenge_submit_launch
      • aichallenge_submit_launch.launch.xmlが大元のlaunchファイルaichallenge.launch.xmlから呼び出されますので、このlaunchファイルを適宜改修して皆様が実装されたROS2ノードが起動されるように設定してください。
    • sample_code_cpp
      • サンプルの自動走行実装です。
    • obstacle_stop_planner_custom
      • autoware.universeのobstacle_stop_plannerから障害物を誤検出する問題を解消しています。
    • tier4_*_launch
      • autowareのlaunchファイルをコピーして一部編集したものです。autowareのtier4_*_launchは削除しているため、こちらを必ずaichallenge_submit内に残すようにしてください。
      • obstacle_stop_plannerの代わりにobstacle_stop_planner_customを呼び出すように変更してあります。

サンプルコードビルド

# Rockerコンテナ内で
cd /aichallenge/aichallenge_ws
rosdep update
rosdep install -y -r -i --from-paths src --ignore-src --rosdistro $ROS_DISTRO
colcon build

皆様に作成していただいたROS2パッケージについてもaichallenge_ws/src/aichallenge_submit以下に配置していただき、上記手順でビルドできるようにしてください。

サンプルコード起動

# Rockerコンテナ内で
source /aichallenge/aichallenge_ws/install/setup.bash
ros2 launch aichallenge_launch aichallenge.launch.xml

ここまででAutoware側の設定・実行は完了です。セットアップが正常に行われていれば、rvizには点群地図が表示されます。

動作確認

AutowareとAWSIMを用いて動作確認を行う方法を記載します。

  1. AWSIMを起動
  2. Autowareを起動
# Rockerコンテナ内で
cd /aichallenge
ros2 launch autoware_launch e2e_simulator.launch.xml vehicle_model:=sample_vehicle sensor_model:=awsim_sensor_kit map_path:=nishishinjuku_autoware_map
  1. 下記のような画面(Rviz2)が表示されることを確認

※Autowareの使い方は公式ドキュメントを参考にしてください。

  1. RvizのタブにあるPanelからadd new Panelを開き、AutowareStatePanelを追加

  1. 自己位置推定ができていることを確認

  1. 正しく推定できていなければ、タブにある2D Pose Estimateを選択し、実際の車両の位置をドラッグで指定

  1. タブにある2D Goal Poseを選択し、ゴールポジションをドラッグで指定

  1. 画像のように、ルートが表示されている かつ 「waiting for engage」状態になっていることを確認(指定してから少し時間がかかります)

  1. engageボタンを押下し、自動運転が開始されることを確認

タイム取得

タイム取得方法についてはRULE.mdを参照ください。

オンライン評価環境について

評価時のオンライン環境での実行フローの概略

スコアの算出にあたっては、オンライン評価環境のwebページよりパッケージaichallenge_submitのみを提出していただき、自動採点を行います。 提出後、オンライン評価環境ではevaluation/以下のスクリプトを使って下記の手順で評価されます。

(1) aichallenge_submitの配置

アップロードしていただいたaichallenge_submit.tar.gzevaluation/以下に配置されます。

(2) docker build

evaluation/build.shが実行され、evaluation/Dockerfileで定義されるdockerイメージが作成されます。このイメージの作成手順は下記の通りです。

  1. 提出いただいたaichallenge_submit.tar.gz/aichallenge/aichallenge_ws/src/aichallenge_submitへ展開
  2. rosdep installcolcon buildの実行

(3) シミュレーション実行

オンライン評価環境でsimulatorが立ち上がり、シミュレーションが開始されます。

コンテナ内ではevaluation/main.bashの実行によって、以下が行われます。

  1. ROS2ノード群の起動
  2. シナリオの開始

evaluation/run.shで実行した場合、evaluation/output以下に結果(score.json)が保存されます。

オンライン評価環境にソースコードを提出する際の手順

(1) ソースコードを圧縮する

aichallenge_submit内のソースコードを圧縮します。

cd evaluation
sh create_submit_tar.sh

evaluation/aichallenge_submit.tar.gzに圧縮済みのファイルが生成されていることを確認してください。

(2) evaluation/ でdocker内での自動実行ができることを確認する

オンライン評価環境にアップロードする前に、ローカル環境を使いオンライン環境と同様のDockerコンテナ内でビルド・実行ができることを以下の手順で確認してください。

まず、以下のファイルがevaluation/以下に配置されていることを確認してください。

  • aichallenge_submit.tar.gz

次に、作成いただいたaichallenge_submitを含むdockerイメージをビルドしてください。

sh build.sh

ビルドが完了したら、run.shによってdockerコンテナを立ち上げ採点のフローを実行してください。

sh run.sh

最後に、evaluation/output/score.jsonに出力されるスコアを確認してください。

(3) オンライン評価環境webページよりソースをアップロードする

webページにログイン後画面の指示に従って(1)で作成したaichallenge_submit.tar.gzをアップロードしてください。

アップロードが終了すると、ソースのビルド・シミュレーションの実行が順番に行われます。

  • 正常に終了した場合はScoring completeと表示され、配布シナリオ・評価用シナリオそれぞれのタイムが表示されます。最後にアップロードした評価シナリオのタイムが、ランキングにて最終タイムとして使われます。
  • 正常にシナリオ実行が終了しても、launchに失敗した等でスコアが出力されていない場合はNo result、チェックポイントを全て通過していない場合はCheckpoint not passedと表示され、いずれの場合も最終的なタイムとしては使われません。
  • ビルドに失敗した場合はBuild errorが表示されます。(1),(2)の手順に従ってDocker imageのビルドができることを再度ご確認ください。
  • シミュレーターの実行に失敗した場合はSimulator errorと表示されます。この場合サーバーサイドで内部エラーが生じている可能性があるため再度アップロードお願いします。繰り返し表示されてしまう場合はお問合せください。
  • 採点プロセスは一度の提出で5回行われ、結果はその平均によって決定されます。

なお、採点実行中は新たなソースのアップロードはできません。またアップロードできるのは1日3回までで、日本時間0時にリセットされます。

その他

更新等の通知に関して

githubの更新などがある場合は、以下のURLのissueに新たにコメントします。 本issueをsubscribeいただければ、更新時に通知されます(通知をオンにしてください)。 AutomotiveAIChallenge#1

問い合わせ方法

競技内容、リポジトリ内容物等に関するお問い合わせについては、github上のissueにてお願いします。質問は日本語、英語どちらでも構いません。 なお、質問内容は競技内容に直接関係あるものに限ります。また、ソフトウェアの使用方法に関するご質問についても、公平性の観点から回答いたしかねます。

質問者様は質問が解決した際issueをcloseしてください。

各issueでの質問については、基本的に2営業日以内に回答いたします。ただし、検討に時間を要する質問や質問数が多い場合等については、2営業日以上いただく可能性があることはご理解ください。

オンラインシミュレータにログインできないなど、オンラインシミュレータのアカウントに関するお問い合わせはinfo-ai@jsae.or.jp宛にお願いいたします。

About


Languages

Language:C++ 55.6%Language:Python 41.9%Language:CMake 1.8%Language:Shell 0.4%Language:Dockerfile 0.3%