From 539468b89df80180ee4589d162de4eb2347c8ea9 Mon Sep 17 00:00:00 2001 From: knorrrr <99851410+knorrrr@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:49:01 +0900 Subject: [PATCH] feat:add english page (#67) --- README.md | 6 ++ docs/community.en.md | 12 +++ docs/development/main-module.en.md | 80 ++++++++++++++ docs/development/reference.en.md | 63 +++++++++++ docs/development/workspace-usage.en.md | 74 ++++++++++++- docs/faq.en.md | 138 +++++++++++++------------ docs/getting-started.en.md | 47 +++++++++ docs/index.en.md | 48 ++++++++- docs/information/rules.en.md | 80 ++++++++++++++ docs/information/schedule.en.md | 14 ++- docs/preliminaries/check-results.en.md | 53 +++++++++- docs/preliminaries/submission.en.md | 74 +++++++++++++ docs/setup/build-docker.en.md | 72 +++++++++++++ docs/setup/docker.en.md | 88 +++++++++++++++- docs/setup/headless-simulation.en.md | 12 ++- docs/setup/requirements.en.md | 31 +++++- docs/setup/visible-simulation.en.md | 133 +++++++++++++++++++++++- docs/setup/workspace-setup.en.md | 22 +++- docs/specifications/interface.en.md | 93 +++++++++++++++++ 19 files changed, 1059 insertions(+), 81 deletions(-) diff --git a/README.md b/README.md index 287209e..9b7506a 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ このリポジトリでは、自動車技術会主催の自動運転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/) @@ -11,12 +13,16 @@ ドキュメントの生成環境をインストールするには以下のコマンドを実行します。 +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 ``` diff --git a/docs/community.en.md b/docs/community.en.md index 100f4c1..595dc5e 100644 --- a/docs/community.en.md +++ b/docs/community.en.md @@ -1 +1,13 @@ # Community + +## Autonomous Driving AI Challenge Advent Calendar 2024 + + + +## Articles on Autonomous Driving AI Challenge Efforts + + + + + +We are actively seeking contributions!!! diff --git a/docs/development/main-module.en.md b/docs/development/main-module.en.md index ae96ba0..a3c8af7 100644 --- a/docs/development/main-module.en.md +++ b/docs/development/main-module.en.md @@ -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) diff --git a/docs/development/reference.en.md b/docs/development/reference.en.md index e69de29..cc145fd 100644 --- a/docs/development/reference.en.md +++ b/docs/development/reference.en.md @@ -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) diff --git a/docs/development/workspace-usage.en.md b/docs/development/workspace-usage.en.md index 079e19e..e10d1e7 100644 --- a/docs/development/workspace-usage.en.md +++ b/docs/development/workspace-usage.en.md @@ -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 + + + + + + +``` + +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) diff --git a/docs/faq.en.md b/docs/faq.en.md index 50aeb85..6167e26 100644 --- a/docs/faq.en.md +++ b/docs/faq.en.md @@ -1,10 +1,14 @@ # FAQ +!!! warning + + Many issues can be resolved using ChatGPT or Google search. For questions that cannot be resolved, please include and attach excerpts of error logs. + ## Environment Setup ### The communication between AWSIM and Autoware is unstable. -When testing locally, setting `ROS_LOCALHOST_ONLY=1` on all terminals improves communication speed. Add the following lines to your .bashrc: +When testing locally, setting `ROS_LOCALHOST_ONLY=1` in all terminals can improve communication speed. Add the following lines to your `.bashrc`. ```bash export ROS_LOCALHOST_ONLY=1 @@ -17,65 +21,76 @@ if [ ! -e /tmp/cycloneDDS_configured ]; then fi ``` -For this competition, we are considering configurations with two PCs: Windows+Linux or Linux+Linux. -In that case, set `ROS_LOCALHOST_ONLY=0`. +For a dual-PC setup (Windows+Linux or Linux+Linux), set `ROS_LOCALHOST_ONLY=0`. Note: -- After the OS starts, you will be prompted for a password when opening a terminal, and the initial `sudo ip link set lo multicast on` is required. -- If you forget to change the .bashrc as described above, it will always be applied, so be sure to check for changes with `echo $ROS_LOCALHOST_ONLY`. -- Communication between containers cannot occur if `ROS_LOCALHOST_ONLY=1` and `ROS_LOCALHOST_ONLY=0` are mixed. -- Note that `ROS_LOCALHOST_ONLY` is specified in the executable file. +- After OS startup, you will need to enter the password when starting the terminal and execute `sudo ip link set lo multicast on` for the first time. +- Always track changes by using commands like `echo $ROS_LOCALHOST_ONLY` to avoid forgetting modifications in `.bashrc`. +- Mixed use of `ROS_LOCALHOST_ONLY=1` and `ROS_LOCALHOST_ONLY=0` will prevent container communication. +- Ensure that `ROS_LOCALHOST_ONLY` is not hard-coded in the executable. --- -### ros2 topic list is not displayed. +### ros2 topic list does not display. -Make sure that the `ROS_DOMAIN_ID` of your machine matches. (There is no problem if you have not set the `ROS_DOMAIN_ID`.) -Also, please ensure that ROS2 is sourced. +Ensure that the `ROS_DOMAIN_ID` matches on your machine (this is not an issue if you haven't set `ROS_DOMAIN_ID`). Also, ensure ROS2 is sourced correctly. --- -### Using AWSIM on Windows and Autoware on Ubuntu, the $ ros2 topic list is not displayed. +### Using AWSIM on Windows and Autoware on Ubuntu, ros2 topic list does not display. -Allow communication through the Windows Firewall. -Also, execute `ros2 daemon stop` and `ros2 daemon start` to check if any unnecessary processes remain, and restart. +Allow communication through the Windows Firewall. Also, execute `ros2 daemon stop` and `ros2 daemon start` to ensure no unnecessary processes are running, then restart. --- ### Rocker does not start. -First, check if rocker is installed. -If it is installed but does not start, check your permissions. There have been reports that it cannot be executed if the account type/permissions differ between the account that built the image and the account that runs it. +First, verify that Rocker is installed. If it is installed but does not start, check the permissions. It has been reported that differing account types and permissions when building and running the image can cause issues. --- ### AWSIM terminates with a core dump. -If AWSIM terminates with a core dump immediately after startup, the GPU memory may be insufficient. Therefore, check if the GPU memory usage has reached its limit with `nvidia-smi`. -It is recommended to have more than 11GB of GPU memory. +If AWSIM terminates with a core dump immediately after startup, your GPU may be out of memory. Check the GPU memory usage with `nvidia-smi` to ensure it is not at its limit. A GPU with at least 11GB of memory is recommended. + +--- + +### I only have a Windows PC with a GPU. + +The official support is for the configuration listed on the HP website, so detailed guidance cannot be provided, but generally, the following methods are possible: + +The key is to "prepare an environment to run Autoware," which may involve issues related to performance, package availability, and host-container communication settings. Possible solutions include: + +- Setting up Ubuntu in a dual-boot configuration. +- Using a VM on Windows to run Ubuntu (Hyper-V, VirtualBox, VMware, etc.). +- Setting up Ubuntu on WSL2. +- Setting up a Docker environment on Windows and running the Autoware image directly. +- Building the environment in the cloud (some past participants used AWS). --- -### Only a Windows PC with a GPU is available. +### AWSIM appears but Rviz shows a black screen when set up on AWS. -Since the support for this competition is based on the configuration described on the HP, detailed guidance cannot be provided, but the following methods are generally possible. +There have been cases where running `sudo apt upgrade` resolved the issue. Additionally, there is a [similar question](https://github.com/ros2/rviz/issues/948) in a past issue that might be helpful. -The problem is setting up the Autoware environment to participate. -Therefore, the key is to prepare an environment to run Autoware, and there may be issues with performance, package availability, and host-container communication settings, but the following methods are possible: +--- + +### `docker_run.sh: line 35: rocker: command not found` appears. + +Please install Rocker as described [here](../docs/setup/docker.ja.md). + +--- + +### `WARNING unable to detect os for base image 'aichallenge-2024-dev', maybe the base image does not exist` appears. -- Prepare Ubuntu with dual boot -- Prepare Ubuntu in a VM on Windows (Hyper-V, VirtualBox, VMware, etc.) -- Prepare Ubuntu on WSL2 -- Prepare a docker environment on Windows (directly install the Autoware image) -- Build an environment in the cloud (some participants in past competitions have used AWS) +Please build the Docker image. --- -### AWSIM is displayed after setting up the environment on AWS, but Rviz shows a black screen. +### Unable to pull Docker. -There have been reports that `sudo apt upgrade` resolved the issue, so please check and try it. -Also, there was a similar question in a [past Issue](https://github.com/ros2/rviz/issues/948), so please check it as well. +Please restart Docker with `newgrp docker` or `sudo service docker restart`, or restart Ubuntu. --- @@ -83,90 +98,77 @@ Also, there was a similar question in a [past Issue](https://github.com/ros2/rvi ### ROS -#### When creating a package in python, a "no module named \*" error occurs at runtime. +#### I get a no module named \* error when creating a package with Python and running it. -Please refer to [this](https://zenn.dev/tasada038/articles/5d8ba66aa34b85#setup.py%E3%81%ABsubmodules%E3%81%A8%E3%81%97%E3%81%A6%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B). +Refer to [this guide](https://zenn.dev/tasada038/articles/5d8ba66aa34b85#setup.py%E3%81%ABsubmodules%E3%81%A8%E3%81%97%E3%81%A6%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B). --- -#### How can I check the type of a topic? +#### What command should I use to check the type of a topic? -To check the type of a topic, use `ros2 topic info -v fuga_topic` or if you can identify the node, use `ros2 node info hoge-node`. -If you want to find more information about ROS, searching "ROS2 commands" on the internet might be helpful. +Use `ros2 topic info -v fuga_topic` to check the type of a topic, or if you can identify the node, use `ros2 node info hoge-node`. For more information about ROS commands, searching for "ROS2 commands" online may also help. --- ### Autoware -#### Maps and routes are not displayed on Rviz. +#### Maps and routes are not displayed in Rviz. -Make sure that the map data you are using is placed in the appropriate location and is correct. +Ensure that the map data is placed in the correct location and is valid. --- -#### I don't know how to modify Autoware to participate. +#### I don't know how to improve Autoware for participation. -There are ways such as adjusting node parameters, modifying, or replacing nodes in Autoware. -The basic configuration of Autoware is summarized in another tab on this site and [here](https://automotiveaichallenge.github.io/aichallenge2023-integ/customize/index.html), so please make use of it. -Also, although it is an external article, [this](https://qiita.com/h_bog/items/86fba5b94b2148c4d9da) might be helpful. +Methods include adjusting parameters, improving nodes, or replacing nodes in Autoware. Basic configurations of Autoware can be found on the website or [here](https://automotiveaichallenge.github.io/aichallenge2023-integ/customize/index.html). Additionally, [this external article](https://qiita.com/h_bog/items/86fba5b94b2148c4d9da) might be helpful. --- -#### Tell me about behavior path/motion planner route generation. +#### Please explain about Behavior Path/Motion Planner. -The behavior planner is primarily designed for driving on general roads (ODD3 and above), considering traffic rules that should not be broken (e.g., stop lines, crosswalks, signal stops). -Therefore, avoidance is also rule-based and not optimized. -On the other hand, motion is designed for driving in limited areas or limited spaces (ODD2 and below) and does not handle information such as signals or map information. -It is responsible for necessary functions such as obstacle avoidance, stopping, and speed optimization. +The behavior planner primarily functions for general roads (ODD3 and above), considering traffic rules like stop lines, crosswalks, and signal stops. It does not optimize avoidance functions. On the other hand, the motion planner functions for limited areas (ODD2 and below), handling basic driving functionalities such as obstacle avoidance, stopping, and speed optimization without using signals or map information. --- -#### Tell me about Autoware's avoidance behavior. +#### Please explain Autoware's avoidance behavior. -There are two types of avoidance: behavior path and obstacle avoidance. -By default, obstacle avoidance is off, and only path smoothing is performed. -Additionally, by default, behavior path is set to avoid, but only cars and trucks are the target objects. +There are two types of avoidance: behavior path and obstacle avoidance. By default, obstacle avoidance is off and only path smoothing is performed. The default setting is to avoid using the behavior path, but the default avoidance targets are only cars and trucks. --- -#### Tell me about the center point. +#### Please explain the center point. -The center point detects vehicles, trucks, and pedestrians, but it cannot detect items like cardboard boxes that are not tagged. -However, currently, Autoware does not function unless it receives objects in the planning stage, and using the default configuration with the center point can cause the following issues: +The center point detects cars, trucks, and pedestrians, but not untagged objects like cardboard boxes. Currently, Autoware requires object data for planning, and the default configuration using center point can lead to two issues: -1. Planning cannot generate a path if the center point fails. -2. Clustering-based obstacle detection results are erased by data association. +1. If the center point fails, planning cannot generate a path. +2. Clustering-based obstacle detection results are erased during data association. -Therefore, the perception configuration of autoware mini is ideal, but understanding and implementing the addition, removal, and selection of nodes can be challenging, so it is important to ensure the center point functions correctly. -[Reference](https://autowarefoundation.github.io/autoware.universe/main/perception/lidar_centerpoint/) +Although Autoware mini is the ideal perception configuration, understanding these issues and selectively implementing nodes is challenging. Ensuring the center point functions correctly may be important. [Reference](https://autowarefoundation.github.io/autoware.universe/main/perception/lidar_centerpoint/) --- ### AWSIM -#### How can I reset the car to its initial position? +#### How can I reset the car to the initial position? -Currently, the only way is to restart AWSIM. +Currently, the only way to do this is by restarting AWSIM. --- -#### AWSIM's operation is unstable. +#### AWSIM operation is unstable. -One of the causes can be insufficient GPU performance. -If using a high-performance GPU is difficult, setting the time scale to around 0.5 with the slider at the bottom of the AWSIM screen may stabilize the operation. +This may be due to insufficient GPU performance. If using a high-performance GPU is not feasible, setting the time scale to about 0.5 using the slider at the bottom of the AWSIM screen may stabilize operation. --- -#### I want to tune the mpc, but are the model parameters (lag and time constants) used in AWSIM disclosed? +#### I want to tune the MPC. Are the model parameters (delay and time constants) used in this AWSIM disclosed? -The lag and time constants are not measured or disclosed, but the basic specifications are available [here](./specifications/simulator.en.md). +The delay and time constants are neither measured nor disclosed, but the basic specifications are available [here](./specifications/simulator.en.md). --- -## General Competition +## General Competition Questions -### Is it possible to add additional sensors? +### Is it possible to add extra sensors? -To tackle the tasks under the same conditions and difficulty, adding new sensors is not allowed. - ---- +To ensure all participants face the same conditions and difficulty, the addition of new sensors is not allowed. diff --git a/docs/getting-started.en.md b/docs/getting-started.en.md index bad5562..d021eef 100644 --- a/docs/getting-started.en.md +++ b/docs/getting-started.en.md @@ -1 +1,48 @@ # Getting Started + +This page outlines the steps to participate in the AI Challenge. + +You can participate in this competition with a single PC running Ubuntu 22.04. + +First, use the online scoring environment, then proceed with environment setup and development. + +## [Register for the Autonomous Driving AI Challenge 2024](https://docs.google.com/forms/d/e/1FAIpQLSc0xFCrNS_J5Bl2g2RIZ694B5p9vOhlav9hrwgumtBrQuQ0RQ/viewform) + +If you haven't registered yet, please do so using the link above. + +## Accessing and Submitting to the [Online Scoring Environment](https://aichallenge-board.jsae.or.jp/live) + +In this competition, you will upload submission files (compressed source code files) to the online environment, where they will be automatically scored and ranked. + +Let's try using the online scoring environment with these four steps! +!!! info + + Accessing the online scoring environment and submitting a file should take about 5 minutes. + +1. After registering for the Autonomous Driving AI Challenge, login information will be sent to your registered email address. + +2. Access the [online scoring environment](https://aichallenge-board.jsae.or.jp/live) and log in using the credentials provided in the email. + +3. Once you have access, try submitting a source code file. Download the sample code compressed file from the red button below. + +4. Upload the file directly through the "UPLOAD" button in the online scoring environment to submit it. + +[Download the sample code compressed file](https://drive.google.com/file/d/19LU70cgeg48R6stEXjvwDp1pTT25OjeN){ .md-button .md-button--primary .banner-button } + +![submit](./preliminaries/images/submit.png) + +## [Setting Up the AI Challenge Environment](./setup/requirements.en.md) + +Please follow the link above to set up the environment. +!!! info + + You can participate in this competition with a single PC running Ubuntu 22.04. + +## [How to Proceed with Development in the AI Challenge](./development/workspace-usage.en.md) + +Let's start developing by following the link above! + +## [Submitting Your Source Code](./preliminaries/submission.en.md) + +Submit your completed code via the [online scoring environment](https://aichallenge-board.jsae.or.jp/live). +Set up your submission using the link above. diff --git a/docs/index.en.md b/docs/index.en.md index d5edee3..c81e027 100644 --- a/docs/index.en.md +++ b/docs/index.en.md @@ -1,17 +1,57 @@ # Japan Automotive AI Challenge 2024 +![top_image](./assets/top_image.jpg) + ## Concept -![concept](./assets/concept.drawio.svg) +!!! info + + This competition is a new initiative aimed at discovering and nurturing engineers who will lead the future automotive industry in the new technological domains known as CASE and MaaS. + + The competition involves not only developing programs for autonomous driving mobility but also competing in driving competitions with these developed programs. It aims to provide a platform for engineers, researchers, and students involved in computer science, AI, software, and information processing to challenge themselves, learn, and create organic connections. + +## Objectives + +### The Role of the Competition from a Technical Perspective -## Goals +- Learn SDV (Software Defined Vehicle) development through software integration while understanding hardware +- Learn Continuous Integration / Continuous Deployment (CI/CD) +- Conduct development using Open Source Software (OSS) as a platform for innovation towards social implementation + +### The Role of the Competition in Human Resource Development + +- Promote participation of engineers from various fields +- Accelerate skill development through the provision of educational content +- Learn how to develop SDVs by reconciling real machines and simulators +- Innovate through digital twin simulations +- Create "aspirations" and "passion and excitement" by combining technical competition with entertainment, using motorsport as a theme ## Overview +### Preliminary Round + +The preliminary round will be conducted through online simulations. The competition aims to achieve faster lap times on the course using AWSIM, which is oriented towards digital twin simulations. Participants will not only learn the structure of Autoware but also adjust parameters for behavior and decision-making parts and develop new algorithms as needed. + + + +### Final Round + +The final competition will be conducted using an EV racing kart as the competition vehicle. Participants will apply the knowledge gained from simulations to real vehicles and tackle challenges unique to real vehicles that cannot be replicated in AWSIM. + +For example, participants will be challenged to adjust parameters for application to real vehicles and develop algorithms for noise handling and delay countermeasures that cannot be replicated in simulations. + + + ## Awards -## Driving Course +The total prize money is over 1 million yen. For details, please refer to the [2024 Autonomous Driving AI Challenge Overview](https://www.jsae.or.jp/jaaic/2024ver/summary/). + +## Course + + + +## Vehicle -## Vehicle Used +![TOM'S Racing Kart](./assets/racing-kart.jpeg) ## Challenges diff --git a/docs/information/rules.en.md b/docs/information/rules.en.md index 779ea24..6c4bc7c 100644 --- a/docs/information/rules.en.md +++ b/docs/information/rules.en.md @@ -1 +1,81 @@ # Rules + +## Overview + +Teams will compete to achieve the shortest driving time while completing the specified number of laps on a designated course. + +## Environment + +The course will have a "Start Area," "Control Line," and "Pit Stop Area." Vehicles will start from the Start Area, and the driving time will be measured when they touch the Control Line. For details on the Pit Stop Area, refer to the "Pit Stop" section below. Each team will drive individually, without other vehicles or obstacles on the course simultaneously. + +## Progress + +Each team will have a preparation session to set up their vehicle and a recording session to measure driving times. However, in the preliminary competition, vehicles will not be used, so there will be no preparation session. Advanced class teams can always perform vehicle maintenance, so they do not have a preparation session either. + +| Item | Final Competition | Preliminary Competition | +| ----------------- | ----------------- | ----------------------- | +| Preparation Session | TBD | None | +| Recording Session | TBD | 7:00 | +| Number of Laps | TBD | 6 | + +### Starting the Drive + +Vehicles will start from the Start Area, and the driving time will begin when they first touch the Control Line. In the preliminary competition, vehicles will be pre-positioned in a predetermined posture. In the final competition, vehicles can be placed in any posture within the Start Area, but operations on the vehicle are only allowed within the Start Area. + +### Ending the Drive + +The drive will end and be recorded as a result under the following conditions: + +- The specified number of laps is completed. +- The allotted time for the recording session has elapsed. +- The vehicle is touched and operated. +- Any other reason deemed appropriate by the organizers. + +### Stopping the Drive + +The drive will end and be invalidated under the following conditions: + +- (Preliminary only) The vehicle has not passed the Control Line within 2 minutes from the start of the recording session. +- (Preliminary only) The vehicle has significantly deviated from the course. +- The course walls are moved. +- Any other reason deemed appropriate by the organizers. + + + +## Ranking + +The ranking will be determined based on the following criteria: + +- If the specified number of laps is completed, the team with the shortest driving time. +- If the specified number of laps is not completed: + - The team with the most laps. + - If the lap count is the same, the team with the shortest time to the last lap. + +## Pit Stop + +Vehicles have a virtual value called "Condition," which, when increased, restricts their speed. Condition increases as the vehicle drives and also when it collides with virtual obstacles described below. The Condition can be reset to its initial value by stopping in the Pit Stop Area for a specified number of seconds. + +| Setting Item | Value | Additional Notes | +| ----------------------- | ------------ | ------------------------------ | +| Pit Stop Time | 3.0 seconds | ― | +| Speed Limit Activation | 1000 | Maximum speed is limited to 20 km/h | +| Section Pass | 30 | ― | +| Virtual Obstacle Collision | 20 - 380 | Varies depending on the collision | + +### Pit Stop Area + +The Pit Stop Area is indicated by a green frame as shown in the image below. + +![pit-stop-area](./images/pit-stop-area.png) + +### Increasing Condition + +The course is virtually divided into multiple sections, and Condition increases by a fixed amount each time the vehicle exits a section. Additionally, virtual obstacles displayed with a purple frame, as shown in the image below, are placed on the course, and Condition increases if the vehicle collides with them (virtual obstacles do not affect the physical behavior of the vehicle). + +Virtual obstacles are generated at random positions within a section each time the vehicle exits a section. After the first lap, virtual obstacles are removed and regenerated in the section, so multiple virtual obstacles will not be placed within the same section. Also, no virtual obstacles are generated near the Pit Stop Area. + +![virtual-objects](./images/virtual-objects.png) diff --git a/docs/information/schedule.en.md b/docs/information/schedule.en.md index 2fc89b4..f9ae6ee 100644 --- a/docs/information/schedule.en.md +++ b/docs/information/schedule.en.md @@ -1,4 +1,4 @@ -# Information +# Competition Information ## Overall Flow @@ -6,4 +6,14 @@ ## Schedule -## Registration +| Event | Date | +| ----------------------- | --------------------------- | +| Participant Registration | May 27, 2024 - July 1, 2024 | +| Networking Event | June 21, 2024 | +| Preliminary Round | July 2, 2024 - September 2, 2024 | +| Preliminary Awards Ceremony | Around September 2024 (tentative) | +| Practice Day | October 10-11, 2024 | +| Practice Day | November 1, 2024 | +| Semifinals | November 2, 2024 | +| Finals | November 3, 2024 | +| Finals Awards Ceremony & Networking Event | Around December 2024 | diff --git a/docs/preliminaries/check-results.en.md b/docs/preliminaries/check-results.en.md index 4e0f7b4..e945532 100644 --- a/docs/preliminaries/check-results.en.md +++ b/docs/preliminaries/check-results.en.md @@ -1 +1,52 @@ -# Check Results +# Checking Results + +This page explains the rules and ranking system for the competition. Please note that the content of this page may change during the competition period. + +## Ranking System + +Scores will be calculated based on the following steps. If multiple runs are made, the higher score will be adopted. If a run is stopped, it will be treated as having completed 0 laps. + +1. The number of laps completed at the end of the run. + +2. The shortest total lap time up to the final lap. + +Special Awards: Preliminary rounds will have a seeding system, and finals will have awards. + +- Best Lap Time: Measured using SIM in the preliminaries and TOM’S system in the finals. + +- Best Comfortable Ride: Measured using SIM in the preliminaries and by measuring the water in a glass in the finals. + - Interaction and recognition of engineers from various fields. + +***Ranking Example*** + +| Lap | Time | Gap | Rank | +|-----|----------|-------------|------| +| 7 | 04:41.000| ― | 1 | +| 7 | 04:47.000| +00:06.000 | 2 | +| 7 | 04:54.000| +00:13.000 | 3 | +| 6 | 04:18.000| ― | 4 | +| 6 | 04:29.000| +00:11.000 | 5 | +| 6 | 04:42.000| +00:24.000 | 6 | +| 6 | 04:56.000| +00:38.000 | 7 | +| 5 | 04:05.000| ― | 8 | +| 5 | 04:23.000| +00:18.000 | 9 | + +## Submission + +Participants are required to upload their developed software to the evaluation system via the submission page. For details, please refer to [this link](submission.en.md). + +### How to Check Results + +The result scores will be sent to `result-summary.json`. + +#### Result Log Format + +Results will be output in the following format in `./output/result-summary.json`. + +```json +{ + "laps": [50.12, 50.34, 50.56, 50.78, 50.90], + "min_time": 50.12, + "max_jerk": 32.10 +} +``` diff --git a/docs/preliminaries/submission.en.md b/docs/preliminaries/submission.en.md index 790ba96..7c245be 100644 --- a/docs/preliminaries/submission.en.md +++ b/docs/preliminaries/submission.en.md @@ -1 +1,75 @@ # Submission + +## Online Environment + +In this competition, scoring will be conducted using an online environment equipped with a simulator and automatic scoring functions. Please follow the steps below to upload your created packages to the online environment. Once uploaded, the simulation will automatically start, and the results will be displayed. + +Submit your work by following these steps: + +1. Compress the source code. +2. Verify the operation in the local evaluation environment. +3. Submit to the online scoring environment. + +### Upload Procedure to the Online Environment + +1. Operation Verification + + 1.1. Preparation + + - Compress `aichallenge_submit` and generate a folder for result output. + - Run: `./create_submit_file.bash` + + 1.2. Build Docker Image + + - Run: `./docker_build.sh eval` + + 1.3. Start Docker Container + + - After startup, Autoware will automatically launch, and autonomous driving will begin. + - For GPU version of AWSIM: `./docker_run.sh eval gpu` + - For CPU version of AWSIM: `./docker_run.sh eval cpu` + + 1.4. Check `result.json` + + - After evaluation is complete, the following files will be stored in the `output/latest` folder: + - `autoware.log` + - `rosbag2_autoware` + - `capture` + - `result-summary.json` + - `result-details.json` + +2. Upload to the Online Environment + + Access the [online environment](https://aichallenge-board.jsae.or.jp/live) and log in from the [“LOG IN”](https://aichallenge-board.jsae.or.jp/auth/login) button in the top right corner. + ![hp_top](./images/siteImage1.png) + + Once logged in, upload `aichallenge_submit.tar.gz` from the green “UPLOAD” button. After uploading, the source code will be built, and the simulation will be executed in sequence. + ![hp_board](./images/siteImage2.png) + + - If it completes successfully, it will display "Scoring Completed," and you can download `result.json`, with each lap time displayed. + - If the scenario execution fails, such as a launch failure, resulting in no score output, it will display "No Results." In this case, please re-upload, as it might be an internal server error. Contact support if the problem persists. + - If the build fails, it will display "Build Failed." Check the steps and re-upload. + - The highest score from all previous scorings will be applied to the ranking. + - You cannot upload new source code while scoring is in progress. + - You can upload up to 10 times per day, with the count reset at midnight Japan time. + +3. Check Results + + After evaluation in the online environment, you can download `result.json`. Download and check the results. + +4. If There Are No Results + + 4.1. Check for package dependency issues + + - Verify that there are no missing dependencies in `package.xml`, `setup.py`, or `CMakeLists.txt`, depending on the language used. + + 4.2. Check Docker + + - Check inside Docker with the following command to ensure everything is correctly installed and built in the required directories. + + - Run: `docker run -it aichallenge-2024-eval:latest /bin/bash` + + - Verify the following directories: + + - `/aichallenge/workspace/*` + - `/autoware/install/*` diff --git a/docs/setup/build-docker.en.md b/docs/setup/build-docker.en.md index e69de29..aaf5ab1 100644 --- a/docs/setup/build-docker.en.md +++ b/docs/setup/build-docker.en.md @@ -0,0 +1,72 @@ +# Building and Running the Competition Repository + +In the competition repository, the actual runtime environment is provided entirely within Docker. The steps to use the repository are as follows: + +1. Build the Docker image for the competition environment +2. Build Autoware within the Docker container +3. Run Autoware and the simulator simultaneously within the Docker container + +## Building the Docker Image for the Competition Environment + +Open a terminal again using `Alt+Ctrl+T`. Follow the commands below by pasting them with `Ctrl+Shift+P` and pressing `Enter`. + +First, navigate to the competition repository. + +```bash +cd ~/aichallenge-2024 +``` + +Build the Docker image. + +```bash +./docker_build.sh dev +``` + +Check if the following image has been generated by running: + +```bash +docker images +``` + +You should see an image like this: + +```txt +aichallenge-2024-dev latest df2e83a20349 33 minutes ago 8.9GB +``` + +## Building Autoware within the Docker Container + +Start the Docker container by executing the following: + +```bash +cd ~/aichallenge-2024 +./docker_run.sh dev cpu +``` + +Although it may not look like anything has changed, the above command moves the environment inside the Docker container. To confirm that you are inside the Docker container, you can run the following command and check if nothing is displayed. + +```bash +ls ~ +``` + +Within the Docker container, build Autoware by executing: + +```bash +cd /aichallenge +./build_autoware.bash +``` + +## Running Autoware and the Simulator within the Docker Container + +After building Autoware, run the following command: + +```bash +./run_evaluation.bash +``` + +When the screen shown below appears, the startup is complete. To terminate, press CTRL + C in the terminal. +![autoware](./images/autoware.png) + +## [Next Step: Start Development](../development/workspace-usage.en.md) + +This concludes the environment setup! Next, let's proceed to actual development. diff --git a/docs/setup/docker.en.md b/docs/setup/docker.en.md index 9bf0c10..a6d888e 100644 --- a/docs/setup/docker.en.md +++ b/docs/setup/docker.en.md @@ -1 +1,87 @@ -# Install Virtual Environment +# Installing the Virtual Environment + +## Installing Dependencies + +First, install the necessary libraries. + +```bash +sudo apt update +sudo apt install -y python3-pip ca-certificates curl gnupg +``` + +## Installing Docker + +Install Docker using the commands from the [official documentation](https://docs.docker.com/engine/install/ubuntu/). + +```bash +sudo install -m 0755 -d /etc/apt/keyrings +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg +sudo chmod a+r /etc/apt/keyrings/docker.gpg +echo \ + "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ + "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + +sudo apt-get update +sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin +sudo usermod -aG docker $USER +newgrp docker +``` + +Verify that Docker is installed correctly with the following command: + +```bash +sudo docker run hello-world +``` + +If you see `Hello from Docker!`, Docker is installed correctly. + +## Installing Rocker + +Rocker is a tool that simplifies running GUI applications inside Docker containers. + +Although the [official README](https://github.com/osrf/rocker?tab=readme-ov-file#debians-recommended) recommends installing via apt, we will use pip for simplicity. + +```bash +pip install rocker +``` + +By default, the path to the rocker executable is not included in the PATH, so add it to `.bashrc` with the following commands: + +```bash +echo export PATH='$HOME/.local/bin:$PATH' >> ~/.bashrc +source ~/.bashrc +``` + +## Obtaining the Docker Image for the Autoware Environment + +Download the Docker image for the Autoware environment used in the AI Challenge. + +The Docker image is approximately 10GB in size, so it is recommended to use a wired LAN for downloading. + +```bash +docker pull ghcr.io/automotiveaichallenge/autoware-universe:humble-latest +``` + +Check if the download was successful with the following command: + +```bash +docker images +``` + +If the Docker image was downloaded correctly, you will see output similar to the following: + +```txt +REPOSITORY TAG IMAGE ID CREATED SIZE +ghcr.io/automotiveaichallenge/autoware-universe humble-latest 30c59f3fb415 13 days ago 8.84GB +``` + +## Next Step + +Two types of AWSIM are provided. + +For first-time users, proceed to the documentation for headless AWSIM. If you have a PC with a GPU and want a richer development environment, proceed to the documentation for AWSIM with visualization. + +[Download headless AWSIM](./headless-simulation.en.md) + +[Download AWSIM with visualization](./visible-simulation.en.md) diff --git a/docs/setup/headless-simulation.en.md b/docs/setup/headless-simulation.en.md index 745c13e..eccfc20 100644 --- a/docs/setup/headless-simulation.en.md +++ b/docs/setup/headless-simulation.en.md @@ -1 +1,11 @@ -# Download Headless AWSIM +# Downloading Headless AWSIM + +## Download AWSIM + +1. Download the latest `AWSIM.zip` from [Google Drive](https://drive.google.com/drive/folders/1ftIoamNGAet90sXeG48lKa89dkpVy45y) and extract it to `aichallenge-2024/aichallenge/simulator`. + +2. Verify that the executable file exists at `aichallenge-2024/aichallenge/simulator/AWSIM/AWSIM.x86_64`. + +With this, the environment setup is complete! + +## [Next Step: Building and Running the Competition Repository](./build-docker.en.md) diff --git a/docs/setup/requirements.en.md b/docs/setup/requirements.en.md index 1fa9034..6e1c208 100644 --- a/docs/setup/requirements.en.md +++ b/docs/setup/requirements.en.md @@ -1 +1,30 @@ -# Requirements +# Recommended Environment + +For the PC used in this competition, we recommend the following specifications. While it is possible to run with lower specifications, it may result in unstable execution speeds on the ROS 2 side, causing significant variations in behavior during simulations. + +!!! warning + + If you only have a Windows environment, please install Ubuntu 22.04. While it is possible to install Ubuntu on the same disk as your Windows environment, if you are not familiar with the process, you may accidentally damage your Windows environment. Therefore, we strongly recommend purchasing a new external or internal SSD and installing Ubuntu there. + +!!! info + + For guidance on installing Ubuntu, [this article](https://qiita.com/kiwsdiv/items/1fa6cf451225492b33d8) may be helpful. + +## Using Headless AWSIM + +- OS: Ubuntu 22.04 +- CPU: Intel Core i5 (4 cores) or higher (recommended) +- Memory: + - Minimum: 8 GB + - Recommended: 16 GB or more +- SSD: 60 GB or more + +## Using AWSIM with Visualization + +- OS: Ubuntu 22.04 +- CPU: Intel Core i7 (8 cores) or higher +- GPU: NVIDIA GeForce with 8 GB VRAM +- Memory: 16 GB or more +- Storage: SSD 60 GB or more + +## [Next Step: Clone the Workspace](./workspace-setup.en.md) diff --git a/docs/setup/visible-simulation.en.md b/docs/setup/visible-simulation.en.md index eb7a60d..688518f 100644 --- a/docs/setup/visible-simulation.en.md +++ b/docs/setup/visible-simulation.en.md @@ -1 +1,132 @@ -# Download Visible AWSIM (optional) +# Downloading AWSIM with Visualization (Reference) + +By default, we distribute a headless version of AWSIM, but we also provide instructions for setting up an environment with visualization for those who wish to use it. Note that setting up a GPU-based environment can often lead to issues, so if you cannot meet the [recommended environment](./requirements.en.md) specifications or if this is your first time participating, please consider this as a reference. + +## Installing NVIDIA Drivers + +```bash +# Add repository +sudo add-apt-repository ppa:graphics-drivers/ppa + +# Update package list +sudo apt update + +# Install drivers +sudo ubuntu-drivers autoinstall + +# Reboot +reboot + +# After reboot, check the installation +nvidia-smi +``` + +![nvidia-smi](./images/nvidia-smi.png) + +## Installing NVIDIA Container Toolkit + +Refer to the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) for installation. + +```bash +# Prepare for installation +distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ + && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ + && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \ + sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ + sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list + +# Install +sudo apt-get update +sudo apt-get install -y nvidia-container-toolkit +sudo nvidia-ctk runtime configure --runtime=docker +sudo systemctl restart docker + +# Test the installation +sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi + +# If the following output is displayed, the installation was successful: +# (The output below is quoted from the NVIDIA website) +# +# +-----------------------------------------------------------------------------+ +# | NVIDIA-SMI 450.51.06 Driver Version: 450.51.06 CUDA Version: 11.0 | +# |-------------------------------+----------------------+----------------------+ +# | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | +# | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | +# | | | MIG M. | +# |===============================+======================+======================| +# | 0 Tesla T4 On | 00000000:00:1E.0 Off | 0 | +# | N/A 34C P8 9W / 70W | 0MiB / 15109MiB | 0% Default | +# | | | N/A | +# +-------------------------------+----------------------+----------------------+ +# +-----------------------------------------------------------------------------+ +# | Processes: | +# | GPU GI CI PID Type Process name GPU Memory | +# | ID ID Usage | +# |=============================================================================| +# | No running processes found | +# +-----------------------------------------------------------------------------+ +``` + +## Installing Vulkan + +```bash +sudo apt update +sudo apt install -y libvulkan1 +``` + +## Downloading AWSIM + +Download the latest `AWSIM_GPU_**.zip` from [Google Drive](https://drive.google.com/drive/folders/1ftIoamNGAet90sXeG48lKa89dkpVy45y) and extract it to `aichallenge-2024/aichallenge/simulator`. + +Verify that the executable file exists at `aichallenge-2024/aichallenge/simulator/AWSIM_GPU_**/AWSIM.x86_64`. + +## Verifying AWSIM Startup + +If you are using AWSIM with visualization, start the container with the following commands: + +```bash +cd aichallenge-2024 +./docker_build.sh dev +./docker_run.sh dev gpu +``` + +Within the terminal where the container is running (inside the container), execute the following: + +```bash +cd /aichallenge +./build_autoware.bash +``` + +After building Autoware, modify `run_simulator.bash`. Specify the directory you just extracted for `AISIM_GPU_**`. + +```bash +#!/bin/bash + +# shellcheck disable=SC1091 +source /aichallenge/workspace/install/setup.bash +sudo ip link set multicast on lo +/aichallenge/simulator/AWSIM_GPU_**/AWSIM.x86_64 +``` + +Make the following changes to `run_evaluation.bash` as well. + +```bash +# AWSIM_DIRECTORY=/aichallenge/simulator/AWSIM +AWSIM_DIRECTORY=/aichallenge/simulator/AWSIM_GPU_** +``` + +Execute the following command: + +```bash +./run_evaluation.bash +``` + +If the following screen appears, it was successful. + +![AWSIM-Autoware](./images/awsim-and-autoware.png) + +This concludes the environment setup! + +## Next Step: Start Development + +Let's start development from [Getting Started](../getting-started.en.md)! diff --git a/docs/setup/workspace-setup.en.md b/docs/setup/workspace-setup.en.md index ec3c86c..6d223e9 100644 --- a/docs/setup/workspace-setup.en.md +++ b/docs/setup/workspace-setup.en.md @@ -1 +1,21 @@ -# Clone Workspace +# Cloning the Workspace + +## Installing Dependencies + +Open a terminal with `Alt+Ctrl+T`, then paste the following commands using `Ctrl+Shift+P` and press `Enter`. First, install the necessary libraries. + +```bash +sudo apt update +sudo apt install -y git +``` + +## Cloning the Competition Repository + +Clone the workspace repository. Here, we specify the home directory, but you can place it in any directory of your choice. + +```bash +cd ~ +git clone https://github.com/AutomotiveAIChallenge/aichallenge-2024.git +``` + +## [Next Step: Installing the Virtual Environment](./docker.en.md) diff --git a/docs/specifications/interface.en.md b/docs/specifications/interface.en.md index fa54d33..e39c0c2 100644 --- a/docs/specifications/interface.en.md +++ b/docs/specifications/interface.en.md @@ -1 +1,94 @@ # Interface + +## List + +| Interface | Name | Type | +| ------------ | ------------------------------------ | -------------------------------------------------------- | +| Service | `/control/control_mode_request` | `autoware_auto_vehicle_msgs/srv/ControlModeCommand` | +| Publisher | `/vehicle/status/control_mode` | `autoware_auto_vehicle_msgs/msg/ControlModeReport` | +| Subscription | `/control/command/control_cmd` | `autoware_auto_control_msgs/msg/AckermannControlCommand` | +| Publisher | `/vehicle/status/velocity_status` | `autoware_auto_vehicle_msgs/msg/VelocityReport` | +| Publisher | `/vehicle/status/steering_status` | `autoware_auto_vehicle_msgs/msg/SteeringReport` | +| Subscription | `/control/command/gear_cmd` | `autoware_auto_vehicle_msgs/msg/GearCommand` | +| Publisher | `/vehicle/status/gear_status` | `autoware_auto_vehicle_msgs/msg/GearReport` | +| Publisher | `/sensing/gnss/pose_with_covariance` | `geometry_msgs/msg/PoseWithCovarianceStamped` | +| Publisher | `/sensing/imu/imu_raw` | `sensor_msgs/msg/Imu` | +| Publisher | `/aichallenge/objects` | `sstd_msgs/msg/Float64MultiArray` | + + + +### `/control/command/control_cmd` + +| Name | Description | +| ----------------------------------- | --------------------- | +| stamp | Message timestamp | +| lateral.stamp | Unused | +| lateral.steering_tire_angle | Target steering angle | +| lateral.steering_tire_rotation_rate | Unused | +| longitudinal.stamp | Unused | +| longitudinal.speed | Unused | +| longitudinal.acceleration | Target acceleration | +| longitudinal.jerk | Unused | + +### `/vehicle/status/velocity_status` + +| Name | Description | +| --------------------- | ------------------------ | +| header.stamp | Data acquisition time | +| header.frame_id | Frame ID (`base_link`) | +| longitudinal_velocity | Longitudinal velocity | +| lateral_velocity | Lateral velocity | +| heading_rate | Angular velocity | + +### `/vehicle/status/steering_status` + +| Name | Description | +| ------------------- | --------------------- | +| stamp | Data acquisition time | +| steering_tire_angle | Steering angle | + +### `/control/command/gear_cmd` + +| Name | Description | +| ------- | -------------------- | +| stamp | Message timestamp | +| command | Gear type | + +### `/vehicle/status/gear_status` + +| Name | Description | +| ------ | --------------------- | +| stamp | Data acquisition time | +| report | Gear type | + +### `/sensing/gnss/pose_with_covariance` + +| Name | Description | +| --------------------- | ----------------------------------- | +| header.stamp | Data acquisition time | +| header.frame_id | Frame ID (`map`) | +| pose.pose.position | Vehicle position (origin of `base_link`) | +| pose.pose.orientation | Unused | +| pose.covariance | Position accuracy | + +### `/sensing/imu/imu_raw` + +| Name | Description | +| ------------------- | ----------------------- | +| header.stamp | Data acquisition time | +| header.frame_id | Frame ID (`imu_link`) | +| orientation | Orientation | +| angular_velocity | Angular velocity | +| linear_acceleration | Linear acceleration | + +### `/aichallenge/objects` + +| Name | Description | +| --------------- | ------------------------- | +| data[N * 4 + 0] | X coordinate of Nth object | +| data[N * 4 + 1] | Y coordinate of Nth object | +| data[N * 4 + 2] | Z coordinate of Nth object | +| data[N * 4 + 3] | Radius of Nth object |