开发者上手¶
1. 关于¶
SimOne 是 51SIM 自主研发的一款集静态和动态数据导入、测试场景案例编辑、传感器仿真、动力学仿真、可视化、测试与回放、虚拟数据集生成等一体化的自动驾驶仿真与测试平台。平台提供了多种类型和语言的 API 接口实现外部算法系统与仿真平台的通讯机制,可以满足 L2/L3/L4 算法的测试与训练。仿真平台基本实现全模块开放性,可以支持感知、融合、决策、规划及控制算法的部分开环或整体闭环测试,主要应用场景如下:
-
感知算法 + 仿真平台开环:满足目标识别和预测的测试,可拓展支持多传感器分布式及 HIL
-
融合算法 + 仿真平台开环:通过获取单传感器目标级真值开展感知融合算法的测试和训练
-
决策规划控制算法 + 仿真平台开环:跳过感知融合模块,利用多传感器融合后目标级真值开展相关算法的测试,可拓展支持无 GPU 的云端大规模部署和并发运行
-
感知融合决策规划控制算法 + 仿真平台闭环:完整链路的闭环测试,可拓展整车在环 VIL
2. API 概览¶
2.1 多语言与框架技术接口¶
| 类别 | API 接口 | 描述 |
|---|---|---|
| 语言支持 | C++ | 为使用 C++开发的项目提供接口支持。 |
| Python | 提供 Python 语言的接口支持,方便进行快速开发和原型制作。 | |
| 运行控制 | Restful API | 提供基于 HTTP 的 Restful API,支持 Web 服务接口,控制 SimOne 界面的运行流程,比如可控制创建案例库,导入导出案例,运行停止案例等。 |
| API + 第三方中间件 | Simulink | 提供 Simulink 接口,适用于模拟和模型基础的设计。 |
| ROS1/2 | 支持 ROS1/2 框架,便于机器人操作系统中的应用开发。 |
2.2 功能支持¶
注意
如需查看 API 汇总列表,具体可查看 C++/Python 接口语言支持。
| API 类型 | API 接口 | 功能 |
|---|---|---|
| 1. 基础服务类 主要提供车辆选择、仿真工作模式设置和热区数据获取的功能。 |
ServiceAPI | 选择车辆:选择具体的目标车辆进行控制,并订阅其状态更新 设置仿真工作模式:根据需要选择帧同步(保证实时性和稳定性)或非帧同步(提高运行效率)模式 获取热区数据:通过主动 API 调用或自动回调函数获取车辆及其周边环境的实时数据 |
| 2. 传感器类 为开发者提供了从 SimOne 仿真环境中获取各种传感器数据的能力。 |
SensorAPI | 获取目标级或物理级信息:包括图像信息、激光雷达点云、毫米波雷达及超声波雷达目标级信息等 获取传感器真值数据:既能满足感知算法接入测试,也能满足跳过感知,直接从决策算法接入的开环测试需求 环境信息配置与管理:涉及获取和设置与仿真环境相关信息(如天气、光照和地面条件等),对于创建特定测试场景非常关键。 |
| StreamingAPI | 获取物理级传感器流式传输:实时获取和自动回调图像及点云数据,支持多种格式。 | |
| V2XAPI | V2X 消息处理:获取特定车辆 UPER 编码的 V2X 消息及更新通知。 | |
| 3. 控制通信类 通过控制信号输入驱动被测车辆运行,实现复杂交通场景模拟。 |
PNCAPI | 车辆状态与初始化:涵盖选择测试车辆、初始化状态信息、设置起始位置和重置车辆状态的操作。 预警信息与控制策略:包括设置和接收预警信息、控制车辆动作,以及规划控制输出的必要接口,确保测试车辆按照算 法进行动态响应。 |
| 4. 高精地图运行时类 为决策算法提供厘米级高精度地图信息,包括路网和交通元素,支持包括路径规划和定位在内的 多种 API 调用。 |
HDMapAPI | 地图与车道分析:提供高精地图加载及车道详细信息查询,强化定位和路由能力。 环境识别与判断:集成交通灯、标志、停车位等环境要素的识别,辅助决策及判断。 |
| 5. 评价算法类 获取用户自定义评价功能所需要的基本仿真数据以及评价需要的用户规控算法内部相关信号。 |
EvaluationAPI | 存取评价数据:存取用户自定义的评价功能所需的数据,用于用户自定义的评价算法。 |
2.3 API 调用示例¶
注意
[SimOne 安装目录]/SimOne/SimOneAPI 中的范例代码根据目录分类,演示了 SimOne 仿真产品的各类 API 在客户本地算法程序中的应用。
各类示例(算法示例、中间件适配、传感器原始数据接入、功能模块示例)的完整目录及说明,请查看 API 调用参考示例。
