打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
01 自动驾驶系统 - 百度阿波罗平台学习笔记

高清地图

高清地图属于机器人地图

道路网的精确三维表征,如十字路口布局、路标位置及各种其他语义信息

厘米级(普通地图只能达到米级,一般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博主「我爱露营车」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Maple_Lu1986/article/details/81276944

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
异型工件全局逼近NURBS曲线焊接轨迹生成的研究
摸清自动驾驶车辆规划技术的第一步
知荐 | ADAS算法设计中的“运动规划”详解(一)
无人车是怎样一步步学会开车的? | 自动驾驶科普
[光源技术]多种光源的相关色温的计算方法概括比较
智能驾驶车辆横向跟踪控制与实车试验 | 厚势汽车
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服