一、Autoware介绍
Autoware 是一个面向自动驾驶车辆的开源软件栈,基于机器人操作系统(ROS)构建而成,包含了从定位、目标检测到路线规划、控制等自动驾驶所需的全部功能,整体技术架构基于“高精地图 + 激光雷达 + 摄像头 + 毫米波雷达 + 感知系统 + 预测系统 + 决策规划 + 线控控制”的技术路线实现自动驾驶。该项目由 Tier IV 等组织推动,致力于为自动驾驶技术的开放创新提供完整的软件解决方案,已通过 Autoware 发布了面向 L4 级自动驾驶的软件栈,并开始在日本、美国和欧洲开展验证测试。
二、版本演进与选型指南
Autoware是世界上第一个用于自动驾驶汽车的“All-in-One”开源软件。Autoware中的开源算法最初是由名古屋大学的客座副教授、东京大学的副教授加藤真平在2015年首次提出的。
Autoware自动驾驶平台基于ROS操作系统,并在Apache2.0许可下使用。目前,Autoware自动驾驶平台已经更新到1.14版本,其集成了丰富的自动驾驶模块,分别为传感器、算法和驱动三个部分,如图所示。
传感器部分的主要功能是读取相机、雷达、GPS/GNSS和IMU等外界传感器的感知数据;算法部分包括感知、决策和路径规划三个功能;驱动部分将会直接控制车辆的运行。

2.1 主要版本对比
Autoware 历经多次重大版本迭代,目前形成了清晰的版本体系:
| | | | |
|---|
| Autoware.AI | | | | |
| Autoware.Auto | | | | |
| Autoware.Core | | | | |
| Autoware.Universe | | | | |
Core 和 Universe 采用“双轨并行”策略:
Core 版本是工业级稳定组件集合,经过严格测试验证,提供基础自动驾驶功能,适用于对安全性和可靠性要求高的场景;
Universe 版本则是前沿技术实验场,包含最新研究成果和创新算法,更新频率高,适合算法研究和新功能验证。
Core 与 Universe 的稳定性、更新周期和测试覆盖率存在明显差异。
2.2 版本选型建议
- 量产部署:选择 Core 版本,满足 ISO 26262 功能安全要求
- 算法研究/仿真开发:选择 Universe 版本,集成最新感知算法(如 CenterPoint 3D 检测)
- 传统感知算法:Autoware.AI 仍可用于学习参考,但不推荐用于新项目
Autoware 版本策略未来将走向统一,计划推出“Autoware One”,整合双版本优势。
三、整体架构设计
3.1 分层架构
Autoware 采用分层架构设计,分为四个层次:

