原文链接:https://blog.csdn.net/Maple_Lu1986/article/details/81276944
高清地图属于机器人地图
道路网的精确三维表征,如十字路口布局、路标位置及各种其他语义信息
厘米级(普通地图只能达到米级,一般1-2米)
VSLAM定位:预处理、坐标变换、数据融合
帮助感知:提前在远距离的位置提供ROI区域,供视觉或其他传感器缩小搜索范围
增强视觉的TSR功能:提前知道各种限速信息、车道信息(车道线中心、左转车道、右转车道等)
Apollo地图:道路定义、交叉路口、交通信号、车道规则,例如红绿灯的位置和高度
制图流程:数据采集、数据处理、目标检测、人工验证、地图发布
%%%%%%%%%%%%%%%%%%%%%%%%%%%
定位
对比来自HD Map道路网周围的路标坐标,以及根据车辆坐标系算出来的路标坐标,并对比;
GNSS系统的卫星星座的三角测量,测量车辆位置+车速
RTK:车辆接收来自卫星星座的定位坐标;地面基站与卫星星座通信,获取卫星星座的定位误差;地面基站将误差传送给车辆,车辆利用定位坐标+误差信息,一起考量,获得精度为10厘米级别的定位精度。缺点:更新速率低
IMU=三轴加速度计+陀螺仪,缺点:实时精度高,累计误差大。
Lidar:测量车辆位置+heading
INS惯性导航=RTK+IMU:预测下一周期位置并更新;
卡尔曼滤波整合GNSS定位+激光雷达定位+INS惯性导航(GNSS+IMU),其中INS惯性导航用于卡尔曼滤波的预测步骤中;GNSS定位+激光雷达定位用于卡尔曼滤波的测量结果更新步骤中。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
感知
计算机视觉:
检测(Detection)
分类(Classification):图像分类器,各种分类器
输入图像
预处理
提取特征
放入分类模型
跟踪(Tracking)
语义分割( Segmentation )
计算机视觉处理摄像头图像:
图像对于计算机来说,只是像素矩阵
图像高度、宽度和图像深度(RGB有三个深度,红、绿、蓝三个颜色深度)
图像的灰度化,就是减少图像空间的深度
计算机视觉处理激光雷达图像:
将激光雷达点云图像化
机器学习:模型和训练模型
人工神经网络工作步骤:前馈(按照原有模型算一遍,得到一个output)、误差测量、反向传播(将对比出来的误差,反向传播,修正各个feature的权值)
卷积神经网络(CNN):
检测与分类
跟踪
分割
Apollo感知系统:
YOLO 检测模块
感知系统架构
传感器数据比较:
感知融合策略:卡尔曼滤波实现Radar和Lidar的目标级别的融合
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
预测
预测其他目标的行驶路径,预测模块要回自学习
基于模型(Model-Based)的预测:找到已知可能的轨迹模型,跟踪车辆的轨迹,看后续事件最有可能往哪个轨迹模型中接近;
数据驱动(Data-Based)的预测:使用机器学习来训练模型;
Apollo使用基于车道序列的模型预测方法,计算可能性:
Lane Sequence 车道段序列
Obstacle Status 一系列的跟踪目标状态
追踪目标,会使用航向角、位置、速度、加速度等目标信息追踪预测目标的行驶路径;
利用递归神经网络来识别目标类型来分别预测车道段+障碍物目标,并结合起来进行进一步RNN训练,获得最终的预测模型
训练的方法:用RNN的output输出对比真值标记(Ground Truth),利用反向传播来训练网络
训练出最有可能的B点后,根据A当前点到B目标点的轨迹可以根据当前车的运动状态(速度、加速度)拟合出一条最可能的运行轨迹,来最终获得追踪目标车辆的预测行驶轨迹。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
路径规划
全局路径规划:点对点的路线规划,单纯的空间曲线;Apollo算法使用A*算法来实现全局路径规划。
局部路径规划:运动轨迹水平的轨迹规划,不仅是空间曲线,也是时间曲线
三个路径规划输入:
地图:公路网及实时交通信息
当前位置:在地图中的当前位置
目的地:在地图中的目标地坐标
轨迹点包含的信息:
轨迹点的坐标;
矢量速度;
预计达到下一坐标的时间
轨迹规划:
三维轨迹生成=二维点坐标+时间戳;
矢量速度保证车辆按照时间戳的要求到达下一个轨迹点;
成本函数:设置惩罚因子,如偏离车道中心的程度、发生碰撞的几率、车速限制、舒适性(例如实现某个轨迹规划需要很大的加速度才能完成,那么这个过大的加速度就影响舒适性)
成本函数在不同场景中的区别:例如在停车场,与在高速公路上,成本函数的各个因子的设置,一定是不一样的。
坐标变换:百度的Apollo平台使用Frenet Coordinate(弗莱纳坐标系);德尔福公司常说的Curvillinear Coordinate System(曲线坐标系)属于简化了的弗莱纳坐标系。
轨迹-速度解耦规划:
轨迹规划:利用成本函数计算单纯的路径轨迹;
路径生成与选择:
将路面分段,并在各段(区域)中,选择随机采样点,连成多条路径;
根据成本函数(包含距离车道中心线、距离障碍物距离、车速和车道线曲率变化及车辆压力等约束因素),删选最小成本路径。
速度规划:利用轨迹点的一系列“速度曲线”来控制车速;
选择速度曲线:利用ST图,选择车速;S,纵向位移,T,时间
将速度曲线ST图网格化,道路离散化;将障碍物绘制在ST图中不同的时间域中(在t0到t1时间域内,会占据s0到s1的前方距离范围),速度曲线不应穿越ST图中的该矩形区域;利用各种约束(法规约束、车辆运动极限约束、障碍物距离限制)组成的优化算法,来选择最佳速度曲线
二次规划:将离散曲线平滑化
三维轨迹生成(轨迹曲线与速度曲线的合并,基于Lattice规划):
三个维度:纵向维度、横向维度、时间维度
具有时间戳的纵向轨迹,ST轨迹,纵向+时间维;
ST轨迹的终止状态:巡航状态、跟车状态、停止状态
相对于纵向轨迹的横向偏移,SL轨迹,横向+时间维;
终止状态应与车道线中心线重合,即heading angle与offset的一阶导数和二街倒数都为零
合并后,用成本函数选择最佳路线。
将ST和SL轨迹点都转化为笛卡尔坐标系,然后,按照S值来匹配T和L;
%%%%%%%%%%%%%%%%%%%%%%%%%%%
车辆控制算法
PID 控制器
优点:简单有效;
缺点:线性控制;只能针对横向控制或者纵向控制进行单独控制;无法将横向控制和纵向控制集成在一个控制器中控制;
LQR控制器
L-线性
X-term
误差
误差变化率
航向角
航向角变化率
U-term
steering
accel
brake
Q&R-最小化成本方程
MPC模型预测控制器
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
总结
1. Apollo使用ROS操作系统;
2. 百度基于自己做地图的背景,倾向于在自动驾驶系统设计过程中,尽量多的发挥高清地图的作用;
3. 感知模块倾向于采用神经网络算法;
4. 激光雷达的数据使用方式:
a. 在点云级别,转化为图像,与摄像头图像融合,获取更丰富的道路feature;
b. 在目标级别(Object Level),与毫米波雷达进行目标融合,并跟踪目标。
---------------------
作者:逯建枫
来源:CSDN
原文:https://blog.csdn.net/Maple_Lu1986/article/details/81276944
版权声明:本文为博主原创文章,转载请附上博文链接!