Developer Quick Start¶
1. About¶
SimOne is an autonomous driving simulation and testing platform independently developed by 51SIM. It integrates static and dynamic data import, test scenario editing, sensor simulation, dynamics simulation, visualization, testing and replay, and virtual dataset generation into a unified platform. The platform provides multiple types and languages of API interfaces to enable communication between external algorithm systems and the simulation platform, supporting testing and training of L2/L3/L4 algorithms. The simulation platform achieves full modularity and openness, supporting partial open-loop or full closed-loop testing of perception, fusion, decision-making, planning, and control algorithms. The main application scenarios are as follows:
-
Perception Algorithm + Simulation Platform Open-Loop: Supports testing of object detection and prediction, with extensibility for multi-sensor distributed and HIL configurations.
-
Fusion Algorithm + Simulation Platform Open-Loop: Conducts testing and training of perception fusion algorithms by obtaining single-sensor object-level ground truth.
-
Decision, Planning & Control Algorithm + Simulation Platform Open-Loop: Bypasses the perception and fusion modules, using multi-sensor fused object-level ground truth for algorithm testing. Extensible for large-scale cloud deployment and concurrent execution without GPU.
-
Perception + Fusion + Decision + Planning & Control Algorithm + Simulation Platform Closed-Loop: Full end-to-end closed-loop testing, extensible to Vehicle-in-the-Loop (VIL).
2. API Overview¶
2.1 Multi-Language and Framework Interfaces¶
| Category | API Interface | Description |
|---|---|---|
| Language Support | C++ | Provides interface support for projects developed in C++. |
| Python | Provides Python language interface support for rapid development and prototyping. | |
| Runtime Control | Restful API | Provides HTTP-based Restful APIs supporting web service interfaces to control SimOne's runtime workflow, such as creating case libraries, importing/exporting cases, and starting/stopping cases. |
| API + Third-Party Middleware | Simulink | Provides Simulink interface support for simulation and model-based design. |
| ROS1/2 | Supports ROS1/2 framework for application development in robotic operating system environments. |
2.2 Feature Support¶
Note
To view the full API summary list, refer to C++/Python Interface Language Support.
| API Type | API Interface | Features |
|---|---|---|
| 1. Basic Service Primarily provides vehicle selection, simulation work mode configuration, and hotzone data retrieval. |
ServiceAPI | Select Vehicle: Select a specific target vehicle for control and subscribe to its status updates. Set Simulation Work Mode: Choose frame-synchronized mode (ensures real-time performance and stability) or non-frame-synchronized mode (improves execution efficiency) as needed. Get Hotzone Data: Retrieve real-time data of the vehicle and its surrounding environment via active API calls or automatic callbacks. |
| 2. Sensor Provides developers with the ability to retrieve various sensor data from the SimOne simulation environment. |
SensorAPI | Get Object-Level or Physical-Level Data: Includes image data, LiDAR point clouds, millimeter-wave radar, and ultrasonic radar object-level data. Get Sensor Ground Truth Data: Supports both perception algorithm integration testing and open-loop testing that bypasses perception and connects directly from the decision algorithm. Environment Configuration and Management: Handles retrieval and configuration of simulation environment parameters (e.g., weather, lighting, and road surface conditions), critical for creating specific test scenarios. |
| StreamingAPI | Physical-Level Sensor Streaming: Real-time retrieval and automatic callback of image and point cloud data, supporting multiple formats. | |
| V2XAPI | V2X Message Handling: Retrieve UPER-encoded V2X messages for specific vehicles and receive update notifications. | |
| 3. Planning, Navigation & Control Drives the ego vehicle through control signal inputs to simulate complex traffic scenarios. |
PNCAPI | Vehicle Status and Initialization: Covers selecting the test vehicle, initializing state information, setting the starting position, and resetting vehicle status. Warning Information and Control Strategies: Includes interfaces for setting and receiving warning information, controlling vehicle actions, and outputting planning and control commands, ensuring the test vehicle responds dynamically according to the algorithm. |
| 4. HD Map Runtime Provides centimeter-level high-precision map data for decision algorithms, including road networks and traffic elements, supporting various API calls including path planning and localization. |
HDMapAPI | Map and Lane Analysis: Provides HD map loading and detailed lane information queries to enhance localization and routing capabilities. Environment Recognition and Judgment: Integrates recognition of traffic lights, signs, parking spaces, and other environmental elements to assist in decision-making. |
| 5. Evaluation Algorithm Retrieves basic simulation data required for user-defined evaluation functions and internal signals from the user's planning and control algorithm needed for evaluation. |
EvaluationAPI | Store and Retrieve Evaluation Data: Stores and retrieves data required for user-defined evaluation functions, used by user-defined evaluation algorithms. |
2.3 API Call Examples¶
Note
The sample code in [SimOne-installation-directory]/SimOne/SimOneAPI is organized by directory and demonstrates the use of various SimOne APIs in client-side algorithm programs.
The links below are primarily API call reference examples. For details, refer to API Call Reference Examples.
| Example | Folder | Description | Subfolder | Description |
|---|---|---|---|---|
| Algorithm Examples | ADAS | Examples of ADAS basic algorithms interfacing with the SimOne simulation platform. | ACC | Adaptive Cruise Control algorithm example. |
| AEB | Automatic Emergency Braking algorithm example. | |||
| AEB-Daemon | AEB algorithm example for continuous case execution in cloud simulation environments. | |||
| AEB-Evaluation | Uses the AEB algorithm as an example to demonstrate how to output signal data required for evaluation within a user algorithm. | |||
| AVP | Automated Valet Parking algorithm example. | |||
| bin | Output directory for ADAS algorithm executables. | |||
| Build | Directory for files generated during project build and compilation. | |||
| LKA | Lane Keeping Assist algorithm example. | |||
| TestEvaluation | Used to test and demonstrate how to use EvaluationAPI to retrieve data required for evaluation. | |||
| TrajectoryControl | System or algorithm for controlling vehicle trajectory. | |||
| util | Directory containing a set of helper tools and utilities. | |||
| Autopilot | Comprehensive autonomous driving algorithm integration. | CurveSample | Global path planning and local path adjustment example. | |
| LimitChangeLaneSample | Example scenario with an obstacle ahead. | |||
| TrafficLightSample | Example of retrieving traffic light phase status from a scenario. | |||
| Libraries | include | Contains SimOne's built-in libraries and third-party dependency files, primarily `.h` and `.hpp` headers. | ||
| lib | Contains dynamic libraries required to run SimOne, C++ API headers and data structure files, Python API headers and data structure files, and Python API algorithm examples. | |||
| Third-Party Middleware Adaptation | Cyber | Example of Apollo (r6.0.0) interfacing with SimOne simulation platform via Cyber middleware. | ||
| Matlab | SimOneAPI encapsulation in Simulink, including module interfaces and examples. | |||
| ROS | Example of interfacing with SimOne simulation platform via ROS1 middleware. | |||
| ROS2 | Example of interfacing with SimOne simulation platform via ROS2 middleware. | |||
| SensorRaw | Physical-level data visualization interface examples. | 3rdparty | Third-party plugins: OpenCV, PCL. | |
| SensorCamera | Physical-level camera data transmission example. | |||
| SensorLidar | Physical-level LiDAR data transmission example. | |||
| SensorLidarROS | Physical-level LiDAR data transmission to ROS example. | |||
| SensorRadar4D | 4D millimeter-wave radar data transmission example. | |||
| Feature Module Examples | Tutorial | Basic SimOneAPI C++ interface usage examples. | Dynamics | Dynamics usage example. |
| HDMap | HDMapAPI usage example. | |||
| PNC | PNCAPI usage example. | |||
| Sensor | Sensor usage example. | |||
| Traffic | Traffic flow API usage example. | |||
| V2X | V2X usage example. | |||
