-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
19 changed files
with
1,059 additions
and
81 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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!!! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
Oops, something went wrong.