Skip to content

Source installation#

Prerequisites#

  • ROS

    • ROS 2 Humble (on Ubuntu 22.04)
    • ROS 2 Jazzy (on Ubuntu 24.04)

    For ROS 2 system dependencies, refer to REP-2000.

sudo apt-get -y update
sudo apt-get -y install git

How to set up a development environment#

  1. Clone autowarefoundation/autoware and move to the directory.

    git clone https://github.com/autowarefoundation/autoware.git
    cd autoware
    

    By default, this checks out the main branch, which contains the latest in-development changes. If you want to use a stable release, check out the corresponding release tag. For example, to use the 2.0.0 release (compatible with both ROS 2 Humble and Jazzy):

    git checkout 2.0.0
    

    The list of available tags can be found on the autoware releases page.

  2. If you are installing Autoware for the first time, you can automatically install the dependencies by using the provided Ansible playbook.

    bash ansible/scripts/install-ansible.sh
    source ~/.bashrc
    ansible-galaxy collection install -f -r ansible-galaxy-requirements.yaml
    ansible-playbook autoware.dev_env.install_dev_env --ask-become-pass
    

    To install without NVIDIA GPU support:

    ansible-playbook autoware.dev_env.install_dev_env --skip-tags nvidia --ask-become-pass
    

    The playbook reads your Ubuntu version and selects the versions of ROS 2 and the NVIDIA libraries:

    UbuntuROS 2CUDATensorRT
    22.04Humble12.810.8 on amd64, 10.3 on arm64 (Jetson Orin)
    24.04Jazzy13.010.13

    The playbook stops on other Ubuntu versions.

    If you encounter any build issues, please consult the Troubleshooting section for assistance.

Info

Before installing NVIDIA libraries, please ensure that you have reviewed and agreed to the licenses.

Note

The following items will be automatically installed. If the ansible script doesn't work or if you already have different versions of dependent libraries installed, please install the following items manually.

How to set up a workspace#

  1. Create the src directory and clone repositories into it.

    Autoware uses vcs2l to construct workspaces.

    cd autoware
    mkdir -p src
    vcs import src < repositories/autoware.repos
    

    If you are an active developer, you may also want to pull the nightly repositories, which contain the latest updates:

    vcs import src < repositories/autoware-nightly.repos
    

    ⚠️ Note: The nightly repositories are unstable and may contain bugs. Use them with caution.

    Optionally, you may also download the extra repositories that contain drivers for specific hardware, but they are not necessary for building and running Autoware:

    vcs import src < repositories/extra-packages.repos
    

    ⚠️ You might need to install the dependencies of the extra packages manually.

    ➡️ Check the readme of the extra packages for more information.

    The tools.repos file adds autoware_tools, and the simulator.repos file adds scenario_simulator_v2. Import them only if you need them. For a description of each file, see repositories/*.repos files.

  2. Add community packages to your workspace. (optional) NEW

    The Autoware Index is a registry of community packages that extend Autoware, each built and tested against the latest Autoware release. Pick packages on its browse site or with aw-index-cli to generate repositories/autoware-index.repos, then import it the same way:

    vcs import src < repositories/autoware-index.repos
    

    ➡️ See the Autoware Index page for the full guide.

  3. Install dependent ROS packages.

    Autoware requires some ROS 2 packages in addition to the core components. The tool rosdep allows an automatic search and installation of such dependencies. You might need to run rosdep update before rosdep install.

    On Ubuntu 22.04, replace jazzy with humble.

    source /opt/ros/jazzy/setup.bash
    # Make sure all previously installed ros-$ROS_DISTRO-* packages are upgraded to their latest version
    sudo apt update && sudo apt upgrade
    rosdep update
    rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
    
  4. Install and set up ccache to speed up consecutive builds. (optional but highly recommended)

  5. Build the workspace.

    Autoware uses colcon to build workspaces. For more advanced options, refer to the documentation.

    colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
    

    If there is any build issue, refer to Troubleshooting.

  6. Follow the steps in Network Configuration before running Autoware.

  7. Apply the settings recommended in Console settings for ROS 2 for a better development experience. (optional)

How to update a workspace#

Upgrade from 1.9.0 or older to 2.0.0

Autoware 2.0.0 downloads the AI models from Hugging Face. The models use one folder per variant, for example lidar_centerpoint/tiny/. The 2.0.0 launch files read only this layout.

After you update the workspace, download the models again:

ansible-galaxy collection install -f -r ansible-galaxy-requirements.yaml
ansible-playbook autoware.dev_env.install_dev_env --tags artifacts --ask-become-pass

autoware_livox_tag_filter moved from autoware_universe to the Autoware Index. If you use it, add it to your workspace with aw-index-cli.

  1. Update the .repos file.

    cd autoware
    git pull <remote> <your branch>
    

    <remote> is usually git@github.com:autowarefoundation/autoware.git

  2. Update the repositories.

    vcs import src < repositories/autoware.repos
    

    ⚠️ If you are using nightly repositories, you can also update them.

    vcs import src < repositories/autoware-nightly.repos
    
    vcs pull src
    

    For Git users: - vcs import is similar to git checkout. - Note that it doesn't pull from the remote. - vcs pull is similar to git pull. - Note that it doesn't switch branches.

    For more information, refer to the official documentation.

    It might be the case that dependencies imported via vcs import have been moved/removed. Vcs2l does not currently handle those cases, so if builds fail after vcs import, cleaning and re-importing all dependencies may be necessary:

    rm -rf src/*
    vcs import src < repositories/autoware.repos
    

    ⚠️ If you are using nightly repositories, import them as well.

    vcs import src < repositories/autoware-nightly.repos
    
  3. Install dependent ROS packages.

    On Ubuntu 22.04, replace jazzy with humble.

    source /opt/ros/jazzy/setup.bash
    # Make sure all previously installed ros-$ROS_DISTRO-* packages are upgraded to their latest version
    sudo apt update && sudo apt upgrade
    rosdep update
    rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
    
  4. Build the workspace.

    colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release