3.2 核心代码仓库组织
Autoware 的代码组织遵循清晰的模块化结构:
- autoware_core:包含高质量的稳定 ROS 包,是 Autoware 的核心功能仓库
- autoware_universe:包含前沿研究算法和实验性功能
- autoware_utils:提供通用的工具库函数
3.3 基于 ROS 2 的通信架构
Autoware 基于 ROS 2(Humble 版本)构建,采用节点化设计。每个功能模块作为一个独立的 ROS 2 节点运行,通过发布-订阅机制进行松耦合通信。这种架构提供了更好的实时性、分布式部署能力和跨平台兼容性。Autoware.Universe 采用了 ROS 2 的架构,以提供更好的性能、实时性和灵活性,满足自动驾驶系统的高要求。
四、核心模块详解
Autoware 的核心功能模块包括感知(Perception)、定位(Localization)、规划(Planning)、控制(Control)和仿真(Simulation)五大模块。
4.1 感知模块 (Perception)
感知模块负责从传感器数据中提取环境信息,是自动驾驶系统的“眼睛”。
核心组件:
- CenterPoint 检测器:基于深度学习的 3D 目标检测
- 地面分割:使用 RANSAC 算法分离地面和障碍物
点云预处理包含以下流程:fix_distortion(修正点云失真)、voxel_grid_filter(体素滤波降采样)、ray_ground_filter(地面点云过滤)、outlier_filter(离群点去除)、crop_box_filter(ROI区域裁剪)等。
目标检测与识别包括 euclidean_cluster(欧式聚类分割对象)、shape_estimation(物体尺寸和形状估计)、object_association(多传感器感知结果关联)。
4.2 融合感知算法
感知融合是 Autoware 的核心优势之一。autoware_image_projection_based_fusion 包通过整合基于图像和基于激光雷达的感知信息来提高障碍物检测的准确性,它将 2D 图像中检测到的障碍物(如边界框或分割)与 3D 点云或其他障碍物表示融合在一起,从而改进障碍物分类和检测。
融合过程处理两种输入数据:Msg3d(包括激光雷达的点云、边界框或聚类等 3D 数据)和 ROI(基于相机的感知模块的 2D 检测结果)。由于传感器工作频率不同且存在网络延迟,系统采用时间戳对齐和多传感器同步机制确保融合可靠性。
4.3 定位模块 (Localization)
定位模块通过融合多种传感器数据,实时估计车辆在地图上的位置,提供高精度的定位信息。
核心组件:
Pose Initializer(位姿初始化) :系统启动时利用 GNSS 数据提供初始全局位姿估计,也可通过 HMI 发送初始位姿
NDT Scan Matching(正态分布变换扫描匹配) :
- 采用 NDT 算法通过点云与地图数据匹配来估计车辆位姿
- 提供两项主要功能:扫描匹配位置估计、通过蒙特卡洛方法进行初始位姿估计
- EKF Localizer(扩展卡尔曼滤波器定位) :融合 IMU、轮速计和激光雷达 odometry 等多种测量,获得平滑、厘米级别的绝对定位
传感器融合架构支持多传感器输入配置,通过 EKF(扩展卡尔曼滤波)和 PF(粒子滤波)等传感器融合技术实现定位鲁棒性。
4.4 规划模块 (Planning)
规划模块根据感知和定位信息,生成安全有效的行驶路径和决策,包括路径规划、轨迹规划和运动规划。
分层规划架构:
任务规划(Mission Planning) :基于 Lanelet2 地图的全局路径规划,支持动态重路由和路由状态管理
行为规划(Behavior Planning) :
- 速度规划(Velocity Planning) :
- 交叉路口处理:基于 TTC(Time to Collision)的安全决策
行为速度规划器(Behavior Velocity Planner) 是基于交通规则调整速度的规划器,以插件形式加载各模块。
轨迹优化的目标是在满足车辆动力学约束、安全距离约束、舒适性约束和执行时间约束的前提下,最小化加权误差。
4.5 控制模块(Control)
控制模块根据规划的路径和轨迹生成控制指令,操作车辆的转向、加速和制动,实现车辆的自动驾驶。
控制器架构: 规划轨迹 → 横向控制器 → 纵向控制器 → 车辆命令网关 → 控制验证 → 车辆执行器
核心子模块:
- 路径跟踪模块(trajectory_follower) :
- 横向跟踪:默认为 MPC(模型预测控制)节点,可选 Pure Pursuit 控制,最终输出车轮转角和预测路径
外部指令切换模块(external_cmd) :负责外部人为介入的指令切换,接收外部指令并输出外部控制指令及标志位
控制指令汇总模块(vehicle_cmd_gate):集合所有控制指令并进行汇总处理,最终输出速度和转角,以及灯光、急停标志位、转向灯等命令
4.6 预测模块 (Prediction)
预测模块提供场景中动态物体未来的运动轨迹,这对规划模块的安全决策至关重要。
map_based_prediction 是根据地图形状和周围环境预测其他车辆和行人的未来路径(及其概率)的模块,主要功能包括为物体生成预测路径。
预测架构中还包括“孤独世界预测”(lonely-world prediction),将动态物体视为不相互交互进行预测,提供 C++ 函数供 ROS 节点调用。
五、地图模块(Map)
Autoware 采用 Lanelet2 作为高精地图格式,这是与 OpenDRIVE 并行的两大最流行高精地图格式之一。
Lanelet2 的特点:
- 基于 OpenStreetMap(OSM)XML 格式
地图工具:
- Vector Map Builder:Autoware 官方提供的在线 lanelet2 地图绘制工具,允许创建车道,并使用点云地图作为参考添加停止标志或交通灯等管制元素
- autoware_geography_utils:地理坐标转换、高度计算和 Lanelet2 地图投影的工具包
六、仿真与测试环境
Autoware 提供了多种仿真方案来支持算法开发和系统验证。
6.1 仿真方案对比
| | | |
|---|
| AWSIM | | Tier IV 官方推荐的端到端仿真平台,开箱即用 | |
| CARLA | | 开源自动驾驶仿真器,基于 OpenDrive 定义道路 | |
| LGSVL | | | |
AWSIM 是 Tier IV 提出的仿真器,基于 Unity 架构,与 Autoware 项目开箱即用。CARLA 是基于 Unreal Engine 的开源仿真器,使用 OpenDrive 来定义道路和城市,支持通过 C++/Python 控制仿真。
6.2 Docker 容器化部署
Autoware 仿真系统基于 Docker 容器化架构设计,主要包含基础运行环境、场景模拟引擎和可视化监控工具三大功能模块。这种架构确保了环境一致性和跨平台兼容性,同时降低了硬件依赖门槛。
Docker 部署的核心优势:
- 环境一致性:镜像内预配置所有依赖项,消除环境差异问题
- 资源隔离:不同项目可使用不同版本 Autoware 而不互相干扰
- 快速部署:新成员环境准备时间从传统方式的 3 天缩短到 30 分钟
6.3 仿真运行模式
规划仿真模式适用于算法开发阶段,可实时调整路径规划参数;日志仿真模式则用于离线数据分析,支持从 ROSbag 回放真实路况数据。可视化监控包含 NoVNC 网页端和 RViz 桌面端两种访问方式,支持远程实时监控仿真过程。
6.4 RViz 可视化
Autoware 提供了专用的 RViz 插件来可视化各模块输出,包括 BoundingBoxArrayDisplay 等显示插件。目标位姿可视化(GoalPoseVisualizer)模块可从规划的路径中提取目标位姿并发布,方便 RViz 展示最终目标位置。
七、传感器标定
传感器标定是 Autoware 部署的关键前置步骤。Autoware 提供了 autoware_camera_lidar_calibrator 工具包用于激光雷达与相机的联合标定。
标定流程:
- 相机-激光雷达外参标定:获取两坐标系间的旋转和平移关系
标定的本质是求解刚体变换矩阵,描述激光雷达坐标系到相机坐标系的旋转和平移关系。标定结果通过 calibration_publisher 节点发布相机内参、外参,并注册相机与激光雷达之间的 TF 变换。
总结
Autoware 作为全球领先的开源自动驾驶软件栈,凭借其模块化设计、丰富的算法生态和活跃的开源社区,已成为自动驾驶研究和开发的重要平台。其“Core+Universe”的双轨版本架构兼顾了工业级稳定性与前沿技术创新,而基于 ROS 2 的通信框架则提供了良好的实时性和跨平台兼容性。随着 Tier IV 持续推进 L4 级自动驾驶技术的商业化落地,Autoware 作为其核心开放平台,将继续在自动驾驶技术的开放创新中发挥关键作用。