乐于分享
好东西不私藏

【匠歆汽车】 自动驾驶之软件篇

【匠歆汽车】 自动驾驶之软件篇
前言:之前聊了自动驾驶的各个模块,这次把视角拉远一点,看看自动驾驶的整个软件系统到底长什么样——从底层操作系统到上层应用模块,每一层都在干什么?它们之间是怎么配合的?欢迎大家一起探讨~

一、自动驾驶软件架构总览

如果把自动驾驶系统比作一个人,那软件就是大脑和神经系统。它不是一个大而全的程序,而是分层的架构,每层各司其职。

整体来看,自动驾驶软件栈从下到上可以分为 4 层

用互联网黑话说,这就是一个经典的分层解耦架构——下层为上层提供服务,上层不关心下层的实现细节。

1.1 核心数据流

不管架构多复杂,自动驾驶软件本质上只做一件事:让车从 A 点安全地开到 B 点

数据流向是这样的:

传感器数据 → 感知(Perception) → 定位(Localization) → 预测(Prediction) → 规划(Planning) → 控制(Control) → 执行机构

可以把它想象成一个人开车的过程:

  • 眼睛看路→ 知道自己在哪→ 判断别人要干嘛→ 决定怎么走→ 手脚操作方向盘油门

每一步都依赖上一步的结果,环环相扣。


二、底层:操作系统与框架

2.1 RTOS —— 实时操作系统

自动驾驶对时间的要求极其严格——刹车指令晚发出 100ms,后果可能完全不同。所以车载计算平台跑的不是普通的 Windows 或 macOS,而是实时操作系统(RTOS, Real-Time Operating System)

目前主流方案有两种:

这里有个关键区别:QNX 是硬实时,能保证任务在确定时间内完成;RT Linux 是软实时,尽力保证但无法 100% 确定。所以很多量产车上会用 QNX 做安全关键的模块,RT Linux 做非关键的计算任务。

2.2 Framework —— 中间件框架

光有操作系统还不够,还需要一层中间件框架来管理模块间的通信、调度和数据交换。

最著名的就是 ROS(Robot Operating System, 机器人操作系统)

  • ROS 最初面向机器人研发,后来被自动驾驶领域广泛采用
  • 提供了节点间通信、消息传递、工具链等基础设施
  • 目前主流趋势是从 ROS 1 迁移到 ROS 2,后者在实时性和安全性上有大幅提升

除了 ROS,还有其他选择:

所以自动驾驶软件工程师,某种程度上也是在写"机器人程序"?这个跨界还挺自然的。


三、中层:六大核心功能模块

这是自动驾驶软件的灵魂所在,也是技术竞争最激烈的层面。

3.1 HD Map —— 高精地图

之前专门写过地图篇,这里从软件架构的角度再补充几个关键点。

高精地图(HD Map, High Definition Map) 和日常用的导航地图完全不是一个东西:

高精地图在自动驾驶中的核心作用:

  • 提供 Level 4 及以上 自动驾驶所需的数据支撑
  • 包含大量静态物体的精确信息(路灯杆、交通标志牌的位置和高度)
  • 用于相对定位计算——结合传感器数据精确定位车辆
  • 帮助传感器缩小检测范围(ROI, Region of Interest),减少计算量
  • 提供道路导航语义信息(限速、车道类型、转向规则)
  • 辅助识别车道中心线,确保车辆行驶在正确位置

坐标系方面,主流采用 WGS84(GPS标准坐标系)或墨卡托投影坐标系

3.2 Localization —— 定位

定位模块解决的是"我在哪里"的问题。通过融合 GNSS、IMU、LiDAR 等多种传感器的数据,结合高精地图,计算出车辆的精确位姿(位置+朝向)。这块之前详细写过,不再展开。

3.3 Perception —— 感知

感知模块是车的"眼睛",负责理解周围环境。主要包含两大能力:

计算机视觉(Computer Vision, CV)

  • 目标检测
    :识别车辆、行人、自行车、障碍物等
  • 车道线检测
    :识别车道边界和道路标线
  • 交通标志识别
    :读懂数字限速、红绿灯状态等

多传感器融合(Sensor Fusion)

  • 将 Camera(摄像头)、LiDAR(激光雷达)、Radar(毫米波雷达)的数据融合
  • 不同传感器各有优劣,融合后才能获得可靠的环境感知结果

所以单一传感器永远不够,多传感器融合才是正道。

3.4 Prediction —— 预测

感知告诉你周围有什么,预测则告诉你它们接下来会做什么

比如前方有一辆车,它是在直行还是要变道?旁边行人是继续走还是准备过马路?这些都需要基于运动学模型和行为历史来做预测。预测越准,后续的规划就越从容。

3.5 Planning —— 规划

规划是自动驾驶的"大脑决策",通常分为两层:

其中行为规划(Behavior Planning)决定"做什么"——跟车、换道、超车、避障;运动规划(Motion Planning)决定"怎么做"——生成一条平滑的可执行轨迹。

3.6 Control —— 控制

控制是最后一公里——把规划出的轨迹变成实际的车辆动作

通过控制算法(如 PID、MPC 等)输出方向盘转角、油门量、制动压力等指令,驱动执行器完成实际操作。


四、上层:HMI 与云端

4.1 HMI —— 人机交互

HMI(Human-Machine Interface)是驾驶员与自动驾驶系统的交互窗口:

  • 显示当前驾驶模式(手动/L2辅助/L4自动)
  • 周围环境的可视化呈现
  • 接管请求提醒
  • 故障报警

4.2 Cloud Platform —— 云端平台

自动驾驶不只是车上的事,云端也在参与:

  • 高精地图的更新与分发
  • 远程监控与诊断
  • 数据回传用于算法迭代优化
  • V2X(Vehicle-to-Everything)车路协同信息的接入

五、总结

回顾一下自动驾驶软件的全貌:

从底层的硬实时保障,到中层的感知-预测-规划-控制闭环,再到上层的人机交互与云端协同——每一层都是不可或缺的一环。自动驾驶之所以难,就是因为这每一层要做到足够好,而且还要让它们之间高效协同

· END ·

联系人Lilian

电话|18217555248(微信同号)

邮箱|lilian.wu@artisan-event.com

关注【ArtiAuto 匠歆汽车】,获取最新行业趋势与深度技术洞察。 

加入【AutoCS】智能汽车信息安全社群,共同探讨漏洞分析、入侵防护与实战案例,共建端到端协同防御体系。  

加入【AutoSEMI】智能汽车半导体社群,与芯片设计、EDA、整车伙伴共同探讨。直面从RISC-V、测试、认证到流片、上车的全链路挑战,协同推动国产芯片落地。

加入【AutoPEPS】智能汽车无钥匙进入社群,与同仁共研共创。攻坚无钥匙进入与数字钥匙融合的硬核挑战,定义下一代智能进入,加速技术量产落地。

来源:产品小白,部分素材源自网络,如涉及版权问题,请及时联系lilian.wu@artisan-event.com删除。