Autoware Development Environment Setup

This article introduces how to set up the Autoware development environment.

Introduction

Autoware is the world’s leading open-source project for autonomous driving.

This article was written on July 19, 2025, based on Autoware version 0.45.1.

Environment

My system environment.

  • Intel(R) Core(TM) i9-14900K
  • NVIDIA GeForce RTX 2080 Ti
  • Ubuntu 22.04.5 LTS

Please install Docker Engine and NVIDIA Container Toolkit yourself. You can refer to the official Docker documentation and others.

Download Source Code

Clone the Autoware repository and switch to the specified version.

1
2
3
git clone https://github.com/autowarefoundation/autoware.git
cd autoware
git checkout 0.45.1

Install required dependencies.

1
./setup-dev-env.sh -y docker

To use -y, you can run sudo ls or a similar command to enter your password once. Alternatively, you can remove the -y option and manually confirm and enter your password when prompted. Otherwise, the script may fail due to needing sudo privileges.

After completion, you should see the following output.

1
2
3
4
PLAY RECAP **************************************************************************************************
localhost : ok=36 changed=3 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0

Completed.

Development Environment

Start the devel container.

1
./docker/run.sh --devel

To exit the development container, it is recommended to use the CTRL-p CTRL-q key combination to avoid losing changes. You can reconnect to the container using docker attach CONTAINER or docker exec -it CONTAINER bash. For more information, refer to docker container attach.

Enter the workspace directory.

1
cd /workspace

Create the src directory and clone repositories.

1
2
mkdir -p src
vcs import src < autoware.repos

Update dependent ROS packages.

1
2
3
sudo apt update && sudo apt upgrade
rosdep update
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

If you encounter GPG Key errors during apt update, you can try the following commands.

1
2
3
4
5
W: GPG error: http://packages.ros.org/ros2/ubuntu jammy InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics <info@osrfoundation.org>
E: The repository 'http://packages.ros.org/ros2/ubuntu jammy InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: http://ppa.launchpad.net/kisak/kisak-mesa/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
1
2
3
4
sudo rm -f /etc/apt/sources.list.d/ros2-latest.list
sudo rm -f /etc/apt/sources.list.d/ros2.list
sudo curl -fsSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | gpg --dearmor | sudo tee /usr/share/keyrings/ros-archive-keyring.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

Build the workspace.

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

The first build may not succeed for all packages. Continue rebuilding, the number of failed packages will decrease until success.

1
2
3
4
5
6
7
root@SORA-WS3:/workspace# colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
...
Summary: 403 packages finished [14min 18s]
32 packages had stderr output: autoware_bag_time_manager_rviz_plugin autoware_bevfusion autoware_bytetrack autoware_costmap_generator autoware_crop_box_filter autoware_elevation_map_loader autoware_external_velocity_limit_selector autoware_freespace_planning_algorithms autoware_lanelet2_extension_python autoware_overlay_rviz_plugin autoware_path_generator autoware_radar_scan_to_pointcloud2 autoware_remaining_distance_time_calculator autoware_shape_estimation autoware_smart_mpc_trajectory_follower autoware_surround_obstacle_checker autoware_system_monitor autoware_tensorrt_classifier autoware_tensorrt_plugins autoware_traffic_light_selector eagleye_can_velocity_converter eagleye_coordinate eagleye_geo_pose_fusion eagleye_rt nebula_ros negotiated pointcloud_to_laserscan trt_batched_nms yabloc_common yabloc_image_processing yabloc_particle_filter yabloc_pose_initializer
root@SORA-WS3:/workspace# colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
...
Summary: 403 packages finished [11.9s]

Scenario Simulation

Installation

In the /workspace directory of the development environment, run the following commands.

Import simulator dependencies.

1
vcs import src < simulator.repos

Install ROS dependencies.

1
2
source /opt/ros/humble/setup.bash
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

Build the workspace.

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

Scenario Test Simulation

In the /workspace directory of the development environment, run the following commands.

1
source install/setup.bash
1
2
3
4
5
6
ros2 launch scenario_test_runner scenario_test_runner.launch.py \
architecture_type:=awf/universe/20250130 \
record:=false \
scenario:='$(find-pkg-share scenario_test_runner)/scenario/sample.yaml' \
sensor_model:=sample_sensor_kit \
vehicle_model:=sample_vehicle

Running scenario test simulation

Runtime Environment

Download Map and Data

Run the following commands on the host to download the map. Please install gdown and unzip yourself.

1
2
3
4
gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1A-8BvYRX3DhSzkAnOcGWFw5T30xTlwZI'
unzip -d ~/autoware_map/ ~/autoware_map/sample-map-rosbag.zip
gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1499_nsbUbIeturZaDj7jhUownh5fvXHd'
unzip -d ~/autoware_map ~/autoware_map/sample-map-planning.zip

Install ansible (only needed for the first installation).

1
2
3
4
5
6
7
8
9
10
11
12
# Remove apt installed ansible (In Ubuntu 22.04, ansible the version is old)
sudo apt-get purge ansible

# Install pipx
sudo apt-get -y update
sudo apt-get -y install pipx

# Add pipx to the system PATH
python3 -m pipx ensurepath

# Install ansible
pipx install --include-deps --force "ansible==6.*"

Install ansible collections (only needed for the first installation).

1
2
cd ~/autoware # The root directory of the cloned repository
ansible-galaxy collection install -f -r "ansible-galaxy-requirements.yaml"

Run the playbook to download and extract data.

1
ansible-playbook autoware.dev_env.download_artifacts -e "data_dir=$HOME/autoware_data" --ask-become-pass

Start Runtime Container

1
./docker/run.sh --map-path ~/autoware_map/sample-map-planning --data-path ~/autoware_data ros2 launch autoware_launch planning_simulator.launch.xml map_path:=/autoware_map vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

Interface after startup

Manual Path Planning and Testing

After starting the runtime container, select the 2D Pose Estimation tool and click and drag to set the start point.

Set start point

Select the 2D Goal Pose tool and click and drag to set the goal point.

Set goal point

Click Auto, and the vehicle will automatically drive to the goal.

Vehicle driving

References

  1. The Autoware Foundation. Open AD Kit: containerized workloads for Autoware. 2025. Archived on 2025-07-19. Retrieved 2025-07-19.
  2. The Autoware Foundation. Installation. 2025. Archived on 2025-07-19. Retrieved 2025-07-19.
  3. The Autoware Foundation. Scenario test simulation. 2025. Archived on 2025-07-19. Retrieved 2025-07-19.
  4. The Autoware Foundation. Planning simulation. 2025. Archived on 2025-07-19. Retrieved 2025-07-19.
  5. The Autoware Foundation. Autoware artifacts. 2025. Archived on 2025-07-19. Retrieved 2025-07-19.
  6. The Autoware Foundation. Ansible Collection - autoware.dev_env. 2025. Archived on 2025-07-19. Retrieved 2025-07-19.

Autoware Development Environment Setup
https://blog.zhanganzhi.com/en/2025/07/ef9e4425c7c1/
Author
Andy Zhang
Posted on
July 19, 2025
Licensed under