Introduction
CARLA (Car Learning to Act) is an open-source simulator purpose-built for autonomous driving research. It provides photorealistic urban environments rendered by Unreal Engine, a flexible sensor suite, and a Python API for programmatic control. Researchers use CARLA to train and evaluate perception, planning, and control algorithms without deploying real vehicles.
What CARLA Does
- Renders photorealistic driving scenarios with dynamic weather, lighting, and traffic
- Simulates a comprehensive sensor suite including cameras, LiDAR, radar, GNSS, and IMU
- Provides a Python API for spawning vehicles, setting waypoints, and collecting sensor data
- Supports co-simulation with SUMO for realistic traffic flow modeling
- Includes a scenario runner for reproducible evaluation of driving agents against benchmarks
Architecture Overview
CARLA follows a client-server architecture. The server runs an Unreal Engine instance that renders the world and simulates physics. Clients connect via a TCP-based protocol using the Python or C++ API to control actors (vehicles, pedestrians, sensors) and retrieve simulation data. The server supports synchronous and asynchronous stepping modes, with synchronous mode guaranteeing deterministic replay.
Self-Hosting & Configuration
- Download prebuilt packages for Linux or Windows from the official releases
- Requires a GPU with Vulkan or DirectX support for rendering
- The Python client library installs via pip install carla
- Configure world settings (weather, map, traffic density) through the Python API
- Build from source with Unreal Engine 4 or 5 for custom map and asset development
Key Features
- Multiple detailed urban maps with intersections, highways, and residential areas
- Programmable weather and time-of-day for testing perception robustness
- Ground-truth labels for semantic segmentation, depth, and optical flow
- ROS bridge for integrating CARLA with Robot Operating System workflows
- Leaderboard challenge platform for standardized agent benchmarking
Comparison with Similar Tools
- LGSVL Simulator — discontinued in 2022; CARLA remains actively maintained with a larger community
- AirSim — focuses on drones and indoor environments; CARLA specializes in urban driving scenarios
- NVIDIA DRIVE Sim — commercial, high-fidelity driving simulator; CARLA is free and open source
- Waymax — lightweight, data-driven simulator by Waymo; CARLA provides full 3D rendering and physics
FAQ
Q: Can I train end-to-end driving models in CARLA? A: Yes. CARLA provides camera, LiDAR, and other sensor streams alongside vehicle controls, making it suitable for imitation learning and reinforcement learning pipelines.
Q: Does CARLA support ROS integration? A: Yes. The carla-ros-bridge package provides ROS topics for all CARLA sensors and controls, enabling integration with the ROS navigation and perception stacks.
Q: What maps are included? A: CARLA ships with several maps including Town01 through Town15, ranging from simple intersections to complex multi-lane highway interchanges.
Q: Can I create custom environments? A: Yes. You can build custom maps and assets using Unreal Engine and import them into CARLA. Documentation covers the full asset pipeline.