一、自动驾驶软件系统概述




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 内核 , 用于处理非实时任务 ;
      • 实时内核 : 另一个内核 是 实时内核 , 专门处理实时任务 ;
    • 应用领域 : 该操作系统 主要用于 工业自动化、航空航天、机器人控制 等领域 ;
  • 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 自身 内置了高性能的调度器和通信机制 , 以满足自动驾驶对低延迟和高确定性的要求 ;

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