-
Notifications
You must be signed in to change notification settings - Fork 0
Running CARLA with Autoware
There are currently two versions of CARLA actively maintained by the community:
- CARLA 0.9.16, based on Unreal Engine 4; and
- CARLA 0.10.0, based on Unreal Engine 5.
The advantages of 0.10.x include support for modern Unreal Engine features and greater out-of-the box visual fidelity thanks to the use of systems such as Nanite and Lumen. On the other hand, 0.10.x comes with greater resource usage and remains behind 0.9.x in terms of features implemented within the simulator itself. For a detailed comparison between those two versions, please see the following document:
The following issue has been set up to track the progress of migrating features of CARLA 0.9.x to CARLA 0.10.x:
https://github.com/carla-simulator/carla/issues/9583
Until the above is complete, the overall recommendation is to use CARLA 0.9.x as the more stable version, unless the visual improvements from 0.10.x are desired. In time it is expected that 0.10.x will catch up, and can therefore be considered as a long-term solution.
There are two main integration methods with Autoware, which have been outlined in the support matrix shown below. There is an established method to communicate with CARLA 0.9.16 using a dedicated bridge. This method is considered easier to set up and more stable, although with the potential performance disadvantage of passing all heavy sensor messages through the Python-based bridge. On the other hand, it is possible to publish (and subscribe to) all relevant Autoware messages directly from CARLA using a recently-added native ROS2 interface. However, in order to fully integrate that interface with Autoware the official version of CARLA is not sufficient, and a dedicated fork has been set up to support this approach. Because of this limitation, this method can be considered experimental.
| Integration method | CARLA 0.9.16 | CARLA 0.10.0 |
|---|---|---|
| Bridge | ✅ | ❔ (unverified) |
| Native ROS2 | ❌ | ✅ (custom fork) |
The bridge can be set up according to the following instruction:
https://autowarefoundation.github.io/autoware_universe/main/simulator/autoware_carla_interface/
Although the documentation page mentions 0.9.15, it can also be used with 0.9.16 without modifications. The support for 0.10.0 has not been confirmed yet.
The main difficulty of using the ROS2 interface lies with the requirement to build your own binary of CARLA. The fork containing the functionality required to run CARLA with Autoware is located under the following repository:
https://github.com/tier4/carla-autoware-native
In order to build the binary and run a demo with Autoware, follow the instruction in README.md.