Apollo Autonomous Vehicle Platform

repository·master·Indexed 12 days ago

https://github.com/apolloauto/apollo

A high-performance, flexible architecture for the development, testing, and deployment of Autonomous Vehicles. It includes the Cyber RT runtime framework, perception systems for Lidar, Radar, and Camera, a planning module for various driving scenarios, and Dreamview for visualization. The platform provides specialized modules for CAN bus interfacing, vehicle calibration, and sensor driver parsing.

Tokens
767.5K
Snippets
1.7K
Records
3.3K
Agent score
98%

What's inside Apollo

  1. Overview of Apollo Core Packages

    master

    Apollo Core is organized into several functional modules that form the foundation of the autonomous driving stack. These modules include:

    • Cyber: The communication framework (cyber).
    • Planning: Path and behavior planning, including various scenarios (e.g., lane_follow, emergency_stop, valet_parking) and planners (lattice, rtk, public_road).
    • Control: Vehicle control components and controllers (e.g., mpc_controller, lat_based_lqr_controller).
    • Perception: Sensor processing for Lidar, Camera, and Radar, including object detection, tracking, and multi-sensor fusion.
    • Prediction: Predicting future states of surrounding objects.
    • Localization: Determining the vehicle's position.
    • Drivers: Hardware interfaces for Lidar, Camera, Radar, GNSS, and CAN bus.
    • Canbus: Vehicle communication via CAN bus.
    • Dreamview: Visualization and monitoring tools (dreamview, dreamview-plus).
    • Infrastructure: Core utilities like common, common-msgs, transform, calibration, map, and data.
  2. Overview of Control Parameter Auto-Tuning Service

    master

    The Control Parameter Auto-Tuning Service uses machine learning to automatically optimize control parameters for PID, LQR, MPC, and MRAC controllers within the Apollo Control Module. It operates in an offline simulation environment, integrating with Apollo's dynamic modeling, simulation platform, and control profiling services.

    Workflow:

    1. Parameter Generation: Iteratively generates new parameters and evaluates them using the Apollo Simulation service with pre-trained vehicle dynamic models.
    2. Evaluation: Simulation results are evaluated via the control profiling service.
    3. Optimization: A weighted score is calculated from multiple control metrics. The service searches for parameters that maximize this score within a specified number of iterations.
  3. Overview of adapting a new vehicle to Apollo

    master

    To enable autonomous driving software development on Apollo, developers must adapt new vehicles to follow the Apollo wire-controlled signal standards. This process involves designing a chassis communication protocol that meets Apollo's requirements and implementing the necessary CAN bus adaptation code.

    Key Workflow Steps:

    1. Protocol Design: Design a vehicle chassis signal DBC file based on the Apollo wire-controlled signal list. Ensure all chassis interface definitions, messages, and signals map one-to-one with the DBC.
    2. Code Generation: Use the DBC conversion tool provided by Apollo to generate the initial version of the canbus low-level adaptation code.
    3. Logic Implementation: Add vehicle-specific control logic to the generated code to establish chassis signals and control signals within Apollo.
    4. Verification: Use CAN bus debugging tools to verify signals and ensure seamless communication between the vehicle chassis and Apollo's upper layers.

    Options for Developers:

    • If you have a vehicle: Follow the documentation for wire-controlled requirements to prepare your vehicle's underlying control protocol and perform validation tests via the Apollo Open Vehicle Certification Platform.
    • If you do not have a vehicle: Use existing vehicle models already adapted to Apollo (e.g., Lincoln, Lexus, GE3, WEY) for testing.
  4. Overview of the Perception module

    master

    The Perception module is responsible for identifying obstacles and traffic signs around the autonomous vehicle. It processes data from three primary sensor types: Lidar, Radar, and Camera.

    Each sensor type performs object recognition and tracking. The camera specifically adds capabilities for lane line recognition and traffic light detection. Finally, a Fusion component integrates data from these sensors to provide a unified environmental view.

    The general execution pipeline for each sensor is:

    1. Preprocessing
    2. Recognition
    3. Filtering and Tracking
  5. Overview of the Localization Module

    master

    The Localization module is a core component of the Apollo autonomous driving system. It is responsible for precisely measuring and estimating the vehicle's position, velocity, and orientation during operation. The module provides three distinct localization modes:

    1. RTK Localization: Uses GNSS/IMU data.
    2. NDT Localization: Uses LiDAR point clouds and GNSS data.
    3. MSF Localization: A multi-sensor fusion approach that integrates GPS, IMU, LiDAR, and camera data to achieve high-precision localization and trajectory estimation.
  6. Overview of V2X module

    master
    The V2X (Vehicle to Everything) module enables the exchange of information between the vehicle and the outside world. It allows the vehicle to analyze real-time traffic information, optimize driving routes, and improve access efficiency. Additionally, it enhances driving safety by sensing the surrounding environment and making rapid adjustments based on external data.
  7. Overview of Common Modules in Apollo

    master
    The modules/common directory contains general-purpose code and utilities that are not specific to any single module. It provides foundational components used across the Apollo ecosystem, including communication adapters, data configurations, mathematical libraries, and system utilities.