Skip to content

evshary/autoware_carla_launch

Repository files navigation

autoware_carla_launch

Note: The main branch is not stable. Suggest using the branch humble instead.

The package includes launch file to run Autoware, Carla agent, and bridge (zenoh-bridge-ros2dds + zenoh_carla_bridge).

Documentation: https://autoware-carla-launch.readthedocs.io/en/latest/

Demo

IMAGE ALT TEXT

Architecture

image

Prerequisites

Make sure you meet the following system requirements

  • Ubuntu 22.04
  • Carla 0.9.14

Install rocker for containers

sudo apt install docker.io python3-rocker

Build

Build the container for Carla bridge

  • Enter into docker
./container/run-bridge-docker.sh
  • Build Carla bridge
cd autoware_carla_launch
source env.sh
make prepare_bridge
make build_bridge

Build the container for Zenoh+Autoware

  • Enter into docker
./container/run-autoware-docker.sh
  • Build Zenoh+Autoware
cd autoware_carla_launch
source env.sh
make prepare_autoware
make build_autoware
  • (Optional) If you want to build Autoware from source
# Remove old autoware (Optional)
rm -rf autoware
# Download source code and run docker
./container/run-autoware-docker-src.sh
# Inside container
cd autoware_carla_launch
# Build Autoware
./script/build-autoware.sh
source autoware/install/setup.bash
# The remaining steps are the same
source env.sh
make prepare_autoware
make build_autoware

Clean

  • Clean the Carla bridge container
# Enter into docker
./container/run-bridge-docker.sh
# Clean
cd autoware_carla_launch
source env.sh
make clean_bridge
  • Clean Zenoh+Autoware container
# Enter into docker
./container/run-autoware-docker.sh
# Clean
cd autoware_carla_launch
source env.sh
make clean_autoware

Usage

Carla with Autoware

The section shows how to run Autoware in Carla simulator.

  1. Run Carla simulator (In native host)
./CarlaUE4.sh -quality-level=Epic -world-port=2000 -RenderOffScreen
  1. Run zenoh_carla_bridge and Python Agent (In Carla bridge container)
# Go inside "Carla bridge container"
./container/run-bridge-docker.sh
# Run zenoh_carla_bridge and Python Agent
cd autoware_carla_launch
source env.sh
./script/run-bridge.sh
  1. Run zenoh-bridge-ros2dds and Autoware (In Autoware container)
# Go inside "Autoware container"
./container/run-autoware-docker.sh
# Run zenoh-bridge-ros2dds and Autoware
cd autoware_carla_launch
source env.sh
./script/run-autoware.sh

# (Optional) If you want to drive manually, split the terminal and run the following command
source env.sh
ros2 run autoware_manual_control keyboard_control

Run multiple vehicles with Autoware in Carla at the same time

  1. Run Carla simulator (In native host)
./CarlaUE4.sh -quality-level=Epic -world-port=2000 -RenderOffScreen
  1. Run zenoh_carla_bridge and Python Agent (In Carla bridge container)
# Go inside "Carla bridge container"
./container/run-bridge-docker.sh
# Run zenoh_carla_bridge and Python Agent
cd autoware_carla_launch
source env.sh
./script/run-bridge-two-vehicles.sh
  1. Run zenoh-bridge-ros2dds and Autoware for 1st vehicle (In Autoware container)
# Go inside "Autoware container"
./container/run-autoware-docker.sh
# Run zenoh-bridge-ros2dds and Autoware
cd autoware_carla_launch
source env.sh
./script/run-autoware.sh v1
# Optional: If you want to assign Carla IP and FMS IP
./script/run-autoware.sh v1 127.0.0.1:7447 127.0.0.1:7887
  1. Run zenoh-bridge-ros2dds and Autoware for 2nd vehicle (In Autoware container)
# Go inside "Autoware container"
./container/run-autoware-docker.sh
# Run zenoh-bridge-ros2dds and Autoware
cd autoware_carla_launch
source env.sh
./script/run-autoware.sh v2
# Optional: If you want to assign Carla IP and FMS IP
./script/run-autoware.sh v2 127.0.0.1:7447 127.0.0.1:7887
  1. Now there are two rviz with separated Autoware at the same time. You can control them separately!

FAQ

Known Issues

  • Generate the map: Now we're using the maps generated by Hatem.

For developers

  • Check the modification of ReadTheDocs locally
pip install sphinx
sphinx-build -a docs /tmp/mydocs
xdg-open /tmp/mydocs/index.html