Skip to content

Commit

Permalink
feat:add english page (#67)
Browse files Browse the repository at this point in the history
  • Loading branch information
knorrrr authored Jul 17, 2024
1 parent 2fb9aa4 commit 539468b
Show file tree
Hide file tree
Showing 19 changed files with 1,059 additions and 81 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,25 @@

このリポジトリでは、自動車技術会主催の自動運転AIチャレンジで使用するドキュメントのリソースを管理しています。参加者の皆様は、生成されたドキュメントサイトをご覧ください。

This repository manages the documentation resources used for the Autonomous Driving AI Challenge organized by the Society of Automotive Engineers of Japan. Participants are encouraged to view the generated documentation site.

- [日本語ページ](https://automotiveaichallenge.github.io/aichallenge-documentation-2024/)
- [English Page](https://automotiveaichallenge.github.io/aichallenge-documentation-2024/en/)

## Deploy

ドキュメントの生成環境をインストールするには以下のコマンドを実行します。

To install the documentation generation environment, run the following command:

```bash
pip install -r requirements.txt
```

ドキュメントをローカル環境で確認したい場合は以下を実行します。

To view the documentation in your local environment, run:

```bash
mkdocs serve
```
12 changes: 12 additions & 0 deletions docs/community.en.md
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
# Community

## Autonomous Driving AI Challenge Advent Calendar 2024

<https://qiita.com/advent-calendar/2023/jidounten-ai>

## Articles on Autonomous Driving AI Challenge Efforts

<https://automotive.panasonic.com/feature/jaaic>

<https://www.ritsumei.ac.jp/ise/suki_ict/story01.html/>

We are actively seeking contributions!!!
80 changes: 80 additions & 0 deletions docs/development/main-module.en.md
Original file line number Diff line number Diff line change
@@ -1 +1,81 @@
# Main Module

## Customizing Autoware

For this competition, we have prepared an implementation based on the autonomous driving software Autoware. This page provides background information and explanations on how to utilize this implementation effectively.

In the previous simulation competition, we provided a launch file that could start a reduced configuration of Autoware by limiting functions and reducing the number of nodes from the default Autoware. For the background and purpose of this setup, please refer to the [previous competition's documentation](https://automotiveaichallenge.github.io/aichallenge2023-racing/customize/index.html).

For this simulation competition, we have similarly prepared a [reduced configuration of Autoware designed for use with AWSIM](https://github.com/AutomotiveAIChallenge/aichallenge-2024/blob/main/aichallenge/workspace/src/aichallenge_submit/aichallenge_submit_launch/launch/reference.launch.xml) to enable partial use and flexible integration of Autoware.

## Background of the Reduced Configuration of Autoware

### Challenges of Using Autoware

The default Autoware is composed of many nodes to accommodate various driving environments.

You can also view the [configuration diagram of ROS nodes that constitute Autoware](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/node-diagram/) in the official Autoware documentation. The current diagram is shown below.

![node-diagram](./images/architecture/autoware-node-diagram.png)

Autoware is equipped with a wide range of functions in each component related to autonomous driving, designed to handle complex driving environments.

However, understanding this complex configuration, the meaning and adjustment of each parameter, and switching or replacing modules is not necessarily easy.

### Preparing a Reduced Configuration of Autoware-Micro

Therefore, in the previous simulation competition, we prepared a reduced configuration of Autoware by limiting functions and reducing the number of nodes from the default Autoware.

The node diagram of Autoware-Micro is shown below. You can see that the number of nodes has significantly decreased, and only the functions necessary for basic autonomous driving are included.

![micro-node-diagram](./images/architecture/reference-autoware.png)

Features of Autoware-Micro include:

- Almost all nodes are started directly from a single launch file.
- Parameters are written directly at the node startup, making it easy to track which parameters are needed for which nodes.
- The ROS topic names used for input and output of each node are directly remapped at the node startup, making it easy to change the topic names.

By writing autonomous driving software based on this Autoware, you can:

- Understand the inner workings of Autoware more deeply due to its simple configuration.
- Easily replace Autoware modules with your custom modules to work on functionality improvements.
- Clearly see the impact of parameter changes on the overall system operation.
- Add existing Autoware nodes that are not included in this version of Autoware.

Changes and features of each component include:

- Localization: Self-position estimation using GNSS, IMU, and wheel speed.
- Planning: Simplified by omitting behavior_velocity_planner and obstacle_stop_planner, directly outputting a driving trajectory from the output route.
- Control: A simple implementation example of control with simple_pure_pursuit.

## Utilizing Autoware-Micro

By utilizing Autoware-Micro, you can focus on the challenges of this competition:

1. Strategic route planning for curves.
2. Vehicle control at high speeds.

Moreover, while referring to the implementation example of Autoware-Micro, you can try implementation methods slightly different from Autoware's architecture or create and introduce new custom nodes.

By incorporating your custom nodes, you can improve driving performance and increase your score.

For example, you can consider the following configuration, implement "Planning" and "Control" separately, or implement a node that handles both "Planning & Control."

You are free to customize as long as the ROS topics for route input and vehicle interface output match.

![racing-diagram](./images/architecture/racing_simple.png)

## Workspace Structure

For reference, the workspace structure used in this competition is as follows:

docker-dev

![dev](./images/docker/dev.drawio.svg)

docker-eval

![eval](./images/docker/eval.drawio.svg)

## [NextStep: Reference](./reference.en.md)
63 changes: 63 additions & 0 deletions docs/development/reference.en.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Reference

## Incorporating Changes

When there are significant updates to the competition environment, announcements will be made accordingly. For reference, the following instructions are provided.

Update Docker

```bash
docker pull ghcr.io/automotiveaichallenge/autoware-universe:humble-latest
```

Update Repository

```sh
cd aichallenge2024 # path to aichallenge2024
git pull origin/main
```

## Installing AWSIM with Visualization

If you want to check the simulation screen of AWSIM, follow the steps in [this guide](../setup/visible-simulation.en.md) to install AWSIM with visualization.

## Setting up Three Terminals for Debugging (Reference)

To develop with three terminals for debugging, open the first terminal using `Alt+Ctrl+T` and then execute the following commands by pasting them with `Ctrl+Shift+P` and pressing `Enter`.

```bash
cd ~/aichallenge-2024
./docker_run.sh dev cpu
```

```bash
cd /aichallenge
bash run_simulator.bash
```

Open the second terminal using `Alt+Ctrl+T` and then execute the following commands by pasting them with `Ctrl+Shift+P` and pressing `Enter`.

```bash
cd ~/aichallenge-2024
./docker_run.sh dev cpu
```

```bash
cd /aichallenge
bash run_autoware.bash
```

Open the third terminal using `Alt+Ctrl+T` and then execute the following commands by pasting them with `Ctrl+Shift+P` and pressing `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
```

When the screen below appears, the startup is complete. To terminate, press CTRL + C in each terminal.
![autoware](./images/autoware.png)
74 changes: 73 additions & 1 deletion docs/development/workspace-usage.en.md
Original file line number Diff line number Diff line change
@@ -1 +1,73 @@
# Workspace
# How to Proceed with the AI Challenge

![Where-to-start](./images/where-to-start.drawio.svg)

The AI Challenge leverages open-source software. By utilizing the code and web platform provided by the organizers, you can skip the initial development phase and immediately start developing in line with the competition theme.
This approach has the significant advantage of avoiding "reinventing the wheel." Additionally, it allows anyone to easily participate in the competition and enables the competition to be run with consistent evaluation criteria.

For first-time participants, you will start from a state where most of the functions necessary for autonomous driving are already in place, standing on the foundation built by your predecessors. From here, you have the opportunity to deepen your unique development in the competition field through the community's "publication of efforts."
Furthermore, to deepen your understanding of autonomous driving, we recommend using the " [Autoware Practice](../course/index.en.md) " prepared by the organizers and the learning programs provided by the ROS 2 community, such as " [ROS 2](https://docs.ros.org/en/humble/Tutorials.html) ".

For those who have already participated in the challenge, we encourage you to share your experiences, contribute to the community, and help the competition evolve. Your active participation will contribute to making the competition even more fulfilling.

* The source code that forms the basis for development in the AI Challenge is provided in the [competition repository](https://github.com/AutomotiveAIChallenge/aichallenge-2024/tree/main/aichallenge/workspace/src/aichallenge_submit) .

Participants will proceed with development by customizing this code and parameters. However, if you are unfamiliar with Autoware, we recommend going through the [introductory course](../course/index.en.md) first.

* For those who want to know the specifications, such as those developing independently without using the repository's code, refer to the [interface specifications](../specifications/interface.en.md) and [simulator specifications](../specifications/simulator.en.md) pages.

## Read the reference articles by voluntary participants

The efforts of voluntary participants are summarized in the [Advent Calendar](https://qiita.com/advent-calendar/2023/jidounten-ai) , so please refer to them.

If you are unsure where to start, we recommend starting with this [article](https://qiita.com/Arata-stu/items/4b03772348dca4f7ef89) written by Mr. Arata Tanaka, who won the Community Contribution Award in 2023.

## Try changing the parameters

For those who are unsure what to do after setting up the environment, try adjusting the parameters first.
This time, let's change the parameters of the control module simple_pure_pursuit.

Let's adjust the `value` values below in `$HOME/aichallenge-2024/aichallenge/workspace/src/aichallenge_submit/aichallenge_submit_launch/launch/reference.launch.xml`.

```xml
<node pkg="simple_pure_pursuit" exec="simple_pure_pursuit" name="simple_pure_pursuit_node" output="screen">
<param name="use_external_target_vel" value="true"/>
<param name="external_target_vel" value="8.0"/>
<param name="lookahead_gain" value="0.4"/>
<param name="lookahead_min_distance" value="5.0"/>
<param name="speed_proportional_gain" value="1.0"/>
```

After making adjustments, try [building and running](../setup/build-docker.en.md) again. You should be able to confirm that the behavior has changed.

## Try creating a new package

Try creating a new custom package. First, copy open-source packages or the [autoware practice](https://github.com/AutomotiveAIChallenge/autoware-practice).
It would be best if you proceed as follows.

1. Copy the original package and change the following
* Package name
* Folder name
* Code
* package.xml
* CMakeLists.txt
2. Place it in aichallenge_submit
3. Change the launch file (reference.launch.xml) in aichallenge_submit_launch

* Please ensure that you do not violate the license of the copied package.

## [Optional] Try editing the map

For the 2024 AI Challenge, we recommend editing maps such as point cloud maps and lanelet2 maps using tools like [VectorMapBuilder](https://tools.tier4.jp/feature/vector_map_builder_ll2/) .

Download and edit the point cloud map, lanelet2 map, etc., from the [Map file storage](https://drive.google.com/drive/folders/1nsYIg_3rwIjg0x6BC__aWVmnv-25nZkn) !

Refer to the [VectorMapBuilder usage video](https://www.youtube.com/watch?v=GvZr707TmuM) for step-by-step instructions.

Store the created lanelet2 map in `aichallenge/workspace/src/aichallenge_submit/aichallenge_submit_launch/map`.

## Try submitting

After customizing the workspace, refer to [this](../preliminaries/submission.en.md) to submit.

## [Next Step: Learn about the Main Module](./main-module.en.md)
Loading

0 comments on commit 539468b

Please sign in to comment.