文章目录
- 前言
- 1 感知
- 2 计算单元(决策)
- 2.1 感知部分
- 2.2 决策部分
- 2.3 规划部分
- 3 控制
前言
读书笔记,内容参考《自动驾驶 汽车平台技术基础》第4章中的Apollo自动驾驶硬件架构(原文图4.20,不展开)和Auotoware(原文图4.39)开发平台介绍,有关Autoware介绍,可参考知乎:自动驾驶入门之----开源自动驾驶框架Autoware介绍。从自动驾驶平台功能展开来讲,基本的框架是一致的,实现的方法不一样。可以简单理解为输入(感知)-过程(决策)-输出(控制)。
1 感知
AutoWare中感知为包含摄像头/Lidar/IMU/GPS等。原文介绍只要有传感器的驱动软件/计划所有类型的传感器都可用于AutoWare。
Apollo感知除了刚才介绍的环境感知项目(含V2X),还增加驾驶人监控(摄像头_疲劳驾驶?,生物电传感器_感知手握方向盘?)和车辆运动的信号输入(速度和角速度传感器)。
2 计算单元(决策)
2.1 感知部分
(1) 定位
- Lidar扫描的点云数据+预先获取的三位地图(使用正态分布变换(NDT)算法或近点迭代(ICP)算法实现匹配),计算车辆全局坐标下的的(x,y,z,roll,pitch,yaw)定位(无联网地图更新?)。
(2)检测
- Lidar检测,从三位激光雷达读取点云数据,并提供基于LiDAR的物体检测功能(居于欧几里得聚类算法。为对集群进行分类,还支持基于DNN的算法,例如VoxelNet和LMNet)。
- 图像检测,读取摄像头的数据,并提供基于图像的对象检测功能(主要算法包括R-CNN/SSD/Yolo,旨在执行单个DNN以实现时事性能)。
- 图向跟踪,为图像检测的结果提供跟踪功能(基于Bwyond Pixels,投影在图像平面上的结果通过融合工具投影并与三维空间中的雷达检测结果相结合)。
- 融合检测,读取激光扫描仪和点云数据和相机的图像跟踪结果进行融合(将图像检测的部分分类信息介入激光雷达检测到的点云的聚类结果中)。
- 目标跟踪,基于目标检测来石碑对象的运动,进一步用于预测对象的行为和运动轨迹(基于卡尔曼滤波器,支持例子滤波算法)。
(3)预测
- 运动预测,使用上述目标跟踪结果预测物体未来运动轨迹(例如斑马线行人行人)。
- 碰撞预测,运动预测的结果是否与本车碰撞(需历史轨迹和本车信息输入)。
- 行为预测,使用与碰撞预测相同的输入预测本车超车或换道。
2.2 决策部分
决策部分是感知和规划模块之间的桥梁,依据感知结果进行驾驶行为决策, 由有限状态机表示以便选择合适的规划功能(目前的决策方法仍然基于规划)。
2.3 规划部分
分为全局和局部运动规划。全局通常在车辆启动/重启时制定,局部通常是根据状态变化实时更新。
(1)路径规划
- 全局路径,搜索目的地全局路径,该路线由路网宗的一组交叉点表示。
- 道路规划,组合全局路径搜索可行路径(发布一组路径点,每个路径点对应一条车道)。
- 路径点规划,用于生成目的地一系列轨迹点(只发布单个路径点)。
- 路径点制作,用于保存和加载手动制作的路径点。要将路径点保存到指定文件,可以在人为驾驶车辆时激活该定位部分。该路径点可从指定的文件加载,以便运动规划模块调用。
(2)运动规划
- 速度规划,从道路规划/路径点规划和路径点制作中订阅路径点以便更新速度规划,同时更加周围的车辆和道路要素(例如交通灯信号)进行速度规划。
- A Star算法,实现混合状态的搜索算法,可以用于避障/给定路径急转弯/停车场自由空间的路径规划。
- 轨迹规划,基于样条曲线/预定以参数表和ADAS Map信息在当前位置前方生成可行轨迹供选择(例避障/车道变换)。
- 路径点跟随,实现Pure Pursuit算法,生成一组平滑的速度和角速度曲线,通过均匀的切线运动将车辆运动到目标轨迹点(输出到车辆控制单元进行自动驾驶控制)。
3 控制
将速度/角速度/车轮角度/曲率信息通过车辆线控单元接口发线控制器,线控制器对车辆的转向和加减速控制。