# ApolloAuto/apollo

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/apolloauto-apollo).**

26,433 stars · 9,961 forks · C++ · apache-2.0

## Links

- GitHub: https://github.com/ApolloAuto/apollo
- awesome-repositories: https://awesome-repositories.com/repository/apolloauto-apollo.md

## Topics

`apollo` `autonomous-driving` `autonomous-vehicles` `autonomy` `self-driving-car`

## Description

Apollo is a comprehensive software stack designed for autonomous vehicle development, providing the necessary components for perception, planning, and control. It functions as a high-performance robotics middleware, utilizing a publish-subscribe data bus to facilitate low-latency communication between distributed modules and hardware sensors. The platform integrates data from cameras, lidar, and radar through a sensor fusion framework to generate a real-time environmental model for navigation.

The system features a component-based runtime framework that manages task scheduling and resource allocation, supported by a hardware abstraction layer that decouples driving logic from specific vehicle configurations. To ensure consistent behavior during testing, it includes a deterministic replay engine for sensor data streams and supports hardware-in-the-loop simulation. The platform also employs directed acyclic graph scheduling and zero-copy shared memory transport to optimize data flow and computational efficiency across complex robotic systems.

The software provides a standardized vehicle control interface to translate navigation decisions into mechanical commands. Extensive documentation is available, including installation instructions, hardware integration guides, and a series of quick-start manuals for various versions of the platform.

## Tags

### Hardware & IoT

- [Autonomous Driving Stacks](https://awesome-repositories.com/f/hardware-iot/autonomous-driving-stacks.md) — Provides the necessary components for perception, planning, and control to operate self-driving vehicles safely.
- [Autonomous Vehicle Platforms](https://awesome-repositories.com/f/hardware-iot/autonomous-vehicle-platforms.md) — Integrates perception, planning, and control modules with physical vehicle hardware.
- [Vehicle Control Interfaces](https://awesome-repositories.com/f/hardware-iot/vehicle-control-interfaces.md) — Translates high-level navigation decisions into precise mechanical commands for steering, braking, and acceleration.

### Software Engineering & Architecture

- [Robotics Middleware](https://awesome-repositories.com/f/software-engineering-architecture/robotics-middleware.md) — Provides a high-performance communication and task scheduling layer for distributed robotic modules.
- [Runtime Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/runtime-frameworks.md) — Manages task scheduling and resource allocation for real-time perception and control algorithms.
- [Middleware Orchestrators](https://awesome-repositories.com/f/software-engineering-architecture/middleware-orchestrators.md) — Manages complex data communication and task scheduling between distributed software components.
- [Task Schedulers](https://awesome-repositories.com/f/software-engineering-architecture/task-schedulers.md) — Executes computational nodes in a specific order based on data dependencies and timing constraints.

### Artificial Intelligence & ML

- [Sensor Fusion](https://awesome-repositories.com/f/artificial-intelligence-ml/sensor-fusion.md) — Combines inputs from cameras, lidar, and radar sensors to create a reliable real-time environmental model.
- [Motion Planning](https://awesome-repositories.com/f/artificial-intelligence-ml/motion-planning.md) — Calculates safe and efficient vehicle trajectories by analyzing dynamic obstacles and road conditions.
- [Sensor Fusion Frameworks](https://awesome-repositories.com/f/artificial-intelligence-ml/sensor-fusion-frameworks.md) — Integrates data from cameras, lidar, and radar to create a unified representation of the surrounding environment.

### Networking & Communication

- [Message Buses](https://awesome-repositories.com/f/networking-communication/message-buses.md) — Facilitates low-latency communication between distributed autonomous driving modules and hardware sensors.

### Operating Systems & Systems Programming

- [Hardware Abstraction Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-abstraction-layers.md) — Decouples high-level driving logic from specific vehicle sensors, actuators, and computing hardware.

### Testing & Quality Assurance

- [Hardware-in-the-Loop Simulators](https://awesome-repositories.com/f/testing-quality-assurance/hardware-in-the-loop-simulators.md) — Validates algorithms by connecting software modules to simulated or physical vehicle control systems.
- [Replay Engines](https://awesome-repositories.com/f/testing-quality-assurance/replay-engines.md) — Records and replays sensor data streams to ensure consistent behavior during simulation and algorithm testing.

### Data & Databases

- [Shared Memory Transports](https://awesome-repositories.com/f/data-databases/shared-memory-transports.md) — Allows multiple processes to access large sensor data buffers without expensive memory duplication.
