【自动驾驶】自动驾驶概述 ⑥ ( 自动驾驶软件系统概述 | RTOS 操作系统 和 Framework 框架 | Autoware Universe 和 Apollo Cyber RT 开发框架 )
一、自动驾驶软件系统概述1、自动驾驶 软件系统 概述2、自动驾驶 软件系统 数据流二、RTOS 操作系统 和 Framework 框架1、RTOS 操作系统简介2、自动驾驶 Framework 层三、AutoWare Universe 和 Apollo Cyber RT 开发框架 与 自动驾驶操作系统1、自动驾驶开发框架2、自动驾驶开发框架 与 自动驾驶实时操作系统 区别3、Autoware Un
文章目录
一、自动驾驶软件系统概述
1、自动驾驶 软件系统 概述
自动驾驶 软件系统 概述 : 下图 是 自动驾驶 软件系统 的 架构图 , 下面对 架构图 中各个层级进行简要介绍 ;

- 实时操作系统 ( RTOS ) : 位于 自动驾驶 软件系统 架构 最底层 , 是整个 自动驾驶系统 的 基础支撑 , 其目的是 保证系统任务 在 规定的时间内快速、可靠地执行 , 为上层的 各个功能模块 提供 稳定、实时的运行环境 ;
- 框架层 ( Framework ) : 又称为 中间件层 ( Middleware ) , 位于 RTOS 之上 , 起到承上启下的作用 , 为 上层的 各个功能模块 提供统一的开发、运行框架 , 是连接 底层操作系统 和 上层应用算法 的桥梁 ;
- 应用算法层 ( Application Layer ) : 该层 包含了自动驾驶的核心功能模块 , 每个模块承担特定的任务 ;
- 高精地图 ( HD Map ) : 提供 自动驾驶 所需的 高精度地理信息 , 包括 道路几何拓扑结构、交通标志、车道线 等 , 为 定位、感知 和 决策规划 提供 基础参考 ;
- 定位系统 ( Localization ) : 确定 车辆在 高精度地图 中的 准确位置 , 通常 结合 GPS、惯性导航系统 ( INS ) 、激光雷达 等 多种传感器进行 融合定位 ;
- 感知系统 ( Perception ) : 通过 摄像头、激光雷达、毫米波雷达 等传感器 , 感知周围环境中的 障碍物 、交通标志、车道线 等信息 , 为后续的 预测 和 规划 提供输入 ;
- 预测系统 ( Prediction ) : 基于 感知到的 环境信息 , 预测 其他交通参与者 的 未来 运动轨迹 和 行为 , 以便 规划模块 提前做出 决策 ;
- 决策规划 ( Planning ) : 根据 定位、感知 和 预测 的结果 , 规划车辆的 行驶路径 和 行为 , 包括 全局路径规划 ( 从 起点 到 终点 的路径 ) 和 局部轨迹规划 ;
- 实时控制 ( Control ) : 将 规划好的 轨迹 转化为 车辆 的控制指令 , 通过 线控接口 控制车辆的 油门、刹车、方向盘 等 , 实现车辆的自动行驶 ;
- 人机界面 ( HMI ) : 位于 架构的 最上层 , 是 用户 与 自动驾驶系统 进行交互的界面 , 显示车辆的状态、行驶信息、地图信息等 , 允许用户对 自动驾驶系统 进行操作和设置 ;
- 云平台 ( Cloud Platform ) : 云平台 为 自动驾驶系统 提供 高精度地图 的 更新、大规模数据的处理与分析 、远程监控 与 诊断 等服务 , 支持 自动驾驶系统 的 持续改进 和 功能扩展 ;
2、自动驾驶 软件系统 数据流
自动驾驶 软件系统 数据流 :
- 感知数据 : 下图中的 Computer Vision 和 Sensor Fusion 数据 是 感知数据 , 是 摄像头 采集的 图像数据 与 传感器 采集 的 雷达数据 结合在一起 处理后的 数据 ;
- 定位数据 : 下图中的 Localization 是 定位数据 , 由 GPS 、RTK 、 惯导 等定位模块获取 ;
- 路径规划 : 下图中的 Path Planning 是 路径规划数据 , 将 感知信息 和 定位信息 结合 高精地图 处理 , 然后 进行 路径决策规划 ;
- 线控指令 : 下图中的 Control 是 线控控制指令数据 , 将 路径决策 规划 信息 , 转为 车辆线控系统 可识别的 线控信号 , 包括 线控转向 、线控油门、线控刹车、线控换挡、线控悬挂 等线控指令 ;

