diff --git a/docs/development/images/architecture/autoware-node-diagram.png b/docs/development/images/architecture/autoware-node-diagram.png new file mode 100644 index 0000000..01407b8 Binary files /dev/null and b/docs/development/images/architecture/autoware-node-diagram.png differ diff --git a/docs/development/images/architecture/racing_simple.png b/docs/development/images/architecture/racing_simple.png new file mode 100644 index 0000000..810db76 Binary files /dev/null and b/docs/development/images/architecture/racing_simple.png differ diff --git a/docs/development/images/architecture/reference-autoware.png b/docs/development/images/architecture/reference-autoware.png new file mode 100644 index 0000000..397257a Binary files /dev/null and b/docs/development/images/architecture/reference-autoware.png differ diff --git a/docs/development/installation.ja.md b/docs/development/installation.ja.md index a90beeb..cc5046b 100644 --- a/docs/development/installation.ja.md +++ b/docs/development/installation.ja.md @@ -1,5 +1,16 @@ # 環境構築 +## 推奨環境 + +本大会で使用していただくPCの動作環境として以下を推奨しております。 + +- OS: Ubuntu 22.04 +- CPU: Intel Core i5(4コア)以上(推奨) +- メモリ: + - 8GB以上(最低) + - 16GB以上(推奨) +- SSD: 60GB以上 + ## aptパッケージ等のインストール まずは諸々最初に必要なパッケージをインストールします。 diff --git a/docs/development/main-module.ja.md b/docs/development/main-module.ja.md index 42aa0cc..4a52ac1 100644 --- a/docs/development/main-module.ja.md +++ b/docs/development/main-module.ja.md @@ -1 +1,103 @@ # メインモジュール + +## [任意]Mapの編集 + +2024年度のAIチャレンジでは[VectorMapBuilder](https://tools.tier4.jp/feature/vector_map_builder_ll2/)などのツールを使ってpoint cloud map , lanelet2 mapなどの地図の編集を推奨しています。 + +[Mapのファイル置き場](https://drive.google.com/drive/folders/1nsYIg_3rwIjg0x6BC__aWVmnv-25nZkn)からpointcloud map lanelet2 mapなどをダウンロードして編集してみましょう! + +[VectorMapBuilderの使い方動画](https://www.youtube.com/watch?v=GvZr707TmuM)にステップバイステップのインストラクションなどがあるので参考にしてみてください。 + +作成したlanelet2 mapは`aichallenge/workspace/src/aichallenge_submit/aichallenge_submit_launch/map`に格納しましょう! + +## Autowareのカスタマイズ + +本大会では、自動運転ソフトウェアAutowareをベースとした実装を用意しております. +本ページでは、その背景と説明に加えて、どのように本実装を活用できるかの紹介を行います. + +前回のシミュレーション大会では、デフォルトのAutowareから機能を絞り、ノード数を減らした[縮小構成のAutowareを起動できるLaunchファイルを提供]()しました.その際の、背景や用意した意図については、[前大会のドキュメント](https://automotiveaichallenge.github.io/aichallenge2023-racing/customize/index.html)をご覧ください. + +今回のシミュレーション大会では、前大会と同様にAutowareの部分的な活用や自由自在な取り込みを可能にするため、[AWSIMとの利用を想定した縮小構成のAutowareを用意しました](https://github.com/AutomotiveAIChallenge/aichallenge-2024/blob/main/aichallenge/workspace/src/aichallenge_submit/aichallenge_submit_launch/launch/reference.launch.xml)しました. + + +## 縮小構成のAutowareを用意した背景 + +### Autowareを利用する時の課題 + +デフォルトのAutowareでは様々な走行環境に対応するため、たくさんのノードから構成されています. + +Autowareの公式ドキュメンテーションでは、[Autowareを構成するROSノードの構成図](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/node-diagram/)を見ることもできます.以下に現時点の図を示します. + +![node-diagram](./images/architecture/autoware-node-diagram.png) + +自動運転に関わる各コンポーネントで多種多様な機能を揃えており、難易度の高い走行環境にも対応できるように作られています. + +一方、その複雑な構成を理解し、各パラメータの意味や調整の仕方、モジュールの切り替え・入れ替えなどを行うことが必ずしも容易ではなくなっています. + +### 縮小構成のAutoware-Microの用意 + +そのため、前回のシミュレーション大会では、デフォルトのAutowareから機能を絞り、ノード数を減らしたAutowareを用意しました. + +Autoware-Microのノード図を以下に示します.ノード数が格段と減り、基本的な自動走行を可能とする機能のみが揃っていることが分かります. + +![micro-node-diagram](./images/architecture/reference-autoware.png) + +Autoware-Microの特徴としては、以下が挙げられます. + +- ほぼ全てのノードの起動を直接1つのLaunchファイルから行っている. +- パラメータを直接ノード起動時に書き込んでいるため、どのパラメータがどのノードで必要なのかを簡単に追うことができる. +- 各ノードの入出力となるROSトピック名も直接ノード起動時に`remap`しているため、トピック名も簡単に変えられる. + +このAutowareをベースに自動運転ソフトを書くことで、以下のようなことができます. + +- シンプルな構成となっているため、Autowareの中身をより深く理解できる +- 自作のモジュールをAutowareのものと簡単に入れ替えることができ、機能の改善に取り組める +- パラメータを変更した場合のシステム全体の動作への影響が分かりやすい +- 今回のAutowareには含まれていない既存のAutowareのノードを追加することもできる + +各コンポーネントの変更点・特徴としては、以下が挙げられます. + +- Localization:GNSS、IMU及び車輪速による自己位置推定 +- Planning:behavior_velocity_plannerやobstacle_stop_plannerなどを省略し、出力経路から走行trajectoryを直接出力するように変更. +- Control:制御の1つの実装例としてsimple_pure_pursuitを用意. + +## Autoware-Microの活用方法 + +Autoware-Microを活用することにより、本大会での課題となる: + +1. カーブなどの戦略的な経路計画 +2. 高速での車両制御 + +に集中して取り組むことができるようになります. + +また、Autoware-Microの実装例を参考にしながら、Autowareのアーキテクチャとは少し異なる実装方法を試したり、新しくカスタムのノードを作成・導入したりすることができます. + +独自のノードの実装を取り入れることにより、走行性能を向上させ点数を伸ばすことができます. + +例えば、以下のような構成を考え、「Planning」と「Control」をそれぞれ実装して取り組んだり、「Planning & Control」を両方担うノードを実装できます. + +ルートの入力と車両インターフェイス出力のROSトピックさえ合っていれば自由にカスタマイズして頂けます. + +![racing-diagram](./images/architecture/racing_simple.png) + +昨年度の取り組みはこちらのアドベントカレンダーにまとめられていますので参考にしてみてください。 + +[アドベントカレンダー](https://qiita.com/advent-calendar/2023/jidounten-ai) + +どれから読もうか迷った方は2023年度コミュニティ貢献賞を受賞した田中新太さんが記載してくれた[こちらの記事](https://qiita.com/Arata-stu/items/4b03772348dca4f7ef89)から読み進めると良いと思います。 + +## 独自実装の作成例 + +とりあえず新たに自作パッケージを作成してみたい方は既存のパッケージをコピーしたり、[autoware practice](https://github.com/AutomotiveAIChallenge/autoware-practice)をコピーする形で以下のように進めると良いと思います。 + +1. 元のパッケージをコピーして、下記を変更 + * パッケージ名 + * フォルダ名 + * コード + * package.xml + * CMakeLists.txt +2. aichallenge_submitの中に配置 +3. autoware_micro_awsim_launchから呼び出されるlaunchファイルを変更 + * 参考例:pose_initializer_custom( autoware_universe_launch/tier4_localization_launch/launch/util/util.launch.xmlから呼び出しております) + +※コピー元のパッケージのライセンスを違反しないよう各自確認お願いいたします。 \ No newline at end of file diff --git a/docs/development/requirements.en.md b/docs/development/requirements.en.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/development/requirements.ja.md b/docs/development/requirements.ja.md new file mode 100644 index 0000000..d21cd22 --- /dev/null +++ b/docs/development/requirements.ja.md @@ -0,0 +1,16 @@ +# 推奨環境 + +本大会で使用していただくPCの動作環境として以下を推奨しております。 + +- OS: Ubuntu 22.04 +- CPU: Intel Core i5(4コア)以上(推奨) +- メモリ: + - 8GB以上(最低) + - 16GB以上(推奨) +- SSD: 60GB以上 + +Windows環境しかお持ちでない方は、Ubuntu22.04のインストールをお願いいたします。Windows環境と同じディスクにUbuntu環境を入れることもできますが、不慣れな場合Windows環境を破壊してしまう可能性があるため、新しく外付けまたは内蔵SSDを購入したうえでそちらへのインストールをすることを強くお勧めします。 + +!!! info + + Ubuntuのインストール方法については[こちらの記事](https://qiita.com/kiwsdiv/items/1fa6cf451225492b33d8)が参考になります。 \ No newline at end of file diff --git a/docs/development/workspace.ja.md b/docs/development/workspace.ja.md index 8c1f7e3..2c1e7f0 100644 --- a/docs/development/workspace.ja.md +++ b/docs/development/workspace.ja.md @@ -1,16 +1,5 @@ # ワークスペース -## 推奨環境 - -本大会で使用していただくPCの動作環境として以下を推奨しております。 - -- OS: Ubuntu 22.04 -- CPU: Intel Core i5(4コア)以上(推奨) -- メモリ: - - 8GB以上(最低) - - 16GB以上(推奨) -- SSD: 60GB以上 - ## 大会用リポジトリのビルド・実行 大会用リポジトリでは、実際の動作環境はすべてDocker内で完結して提供されています。リポジトリの利用は以下の流れで行います。 @@ -72,13 +61,56 @@ Autowareのビルド後、以下のコマンドを実行します。 ```bash ./run_evaluation.bash ``` - 下記の様な画面が表示されたら起動完了です。終了するにはターミナル上でCTRL + Cを入力します。 ![autoware](./images/installation/autoware.png) -A. Dockerイメージのビルドをお願いします。 +## [任意] Debug用にTerminalを3つ用意して開発したい場合 + + +`Alt+Ctrl+T`で1つ目のターミナルを立ち上げてから、以下のコマンド`Ctrl+Shift+P`で貼り付けた後に`Enter`で実行します。 + +```bash +cd ~/aichallenge-2024 +./docker_run.sh dev cpu +``` + +```bash +cd /aichallenge +bash run_simulator.bash +``` + + +`Alt+Ctrl+T`で2つ目のターミナルを立ち上げてから、以下のコマンド`Ctrl+Shift+P`で貼り付けた後に`Enter`で実行します。 + +```bash +cd ~/aichallenge-2024 +./docker_run.sh dev cpu +``` + +```bash +cd /aichallenge +bash run_autoware.bash +``` + +`Alt+Ctrl+T`で3つ目のターミナルを立ち上げてから、以下のコマンド`Ctrl+Shift+P`で貼り付けた後に`Enter`で実行します。 + +```bash +cd ~/aichallenge-2024 +./docker_run.sh dev cpu +``` + +```bash +cd /aichallenge +ros2 topic pub --once /control/control_mode_request_topic std_msgs/msg/Bool '{data: true}' >/dev/null +``` + + +下記の様な画面が表示されたら起動完了です。終了するには各ターミナル上でCTRL + Cを入力します。 +![autoware](./images/installation/autoware.png) + +### [参考]ワークスペースの構成 -### ワークスペースの構成 +参考までにこちらにワークスペースの構成を記載しておきます。 docker-dev diff --git a/docs/getting-started.ja.md b/docs/getting-started.ja.md index 7135b6b..f7b624e 100644 --- a/docs/getting-started.ja.md +++ b/docs/getting-started.ja.md @@ -23,19 +23,23 @@ Windows環境しかお持ちでない方は、Ubuntu22.04のインストール ## AIチャレンジの環境構築 -`Alt+Ctrl+T`でターミナルを立ち上げてから、以下に従ってコマンドを実行します。 +`Alt+Ctrl+T`でターミナルを立ち上げてから、以下に従ってコマンド`Ctrl+Shift+P`で貼り付けた後に`Enter`で実行します。 [環境構築の説明ページ](./development/installation.md) ## 大会用リポジトリのビルド・実行 -環境構築が終わってから再度`Alt+Ctrl+T`でターミナルを立ち上げてから、以下に従ってコマンドを実行します。 +環境構築が終わってから再度`Alt+Ctrl+T`でターミナルを立ち上げてから、以下に従ってコマンド`Ctrl+Shift+P`で貼り付けた後に`Enter`で実行します。 [ワークスペースの使い方説明ページ](development/workspace.md) ## AIチャレンジでの開発の進め方 -AIチャレンジで開発する上でベースとなるソースコードは[大会用リポジトリ](https://github.com/AutomotiveAIChallenge/aichallenge-2024/tree/main/aichallenge/workspace/src/aichallenge_submit)内に提供されています。参加者の皆様にはこちらのコードをカスタマイズすることで開発を進めていただきますが、Autowareに不慣れな方はまずは[入門講座](./course/index.md)を一通りやっていただくことをお勧めします。 +ビルド・実行が終わってからメインモジュールの解説ページを読みながら実際に開発してみましょう。 + +[メインモジュールについての解説ページ](development/workspace.md) + +※AIチャレンジで開発する上でベースとなるソースコードは[大会用リポジトリ](https://github.com/AutomotiveAIChallenge/aichallenge-2024/tree/main/aichallenge/workspace/src/aichallenge_submit)内に提供されています。参加者の皆様にはこちらのコードをカスタマイズすることで開発を進めていただきますが、Autowareに不慣れな方はまずは[入門講座](./course/index.md)を一通りやっていただくことをお勧めします。 ## 参考 @@ -65,3 +69,5 @@ Q. `docker_run.sh: 行 35: rocker: コマンドが見つかりません` A. [rockerのインストール](./development/installation.md)をお願いします。 Q. `WARNING unable to detect os for base image 'aichallenge-2024-dev', maybe the base image does not exist` + +A. Dockerイメージのビルドをお願いします。 \ No newline at end of file diff --git a/mkdocs.yaml b/mkdocs.yaml index 4960043..cc06934 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -38,6 +38,7 @@ nav: - development/visible-simulation.md - development/main-module.md - development/device-drivers.md + - development/requirements.md - FAQ: faq.md - Community: community.md