feat: add docker-compose demo for CARLA - #7264
Conversation
Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>
|
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
Signed-off-by: Ryohsuke Mitsudome <ryoshuke.mitsudome@tier4.jp>
Signed-off-by: Ryohsuke Mitsudome <ryoshuke.mitsudome@tier4.jp>
Signed-off-by: Ryohsuke Mitsudome <ryoshuke.mitsudome@tier4.jp>
Signed-off-by: Ryohsuke Mitsudome <ryoshuke.mitsudome@tier4.jp>
youtalk
left a comment
There was a problem hiding this comment.
I understand that the autoware repository was split off to keep the container simple, specifically into the openadkit repository. Would a pull request directly to the openadkit repository not work for this?
|
This makes use of our existing images and extends the functionality instead of creating a different way of constructing the images like openadkit. I think this compose file + demo is in the right place with this PR 👍 I will review soon. |
There was a problem hiding this comment.
I ran this demo end to end on an RTX 3090 host. Used universe-cuda-jazzy-1.9.0 plus model data from the artifacts playbook at tag 1.9.0. The vehicle drove Town01 autonomously and arrived at the goal. On the tag-matched run every node loaded, lidar_centerpoint included. Nice work.
I have some suggestions:
Co-authored-by: Mete Fatih Cırıt <mfc@autoware.org>
Co-authored-by: Mete Fatih Cırıt <mfc@autoware.org>
Co-authored-by: Mete Fatih Cırıt <mfc@autoware.org>
Description
#7079
Adds a Docker Compose demo that brings up CARLA and Autoware.
The stack is split into four services:
carla-simulator—carlasim/carla:0.9.16runningCarlaUE4.sh -prefernvidia -quality-level=Low -nosound. Healthy once port2000accepts a TCP connection.carla-interface—autoware:universe-cuda-jazzyrunningautoware_carla_interface.launch.xmlstandalone. Healthy once an actor withrole_name == ego_vehicleexists in the current CARLA episode.spectator-follow—autoware:universe-cuda-jazzyrunningros2 run autoware_carla_interface spectator_follow, so the CARLA spectator camera chases the ego instead of staying where the simulator window started.autoware—autoware:universe-cuda-jazzyrunninge2e_simulator.launch.xmlwithsimulator_type:=carlaandlaunch_simulator_interface:=false, since the interface has its own container.Notable points:
depends_on: condition: service_healthy, so a colddocker compose upstarts CARLA, waits for the server, starts the bridge, waits for the ego to spawn, and only then launches Autoware — no races against the CARLA client connect timeout.carla-interface,spectator-follow) fetch the matchingmanylinuxwheel for the container's Python version into the user site-packages on first run. That bootstrap lives in thex-carla-python-apiYAML anchor at the top of the compose file, which is also where the CARLA version (0.9.16) is pinned.~/autoware_data(create_host_path: false, so a missing directory fails loudly instead of being silently created empty).HOST_UID/HOST_GIDdefault to1000.How was this PR tested?
docker compose upon a host with an NVIDIA GPU and the NVIDIA Container Toolkit, withTown01extracted to~/autoware_data/maps/Town01: the CARLA window comes up, the bridge connects and spawns the ego, RViz shows sensor data, and Init by GNSS → set goal → engage drives the vehicle.