## 1. Project Overview & Quickstart (autowarefoundation/autoware) ## File: README.md # Autoware - the world's leading open-source software project for autonomous driving Autoware is the world's leading open-source autonomous driving framework. Autoware provides a comprehensive, production-ready software stack designed to accelerate the commercial deployment of autonomous vehicles across diverse platforms and use cases. ## 🚀 Get Started > **New to Autoware?** > > 1. **[Install Autoware](https://autowarefoundation.github.io/autoware-documentation/main/installation)** → Set up your environment and build the stack from source. > 2. **[Run the Quick Start demo](https://autowarefoundation.github.io/autoware-documentation/main/demos/)** → Drive a simulated vehicle in just a few minutes. ## Documentation To learn more about using or developing Autoware, refer to the [Autoware documentation site](https://autowarefoundation.github.io/autoware-documentation/main/). You can find the source for the documentation in [autowarefoundation/autoware-documentation](https://github.com/autowarefoundation/autoware-documentation). ## Contributing - Make sure to follow the [Contribution Guidelines](https://autowarefoundation.github.io/autoware-documentation/main/contributing/). - Take a look at Autoware's [various working groups](https://github.com/autowarefoundation/autoware-projects/wiki#working-group-list) to gain an understanding of any work in progress and to see how projects are managed. - If you have any technical questions, you can start a discussion in the [Q&A category](https://github.com/autowarefoundation/autoware/discussions/categories/q-a) to request help and confirm if a potential issue is a bug or not. ## Useful resources - [Autoware Foundation homepage](https://www.autoware.org/) - [Support guidelines](https://autowarefoundation.github.io/autoware-documentation/main/community/support/) - [CI metrics](https://autowarefoundation.github.io/autoware-ci-metrics/) --- ## File: ansible/roles/tensorrt/README.md # tensorrt This role installs TensorRT following [the official NVIDIA TensorRT Installation Guide](https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing). ## Inputs | Name | Required | Description | | ---------------- | -------- | ------------------------ | | tensorrt_version | true | The version of TensorRT. | ## Version selection | Ubuntu | Architecture | TensorRT version | | -------------- | ------------------------------------------------------- | -------------------- | | 22.04 (humble) | x86_64 | 10.8.0.43-1+cuda12.8 | | 22.04 (humble) | aarch64 (SBSA) | 10.3.0.26-1+cuda12.5 | | 24.04 (jazzy) | x86_64 / aarch64 (SBSA, incl. Jetson Thor + DRIVE Thor) | 10.13.3.9-1+cuda13.0 | Override `tensorrt_version` explicitly via `-e tensorrt_version=…` to pin a different release. ## Manual Installation ### Set up the environment variables ```bash # From the Autoware repository root: # defaults/main.yaml contains an architecture-dependent Jinja2 expression; # extract the matching version for this machine. if [ "$(uname -m)" = "aarch64" ]; then tensorrt_version=$(grep -oP "'\K[^']+(?=' if)" ansible/roles/tensorrt/defaults/main.yaml) else tensorrt_version=$(grep -oP "else '\K[^']+" ansible/roles/tensorrt/defaults/main.yaml) fi ``` ### Install TensorRT ```bash sudo apt-get install -y \ libnvinfer10=${tensorrt_version} \ libnvinfer-plugin10=${tensorrt_version} \ libnvonnxparsers10=${tensorrt_version} \ libnvinfer-dev=${tensorrt_version} \ libnvinfer-plugin-dev=${tensorrt_version} \ libnvinfer-headers-dev=${tensorrt_version} \ libnvinfer-headers-plugin-dev=${tensorrt_version} \ libnvonnxparsers-dev=${tensorrt_version} sudo apt-mark hold \ libnvinfer10 \ libnvinfer-plugin10 \ libnvonnxparsers10 \ libnvinfer-dev \ libnvinfer-plugin-dev \ libnvonnxparsers-dev \ libnvinfer-headers-dev \ libnvinfer-headers-plugin-dev ``` --- ## File: ansible/roles/spconv/README.md # spconv This role install the `cumm` and `spconv` libraries needed to perform sparse convolutions. The [original implementation](https://github.com/traveller59/spconv) did not provide a shared library, which is pre-generated c++ code and pre-compiled libraries were prepared [separately](https://github.com/autowarefoundation/spconv_cpp). ## Architecture Support This role supports different architectures with platform-specific package variants: - **amd64**: No suffix (e.g., `cumm_0.5.3_amd64.deb`) - **arm64**: - Default: `-sbsa` suffix for server platforms (e.g., `cumm_0.5.3_arm64-sbsa.deb`) - Jetson: `-jetson` suffix when `spconv_is_jetson=true` (e.g., `cumm_0.5.3_arm64-jetson.deb`) ## Manual Installation For manual installation, please follow the instructions in [this](https://github.com/autowarefoundation/spconv_cpp) repository. ## Run the playbook The following command will install a particular version of the packages using ansible. ### Standard installation (amd64 or arm64 server) ```bash export SPCONV_CUMM_VERSION=0.5.3 export SPCONV_VERSION=2.3.8 ansible-playbook autoware.dev_env.install_dev_env --tags spconv -e spconv_cumm_version=${SPCONV_CUMM_VERSION} -e spconv_version=${SPCONV_VERSION} --ask-become-pass ``` ### Installation for NVIDIA Jetson platforms ```bash export SPCONV_CUMM_VERSION=0.5.3 export SPCONV_VERSION=2.3.8 ansible-playbook autoware.dev_env.install_dev_env --tags spconv -e spconv_cumm_version=${SPCONV_CUMM_VERSION} -e spconv_version=${SPCONV_VERSION} -e spconv_is_jetson=true --ask-become-pass ``` --- ## File: ansible/roles/ros2_dev_tools/README.md # ros2_dev_tools This role installs ROS 2 development tools following [this page](https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html). ## Inputs None. ## Manual Installation ```bash # Taken from https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html sudo apt update && sudo apt install -y \ python3-colcon-mixin \ python3-flake8-docstrings \ python3-pip \ python3-pytest-cov \ python3-flake8-blind-except \ python3-flake8-builtins \ python3-flake8-class-newline \ python3-flake8-comprehensions \ python3-flake8-deprecated \ python3-flake8-import-order \ python3-flake8-quotes \ python3-pytest-repeat \ python3-pytest-rerunfailures \ build-essential \ cmake \ git \ python3-setuptools \ python3-bloom \ python3-colcon-common-extensions \ python3-colcon-mixin \ python3-rosdep \ python3-vcs2l \ wget # Initialize rosdep sudo rosdep init rosdep update ``` --- ## File: ansible/roles/ros2/README.md # ros2 This role installs [ROS 2](http://www.ros2.org/) following [this page](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html). Additional steps may be needed depending on the `rosdistro` you choose. To prevent the update of the ROS 2 packages, if ros-`distro`-desktop is held, the installation process for the packages will be skipped and output warning. ```bash $ sudo apt install software-properties-common $ sudo add-apt-repository universe $ apt-cache policy | grep universe 500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=universe,b=amd64 ``` ## Inputs | Name | Required | Description | | ---------------------- | -------- | ------------------------------------------------ | | rosdistro | true | The ROS distro. | | ros2_installation_type | false | The installation type (`desktop` or `ros-base`). | ## Manual Installation The `ros2_installation_type` variable can also be found in: [./defaults/main.yaml](./defaults/main.yaml) For Universe, the `rosdistro` variable can also be found in: [../../playbooks/install_dev_env.yaml](../../playbooks/install_dev_env.yaml) ```bash # Choose your ROS distribution rosdistro=humble # or jazzy # Taken from: https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html # You will need to add the ROS 2 apt repository to your system. First, make sure that the Ubuntu Universe repository is enabled by checking the output of this command. apt-cache policy | grep universe # The output of the above command should contain following: # 500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages # release v=20.04,o=Ubuntu,a=focal,n=focal,l=Ubuntu,c=universe,b=amd64 # If you don’t see an output line like the one above, then enable the Universe repository with these instructions. sudo apt install software-properties-common sudo add-apt-repository universe # Now add the ROS 2 apt repository to your system. First authorize our GPG key with apt. sudo apt update && sudo apt install curl gnupg lsb-release sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg # Then add the repository to your sources list. echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null # Update your apt repository caches after setting up the repositories. sudo apt update # Desktop Install ros2_installation_type=desktop sudo apt install ros-${rosdistro}-${ros2_installation_type} # Environment setup # (Optional) You can source ros2 in the ~/.bashrc file. echo '' >> ~/.bashrc && echo "source /opt/ros/${rosdistro}/setup.bash" >> ~/.bashrc ``` --- ## File: ansible/roles/rmw_implementation/README.md # rmw_implementation This role sets up ROS 2 RMW implementation following [this page](https://docs.ros.org/en/humble/How-To-Guides/Working-with-multiple-RMW-implementations.html). ## Inputs | Name | Required | Description | | ------------------ | -------- | ------------------- | | rosdistro | true | The ROS distro. | | rmw_implementation | true | RMW implementation. | ## Manual Installation ## Set up the environment variables ```bash # Choose your ROS distribution rosdistro=humble # or jazzy # RMW implementation (see ./defaults/main.yaml for the current default) rmw_implementation=rmw_cyclonedds_cpp ``` ## Install the RMW implementation For details: ```bash sudo apt update sudo apt install ros-${rosdistro}-${rmw_implementation//_/-} # (Optional) You set the default RMW implementation in the ~/.bashrc file. echo '' >> ~/.bashrc && echo "export RMW_IMPLEMENTATION=${rmw_implementation}" >> ~/.bashrc ``` --- ## File: ansible/roles/qt5ct_setup/README.md # qt5ct_setup Ansible role ## Overview The `qt5ct_setup` Ansible role automates the configuration of the `qt5ct` environment for Autoware. It won't affect the system-wide configuration. ## Installation Follow the instructions below to **install** or **update** the custom theme for `RViz2` in Autoware. > **Important:** Both commands must be run when you want to update the theme. ```bash cd ~/autoware # The root directory of the cloned repository ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml" ansible-playbook autoware.dev_env.install_dev_env --tags qt5ct_setup --ask-become-pass ``` ## How to use the custom theme in RViz2 To apply a custom theme to RViz2, you can use the `qt5ct` platform theme. Follow these steps to ensure that the `QT_QPA_PLATFORMTHEME` environment variable is set correctly for your RViz2 instance when used with Autoware. ### Manual setup for running RViz2 Before running RViz2 manually, set the `QT_QPA_PLATFORMTHEME` environment variable to `qt5ct`. This ensures that the custom theme settings are applied. ```bash export QT_QPA_PLATFORMTHEME=qt5ct ``` Then, start RViz2 as usual. ```bash rviz2 ``` ### Automatic setup in Autoware In Autoware, the `QT_QPA_PLATFORMTHEME` environment variable is automatically set within the main [autoware.launch.xml](https://github.com/autowarefoundation/autoware_launch/blob/main/autoware_launch/launch/autoware.launch.xml) file. Therefore, you do not need to manually set this environment variable when launching Autoware. In the `autoware.launch.xml` file, RViz2 is configured with the following `` element: ```xml ``` This configuration automatically sets the `QT_QPA_PLATFORMTHEME` to `qt5ct` when RViz2 is launched as part of Autoware. It also includes additional options such as respawn behavior and custom RViz2 configurations. --- ## File: ansible/roles/nvidia_container_toolkit/README.md # nvidia_container_toolkit This role installs [NVIDIA Container Toolkit](https://github.com/NVIDIA/nvidia-container-toolkit) following the [installation guide](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html). ## Inputs None. ## Manual Installation (Recommended) > ℹ️ The steps below may differ from the role implementation. > They reflect the **most up-to-date and preferred procedure** for manual installation. > The role will be updated to align with these steps. ``` /* Detailed source-code truncated for AI context efficiency. */ ``` ## 2. Official Technical Reference & Guides (autowarefoundation/autoware-documentation) # Autoware Documentation --- ## About This repository contains the source files for Autoware's documentation, built and deployed with [MkDocs](https://www.mkdocs.org/). Autoware spans [multiple repositories](https://github.com/autowarefoundation/), and this site serves as a unified entry point to access information across all of them. For more about the Autoware project and its ecosystem, see the [Autoware Foundation organization profile](https://github.com/autowarefoundation/.github/blob/main/profile/README.md). ## Getting started locally ```bash # Clone the repository git clone https://github.com/autowarefoundation/autoware-documentation.git cd autoware-documentation # Create and activate a virtual environment python3 -m venv .venv source .venv/bin/activate # Install dependencies pip install -r mkdocs-requirements.txt # Serve locally mkdocs serve ``` Then open [http://localhost:8000](http://localhost:8000) in your browser. ## Contributing Contributions are welcome! Please review the [documentation guidelines](https://autowarefoundation.github.io/autoware-documentation/main/contributing/documentation-guidelines/) before submitting a pull request. ## License This project is licensed under the [Apache License 2.0](LICENSE).