二、RTOS 操作系统 和 Framework 框架
1、RTOS 操作系统简介
实时操作系统 ( RTOS , Real - Time Operating System ) 是一种能 在 确定时间内 对 外部事件 做出响应 的操作系统 , 它强调的是 系统的 实时性、可靠性 和 确定性 , 这些特性 对于 自动驾驶、工业自动化、航空航天 等 对时间要求苛刻 的领域至关重要 ;
实时操作系统 ( RTOS ) 分为两种 , 商业实时操作系统 ( VxWorks、QNX、 eMCOS ) 和 开源实时操作系统 ( FreeRTOS、RT Linux、 Zephyr ) , 下面分别选取其中的几种进行介绍 ;
- QNX 实时操作系统 : 是 类 Unix 操作系统 , 车规级 的 实时操作系统 , 在汽车电子领域占据重要地位 , 该操作系统 基于微内核架构 , 具有高度的 可靠性、实时性 和 安全性 ;
- 微内核架构 : 使得 内核部分功能精简 , 稳定性高 , 即使某个服务模块出现故障 , 也不会导致整个系统崩溃 ;
- 应用领域 : 在汽车行业 , 大量车 载信息娱乐系统、高级驾驶辅助系统 ( ADAS ) 甚至 自动驾驶系统 都采用 QNX 作为 操作系统 ;
- RT Linux 实时操作系统 : 是 在 Linux 操作系统 的基础上开发的 实时操作系统 , 通过对 Linux 内核进行改造,添加实时扩展模块,使其具备实时处理能力 ;
- 双内核架构 : 同时保留了 标准 Linux 内核 和 实时内核 , 既保证了实时任务的确定性执行 , 又能充分利用 Linux 丰富的软件生态 ;
- 标准内核 : 其中一个内核 是标准的 Linux 内核 , 用于处理非实时任务 ;
- 实时内核 : 另一个内核 是 实时内核 , 专门处理实时任务 ;
- 应用领域 : 该操作系统 主要用于 工业自动化、航空航天、机器人控制 等领域 ;
- 双内核架构 : 同时保留了 标准 Linux 内核 和 实时内核 , 既保证了实时任务的确定性执行 , 又能充分利用 Linux 丰富的软件生态 ;
- eMCOS 实时操作系统 : 由日本 eSOL 公司开发 , 是 面向高性能嵌入式系统的 实时操作系统 , 专为需要 高确定性、高可靠性 和功能安全 的领域设计 , 适用于 自动驾驶 和 汽车电子 领域 ; 读法 : " 伊 - 爱姆 - 扣斯 " , 别读错了 ;
- 认证级别 : eMCOS 的内核和相关工具链已 通过 ISO 26262 标准的认证 , 达到了 ASIL D 级别 ;
- 微内核架构 : eMCOS 采用模块化架构 , 内核小巧 , 用户可以根据应用需求裁剪功能 , 既可以在资源受限的微控制器上运行 , 也能在高性能的车载计算平台 上 发挥巨大潜力 ;
- 多核支持 : 该操作系统 能够 充分利用现代 多核处理器 的性能 , 提供了先进的多核调度和同步机制 , 能够 将 不同的任务(如 : 感知、规划、控制)高效地分配到不同的 CPU 核心上 , 实现真正的并行处理 , 大幅提升系统整体性能 ;
2、自动驾驶 Framework 层
Framework 框架层 , 又称为 Middleware 中间件层 , 该层 运行在 RTOS 实时操作系统 之上 , 是 连接 底层操作系统 和 上层应用算法 的桥梁 ;
Framework 层 核心职责 :
- 通信机制 : 提供 模块间 高效的数据传输方式 , 如 : 发布 - 订阅模式 ;
- 任务调度 : 在 RTOS 之上 , 对自动驾驶的 各个功能模块 进行更高级别的调度 , 如 : 感知、规划 ;
- 数据管理 : 处理 传感器 数据流、日志记录 等 ;
- 开发工具 : 提供 API、调试工具、仿真环境 等,方便开发者 构建 和 集成算法。
常见的 Framework 开发框架举例 :
- AutoWare Universe 自动驾驶开发框架
- 百度 Apollo 的 Apollo Cyber RT 自动驾驶开发框架
上面两个 都是 Framework 层的框架 , 需要运行在 RTOS 实时操作系统 上 ;
三、Autoware Universe 和 Apollo Cyber RT 开发框架 与 自动驾驶操作系统
1、自动驾驶开发框架
市面上 主流 的 自动驾驶 Framework 框架层 开发框架 有
- Autoware Universe
- Apollo Cyber RT
两种 , 它们都是 自动驾驶 软件架构 中的 中间件 ( Middleware ) , 为上层的算法模块 ( 如 : 感知、规划、控制 ) 提供 通信、调度、任务管理 等核心服务 ;
2、自动驾驶开发框架 与 自动驾驶实时操作系统 区别
可以将 Autoware Universe 或 Apollo Cyber RT 开发框架 理解成一个 跨平台的 开发框架 , 自动驾驶 算法 需要 调用这些框架的 API 进行开发 , 一套代码可以跑在不同的 操作系统 中 ;
如 : QT 开发框架 , 可以在 Ubuntu、Windows、MacOS、嵌入式 Linux 系统上运行 , 但是开发的 QT 代码是一样的 ;
使用 AutoWare Universe 开发自动驾驶 软件 , 开发完成的代码 , 是 运行在 Autoware Universe 框架上的 , Autoware Universe 可以运行在 Ubuntu 上 , 也可以运行在 eMCOS 操作系统上 ;
- 开发过程中 在 Ubuntu 上运行 ;
- 实际车端应用时 , 车载计算单元 或 域控制器 运行的是 eMCOS 操作系统 ;
百度 Apollo Cyber RT 自动驾驶框架 , 开发阶段在 Ubuntu 运行 , 商用后再 QNX 上运行 ;
3、Autoware Universe 开发框架
Autoware Universe 是 一个 开源的 自动驾驶 软件框架 , 其 核心是基于 ROS 2 ( Robot Operating System 2 ) , ROS 2 本身就是一个为 机器人 和 自动驾驶 设计的、非常成熟的中间件 ;
Autoware Universe 可以运行在 通用的 Linux 系统 上进行开发和测试 , 如 : Ubuntu 操作系统 ;
开发测试阶段 , 试运行阶段 , 可以使用 Ubuntu 操作系统 ,
在 实时性要求 高 的 商业运行环境中 , 需要在 RTOS 实时操作系统 上 运行 Autoware Universe , 一般 Autoware Universe 商用是 在 eMCOS 实时操作系统 上运行 ;
4、Apollo Cyber RT 开发框架
百度 Apollo 自动驾驶 的 框架层 就是 Apollo Cyber RT 开发框架 , 是 百度 自主研发 的 自动驾驶框架 ;
Apollo Cyber RT 可以 直接运行在 Linux 或 QNX 等操作系统之上 ;
- 测试阶段 在 Ubuntu 上运行 ;
- 商用阶段 在 QNX 上运行 ;
Apollo Cyber RT 自身 内置了高性能的调度器和通信机制 , 以满足自动驾驶对低延迟和高确定性的要求 ;
更多推荐

所有评论(0)