Carla
Open-source simulator for autonomous driving research.
Last verified:
What is Carla?
CARLA is an open-source simulator for autonomous driving research, developed from the ground up to support development, training, and validation of autonomous driving systems. It provides open-source code, protocols, and open digital assets including urban layouts, buildings, and vehicles that can be used freely. The simulation platform supports flexible specification of sensor suites, environmental conditions, full control of all static and dynamic actors, map generation, and much more.
Key features include scalable server multi-client architecture allowing multiple clients to control different actors, a powerful flexible API for controlling all simulation aspects, diverse autonomous driving sensor suites (LIDARs, cameras, depth sensors, GPS), fast simulation mode for planning and control without rendering, and ASAM OpenDRIVE standard map generation. CARLA also includes Traffic Manager for NPC control, ROS integration via ROS-bridge, ScenarioRunner for traffic scenario simulation, and autonomous driving baselines including AutoWare and Conditional Imitation Learning agents.
CARLA is grounded on Unreal Engine (currently UE 5.5 as of version 0.10.0) and uses Python and C++ APIs for simulation control. It is designed for researchers, developers, and students working on autonomous driving, machine learning for driving policies, perception algorithm training, and validation of autonomous urban driving systems. The project aims to democratize autonomous driving R&D by providing an easily accessible and customizable tool.
The simulator features a client-server architecture where the server handles simulation, sensor rendering, physics computation, and world-state updates, while clients control actor logic and world conditions through the CARLA API. The ecosystem includes open assets, blueprint libraries for vehicles and pedestrians, and a community-driven development model where users can customize elements and share achievements.
Carla pricing
Pricing model: Freemium
CARLA is completely free and open-source. There are no paid plans or tiers. All code, protocols, digital assets (urban layouts, buildings, vehicles), and features are available freely for research and development use.
Carla pros
- Fully open-source with free access to code and protocols
- Open digital assets including urban layouts, buildings, and vehicles
- Powerful Python and C++ API for complete simulation control
- Scalable server multi-client architecture for distributed simulation
- Wide array of realistic传感器 including LIDAR, cameras, RADAR, GPS
- Ground truth data access for semantic segmentation and depth
- Built-in Traffic Manager for realistic NPC behavior simulation
- ASAM OpenDRIVE standard support for map creation
- ROS bridge integration for Robot Operating System compatibility
- Fast simulation mode disables rendering for faster execution
- ScenarioRunner for defining and executing traffic situations
- Autonomous driving baselines including AutoWare agent
- Recording and replay functionality for simulation comparison
- Custom vehicle and map creation support
- Active community with transparent white-box development
- Dynamic weather system with environmental condition control
- Integrated with Unreal Engine 5.5 for realistic rendering
Carla cons
- Requires at least 170GB disk space for building
- Needs dedicated GPU with minimum 6GB VRAM to run
- Performance demanding software requiring high-end hardware
- Complex build process from source with many dependencies
- Numpy 2.0+ causes conflicts requiring downgrade to <2.0.0
- No cross-compilation support for packaging across OS platforms
- Windows build requires Visual Studio 2022 specifically
- Low FPS when running server in Unreal Editor out of focus
Frequently asked questions about Carla
What are the system requirements to run CARLA?
CARLA is performance demanding and requires at minimum a 6GB GPU or better yet a dedicated GPU capable of running Unreal Engine. For building CARLA from source, you need at least 170GB free disk space (about 35GB for CARLA plus 95-135GB for Unreal Engine). Ubuntu version should be 16.04 or later for Linux builds.
Is CARLA free to use?
Yes, CARLA is completely open-source and free. It provides open-source code, protocols, and open digital assets (urban layouts, buildings, vehicles) that were created for autonomous driving research and can be used freely without any cost or paid tiers.
What programming languages does CARLA support?
CARLA provides APIs in both Python and C++ for controlling the simulation. The API is constantly growing as the project develops, mediating between server and client to provide new functionalities.
What sensors are available in CARLA?
CARLA supports diverse sensor suites including LIDARs, multiple cameras, depth sensors, GPS, and RADAR. The simulator also gives access to privileged information such as ground truth semantic segmentation and depth information. Sensors are a specific kind of actor attached to vehicles.
How do I create custom maps for CARLA?
Users can easily create their own maps following the ASAM OpenDRIVE standard (1.4) via tools like RoadRunner. CARLA also provides built-in map assets that can be customized, and users can import their own assets following simple guidelines.
What is CARLA's architecture?
CARLA uses a scalable client-server architecture. The server handles simulation itself including sensor rendering, physics computation, world-state updates, and actor updates. The client side consists of client modules controlling actor logic and world conditions through the CARLA API (Python or C++). The server ideally runs on a dedicated GPU, especially for machine learning.
Does CARLA support ROS integration?
Yes, CARLA is provided with integration with ROS (Robot Operating System) via the ROS-bridge, enabling seamless connection with ROS environments for universalization of the simulator within other learning environments.
What is the Traffic Manager in CARLA?
The Traffic Manager is a built-in system that takes control of NPC vehicles besides the one used for learning. It acts as a conductor provided by CARLA to recreate urban-like environments with realistic behaviors, challenging your autonomous driving agent.
How do I install the CARLA Python client library?
For CARLA 0.9.12+, there are several methods including .whl installation or PyPi download using pip. For older versions, you install the .egg file from PythonAPI/carla/dist. You can also use 'python3 -m pip install carla' for PyPi installation. Make sure the library matches your Python version.
What is ScenarioRunner in CARLA?
ScenarioRunner is CARLA's engine that allows users to define and execute different traffic situations based on modular behaviors. It provides routes describing different situations to iterate on, easing the learning process for vehicles and setting the basis for the CARLA challenge where users can test solutions on a leaderboard.