第0章-Autoware学习大纲
第0章 Autoware学习大纲(共15章)
第一部分:架构与核心基础(3章)
第1章 Autoware架构总览与技术栈
- 对应代码: 整体架构、repositories/autoware.repos
- 章节结构:
- 1.1 Autoware项目概述
- 1.1.1 项目历史与发展
- 1.1.2 开源生态与社区
- 1.1.3 商业应用案例
- 1.2 整体架构设计
- 1.2.1 多仓库管理机制(meta-repository)
- 1.2.2 模块划分原则(core/universe/launcher/sensor)
- 1.2.3 架构演进与版本管理
- 1.3 ROS 2技术栈
- 1.3.1 ROS 2基础概念(Node/Topic/Service/Action)
- 1.3.2 DDS通信中间件
- 1.3.3 QoS策略配置
- 1.4 系统数据流
- 1.4.1 传感器数据流
- 1.4.2 感知结果传递
- 1.4.3 规划控制链路
- 1.5 系统启动与生命周期
- 1.5.1 启动流程分析
- 1.5.2 节点生命周期管理
- 1.5.3 故障恢复机制
- 1.1 Autoware项目概述
第2章 核心消息与数据结构
- 对应代码: core/autoware_msgs, core/autoware_adapi_msgs, core/autoware_internal_msgs
- 章节结构:
- 2.1 消息体系概述
- 2.1.1 消息分层设计(公共/内部/API)
- 2.1.2 消息演进与兼容性
- 2.2 autoware_msgs核心消息
- 2.2.1 感知消息(DetectedObject/TrackedObject)
- 2.2.2 规划消息(Trajectory/Path)
- 2.2.3 控制消息(Control Command)
- 2.2.4 地图消息(HADMapBin)
- 2.3 autoware_adapi_msgs(应用层API)
- 2.3.1 车辆状态消息
- 2.3.2 任务管理消息
- 2.3.3 系统监控消息
- 2.4 autoware_internal_msgs(内部消息)
- 2.4.1 模块间内部通信
- 2.4.2 调试与诊断消息
- 2.5 tier4_autoware_msgs扩展消息
- 2.5.1 Tier IV特有功能消息
- 2.5.2 与标准消息的关系
- 2.1 消息体系概述
第3章 核心基础设施与开发工具
- 对应代码: core/autoware_cmake, core/autoware_utils, core/autoware_core
- 章节结构:
- 3.1 编译系统(autoware_cmake)
- 3.1.1 CMake工程组织
- 3.1.2 自定义CMake函数
- 3.1.3 依赖管理与rosdep
- 3.2 工具库(autoware_utils)
- 3.2.1 数学工具(几何变换/插值)
- 3.2.2 时间处理工具
- 3.2.3 ROS工具封装
- 3.2.4 日志与调试工具
- 3.3 核心功能包(autoware_core)
- 3.3.1 核心算法库
- 3.3.2 通用组件与接口
- 3.4 可视化工具
- 3.4.1 RViz插件(autoware_rviz_plugins)
- 3.4.2 可视化最佳实践
- 3.5 开发环境
- 3.5.1 Docker开发容器(.devcontainer)
- 3.5.2 Ansible自动化部署
- 3.5.3 代码质量工具(clang-tidy/pre-commit)
- 3.6 仿真工具
- 3.6.1 Planning Simulator(autoware_simple_planning_simulator)
- 3.6.2 仿真器配置与使用
- 3.1 编译系统(autoware_cmake)
第二部分:传感器与驱动(2章)
第4章 传感器驱动与数据采集
- 对应代码: sensor_component/external/nebula, sensor_component/transport_drivers
- 章节结构:
- 4.1 传感器架构概述
- 4.1.1 传感器组件设计模式
- 4.1.2 sensor_component_description
- 4.2 LiDAR驱动(Nebula)
- 4.2.1 Nebula架构设计
- 4.2.2 支持的LiDAR型号(Velodyne/Ouster/Hesai/Robosense)
- 4.2.3 点云解码与校准
- 4.2.4 多LiDAR融合
- 4.3 摄像头驱动
- 4.3.1 摄像头接口标准
- 4.3.2 图像采集与同步
- 4.3.3 摄像头标定
- 4.4 IMU与GNSS
- 4.4.1 IMU数据采集
- 4.4.2 GNSS接收器接口
- 4.4.3 RTK定位支持(rtklib_ros_bridge)
- 4.5 CAN总线通信
- 4.5.1 ros2_socketcan驱动
- 4.5.2 CAN消息解析
- 4.5.3 车辆信号采集
- 4.6 传感器时间同步
- 4.6.1 时间戳对齐(sync_tooling_msgs)
- 4.6.2 硬件同步方案
- 4.6.3 软件同步策略
- 4.1 传感器架构概述
第5章 传感器数据预处理
- 对应代码: universe/autoware_universe(点云处理/图像预处理部分)
- 章节结构:
- 5.1 点云预处理
- 5.1.1 点云滤波(地面分割/离群点去除)
- 5.1.2 点云投影与坐标变换
- 5.1.3 点云下采样
- 5.1.4 pointcloud_to_laserscan转换
- 5.2 图像预处理
- 5.2.1 图像去畸变
- 5.2.2 图像增强
- 5.2.3 图像压缩与传输
- 5.3 传感器融合预处理
- 5.3.1 坐标系变换(managed_transform_buffer)
- 5.3.2 多传感器数据对齐
- 5.3.3 数据质量评估
- 5.1 点云预处理
第三部分:感知系统(3章)
第6章 3D目标检测与跟踪
- 对应代码: universe/autoware_universe(perception 3d部分)
- 章节结构:
- 6.1 3D感知架构
- 6.1.1 感知流程概述
- 6.1.2 感知模块组织
- 6.2 基于LiDAR的3D检测
- 6.2.1 点云聚类算法
- 6.2.2 3D目标检测网络
- 6.2.3 目标分类
- 6.3 基于摄像头的3D检测
- 6.3.1 单目3D检测
- 6.3.2 BEVDet算法(bevdet_vendor)
- 6.3.3 深度估计
- 6.4 多传感器融合检测
- 6.4.1 早期融合策略
- 6.4.2 后期融合策略
- 6.4.3 融合置信度计算
- 6.5 多目标跟踪
- 6.5.1 跟踪算法(卡尔曼滤波/粒子滤波)
- 6.5.2 数据关联
- 6.5.3 轨迹管理
- 6.6 目标预测
- 6.6.1 运动模型
- 6.6.2 轨迹预测算法
- 6.6.3 意图识别
- 6.1 3D感知架构
第7章 2D感知与交通场景理解
- 对应代码: universe/autoware_universe(perception 2d部分)
- 章节结构:
- 7.1 2D感知架构
- 7.2 交通灯识别
- 7.2.1 交通灯检测
- 7.2.2 交通灯分类
- 7.2.3 交通灯状态跟踪
- 7.3 交通标志识别
- 7.3.1 标志检测
- 7.3.2 标志分类
- 7.3.3 地图匹配
- 7.4 车道线检测
- 7.4.1 车道线检测算法
- 7.4.2 车道线拟合
- 7.4.3 车道类型识别
- 7.5 语义分割
- 7.5.1 场景语义分割
- 7.5.2 可行驶区域检测
- 7.5.3 障碍物分割
- 7.6 占用栅格地图
- 7.6.1 栅格地图生成
- 7.6.2 动态障碍物映射
- 7.6.3 代价地图构建
第8章 感知融合与场景理解
- 对应代码: universe/autoware_universe(perception fusion部分)
- 章节结构:
- 8.1 感知融合架构
- 8.2 目标级融合
- 8.2.1 3D与2D检测融合
- 8.2.2 冗余目标消除
- 8.2.3 目标属性补全
- 8.3 场景理解
- 8.3.1 场景要素提取
- 8.3.2 交通参与者关系建模
- 8.3.3 场景危险度评估
- 8.4 感知不确定性建模
- 8.4.1 检测不确定性
- 8.4.2 跟踪不确定性
- 8.4.3 不确定性传播
第四部分:定位与地图(2章)
第9章 高精度定位
- 对应代码: universe/autoware_universe(localization部分), universe/external/eagleye
- 章节结构:
- 9.1 定位系统架构
- 9.1.1 定位模块组织
- 9.1.2 多源定位融合策略
- 9.2 NDT点云匹配定位
- 9.2.1 NDT算法原理
- 9.2.2 NDT实现细节
- 9.2.3 NDT参数调优
- 9.3 GNSS/INS融合定位
- 9.3.1 GNSS定位原理
- 9.3.2 INS惯性导航
- 9.3.3 卡尔曼滤波融合
- 9.4 Eagleye定位方案
- 9.4.1 Eagleye架构
- 9.4.2 低成本传感器融合
- 9.4.3 城市峡谷场景优化
- 9.5 定位精度评估
- 9.5.1 定位误差分析
- 9.5.2 协方差估计
- 9.5.3 定位质量监控
- 9.6 定位失效检测与恢复
- 9.6.1 失效检测机制
- 9.6.2 降级策略
- 9.6.3 重定位算法
- 9.1 定位系统架构
第10章 高精度地图
- 对应代码: core/autoware_lanelet2_extension, universe/autoware_universe(map部分)
- 章节结构:
- 10.1 地图系统架构
- 10.2 Lanelet2地图格式
- 10.2.1 Lanelet2数据结构
- 10.2.2 地图要素建模(Lane/Regulatory Element)
- 10.2.3 地图坐标系
- 10.3 Autoware Lanelet2扩展
- 10.3.1 autoware_lanelet2_extension功能
- 10.3.2 Autoware特有属性
- 10.3.3 地图验证工具
- 10.4 地图加载与解析
- 10.4.1 地图文件读取
- 10.4.2 地图索引与查询
- 10.4.3 地图缓存策略
- 10.5 路网拓扑与路由
- 10.5.1 路网图构建
- 10.5.2 车道连接关系
- 10.5.3 路由可达性分析
- 10.6 动态地图
- 10.6.1 动态对象层
- 10.6.2 临时交通管制
- 10.6.3 地图更新机制
第五部分:规划与决策(3章)
第11章 任务规划与路由
- 对应代码: universe/autoware_universe(planning/mission_planning部分)
- 章节结构:
- 11.1 任务规划架构
- 11.2 全局路径规划
- 11.2.1 A*路径搜索
- 11.2.2 Dijkstra算法
- 11.2.3 路径代价设计
- 11.3 路由计算
- 11.3.1 路由请求处理
- 11.3.2 车道级路由
- 11.3.3 路由重规划
- 11.4 目标点管理
- 11.4.1 目标点设定
- 11.4.2 停车点选择
- 11.4.3 目标点可达性验证
- 11.5 多任务调度
- 11.5.1 任务队列管理
- 11.5.2 任务优先级
- 11.5.3 任务中断与恢复
第12章 行为规划与决策
- 对应代码: universe/autoware_universe(planning/behavior_planning部分)
- 章节结构:
- 12.1 行为规划架构
- 12.2 场景识别与理解
- 12.2.1 驾驶场景分类
- 12.2.2 场景要素提取
- 12.2.3 场景切换逻辑
- 12.3 行为决策树
- 12.3.1 决策树结构
- 12.3.2 行为选择算法
- 12.3.3 决策树可视化
- 12.4 交通规则遵守
- 12.4.1 交通灯遵守逻辑
- 12.4.2 停止线处理
- 12.4.3 让行规则
- 12.4.4 速度限制
- 12.5 交互式决策
- 12.5.1 博弈论决策模型
- 12.5.2 意图推理
- 12.5.3 社会性行驶
- 12.6 行为状态机
- 12.6.1 状态定义与转换
- 12.6.2 状态机实现
- 12.6.3 状态监控与调试
第13章 运动规划与轨迹生成
- 对应代码: universe/autoware_universe(planning/motion_planning部分)
- 章节结构:
- 13.1 运动规划架构
- 13.2 轨迹生成算法
- 13.2.1 采样式规划
- 13.2.2 优化式规划
- 13.2.3 混合式规划
- 13.3 碰撞检测与避障
- 13.3.1 碰撞检测算法
- 13.3.2 安全距离计算
- 13.3.3 动态避障策略
- 13.4 路径平滑优化
- 13.4.1 样条曲线拟合
- 13.4.2 路径平滑算法
- 13.4.3 曲率约束
- 13.5 速度规划
- 13.5.1 速度曲线生成
- 13.5.2 加速度约束
- 13.5.3 舒适性优化
- 13.6 特殊场景规划
- 13.6.1 停车规划
- 13.6.2 变道规划
- 13.6.3 掉头规划
- 13.7 紧急停车规划
- 13.7.1 紧急制动规划
- 13.7.2 最小风险机动
- 13.7.3 安全停靠
第六部分:控制与执行(2章)
第14章 车辆控制
- 对应代码: universe/autoware_universe(control部分)
- 章节结构:
- 14.1 控制系统架构
- 14.1.1 控制模块组织
- 14.1.2 控制周期与延迟
- 14.2 纯跟踪控制器
- 14.2.1 纯跟踪算法原理
- 14.2.2 参数调优
- 14.2.3 适用场景
- 14.3 MPC模型预测控制
- 14.3.1 MPC算法原理
- 14.3.2 车辆运动学模型
- 14.3.3 约束条件设计
- 14.3.4 求解器选择
- 14.4 PID控制器
- 14.4.1 PID原理
- 14.4.2 参数整定
- 14.4.3 抗饱和设计
- 14.5 横纵向解耦控制
- 14.5.1 横向控制(转向)
- 14.5.2 纵向控制(加速/制动)
- 14.5.3 横纵向协调
- 14.6 控制性能评估
- 14.6.1 跟踪误差分析
- 14.6.2 舒适性评估
- 14.6.3 控制稳定性
- 14.1 控制系统架构
第15章 车辆接口与系统管理
- 对应代码: universe/autoware_universe(vehicle/system部分), launcher/autoware_launch
- 章节结构:
- 15.1 车辆接口(Vehicle Interface)
- 15.1.1 CAN通信协议
- 15.1.2 底盘命令转换
- 15.1.3 车辆状态反馈
- 15.1.4 线控系统接口
- 15.1.5 车辆接口适配
- 15.2 系统管理与监控
- 15.2.1 系统状态监控
- 15.2.2 模块健康检查
- 15.2.3 性能监控
- 15.3 故障诊断与处理
- 15.3.1 故障检测机制
- 15.3.2 故障诊断算法
- 15.3.3 降级策略
- 15.4 应急管理
- 15.4.1 紧急接管
- 15.4.2 最小风险策略
- 15.4.3 安全停车
- 15.5 系统API(ADAPI)
- 15.5.1 ADAPI架构(基于autoware_adapi_msgs)
- 15.5.2 外部接口设计
- 15.5.3 API使用示例
- 15.6 启动与集成(Launch & Integration)
- 15.6.1 autoware_launch架构
- 15.6.2 启动文件组织
- 15.6.3 场景配置管理
- 15.6.4 参数覆盖机制
- 15.7 仿真测试
- 15.7.1 仿真测试框架
- 15.7.2 场景测试
- 15.7.3 回归测试
- 15.8 日志记录与回放
- 15.8.1 ROS bag记录
- 15.8.2 日志分析工具
- 15.8.3 问题复现流程
- 15.1 车辆接口(Vehicle Interface)
