在七月算法上报了《无人驾驶实战》课程,老师讲的真好。好记性不如烂笔头,记录一下学习内容。 课程入口,感兴趣的也可以跟着学一下。
—————————————————————————————————————————
无人驾驶汽车的定义:
无人驾驶汽车是可载人的移动智能机器人,通过丰富感知系统和智能的行为系统实现高效率高可靠性的驾驶能力。
无人驾驶与自动驾驶的关系:
无人驾驶:完全不依赖于人的行为
自动驾驶:某些情况下可以加入人的参与和监督
无人驾驶是自动驾驶的一个真子集。
未来出行的三大趋势:共享、新能源与自动驾驶。
无人驾驶的发展历程
探索阶段(2004年以前)
1921年, 第一辆无人驾驶(实为遥控)汽车在美国诞生
1956年,通用汽车第一辆具备了自动导航系统的汽车,采用车路协同设备实现无人驾驶(预埋的线缆与车端的接收器进行电子通讯)
FireBird II
1921年, 第一辆无人驾驶(实为遥控)汽车在美国诞生
1956年,通用汽车第一辆具备了自动导航系统的汽车,采用车路协同设备实现无人驾驶(预埋的线缆与车端的接收器进行电子通讯)
1960年,斯坦福大学研究出第一个全自主轮式机器人Shakey,具备完整感知、规划和控制能力,也是后来机无人车的基础
Shakey
1990年,CMU的导航实验室 NavLab也是著名的无人驾驶发源地之一。
1995年,完成了从匹兹堡到圣地亚哥的 “ No Hands ” 跨越美国之旅
1995年,戴姆勒奔驰发布了尤里卡·普罗米修斯计划,联合研发无人驾驶技术,这是第一个大范围联合开发的自动驾驶项目,整个欧洲大学研究院都有参与
NavLab 5
S500
发展阶段(2004 – 2016年)
2004年,美国DARPA( 美国国防高级研究计划局 ) 无人车挑战赛:要求无人车成功穿过240公里的沙漠道路
2005年,斯坦福大学的Stanley成功夺冠,该团队由Sebastian Thrun带领。这次比赛中,大量车使用了激光雷达、高精度的地理信息系统和惯性导航系统
2007年,这次DARPA城市挑战赛 (Urban Challenge),这次由Chris Urmson带队的CMU成功夺冠。 这三次挑战赛中,真正引领了无人车的发展,各大公司都是从这些比赛中逐渐发展起来的,比如Mobileye,Velodyne,Google X
Stanley
2010年,Google X实验室做了他们第一辆无人车丰田Pirus,通过顶上的64线雷达,建立高分辨率的三维环境模型(SLAM)
2014年,Google无人车Firefly诞生,取消了方向盘,仅用手柄进行调试和接管
Google Pirus
Firefly
2011年,中国国防科技大学自动化系完成了自研的红旗 HQ3 无人驾驶汽车, 也拿到了当年“智能车未来挑战”大赛的冠军
2015年, 百度自动驾驶部门正式成立, 与宝马合作的无人车进行了北京开放道路的试验
百度-宝马无人车
成熟阶段(2016以后)
AlphaGo的原因,投资界对AI开始疯狂追捧,对无人车更是热情高涨。同时,无人驾驶也真正进入中国大众视野
2016年,Tesla自动驾驶因为一起致死的交通事故,与Mobileye分道扬镳,开始了自动驾驶高速投入
2016年,Waymo正式从Google拆分出去,开始了独立运营
2017年更是百花齐放,创业公司层出不穷
2017年百度Apollo项目正式开源
2018年,Waymo无人车对外商业运营
Pacifica
2019年,预计有更多的公司开始对外商业运营
2019年,物流运输、园区接驳等细分场景也将真正开始落地应用 车厂对未来大规模普及无人驾驶的时间预估,最晚也不超过2040年
我们这一代的生活中,无人驾驶技术的普及将成为极大概率的事件
自动驾驶的等级划分:
L2级及以下需要驾驶员对事故负责,L3及以上由车企负责。
L2级别的代表是特斯拉
Tesla: L2 高级辅助驾驶
- 驾驶员需要对安全负责
- 启动条件要求不高(速度和车道线)
- 早期采用Mobileye提供感知技术
- 无法解决复杂路口问题
- 主动变道需要人提供变道指示
L3的代表为奥迪A8
- L3 自动驾驶自动驾驶期间,车辆负全部责任
- 自动驾驶能力进入条件苛刻(多车道线、60km/h以下、天气良好)
- 目前智能性最好的量产车
- 暂时没有主动变道能力
- 遇到紧急情况或者不符合条件的情况需要通知驾驶员接管,有10s时间
各级别车企的名单
L4级别的概念车
Waymo:
- L4 全自动驾驶
- 曾有一段时间取消了安全员
- 商业运营阶段
- 世界最领先的自动驾驶能力
- 成本昂贵
Nuro:
- 特殊场景下的Level 4能力
- 物流配送车
- 成本要求不能太高
- 可以不用考虑乘坐体感
- 相关物流公司都有布局,比如:京东、美团、阿里菜鸟等等
L4级别自动驾驶的实现思路
- 实现思路:V2X:Vehicle to Everything(车路协同): V2V(车辆), V2I(公共设施), V2P(行人)
- 边缘计算:RSU(路侧单元)、OBU(车载单元)
- 5G通信能力:LTE-V协议,专门针对车间通讯的协议,可兼容4G-5G
- 路侧智能:强大的感知能力(百度ACE计划)
- 主车智能:近些年深度学习填补上了最后一块软件难题
- 感知能力:高度复杂冗余的传感器
- 决策能力:大数据下的智能决策
- 高精地图:丰富的地图信息数据
- 定位:精准的位置获取能力 通过学习人类开车的方式,来构建整个主车智能系统
权责问题也是一个重要的问题
RSS模型(Responsibility-Sensitive Safety)责任敏感安全模型
为自动驾驶汽车与人类的责任概念提供具体可衡量的参数,并通过对所有记录在案的交通事故所涉及的行为和环境进行分析统计,为自动驾驶汽车界定了一个可计量的“安全状态”
“软件能够做出最安全决策”
L4自动驾驶的系统架构
涉及的范围很广。
涉及到的传感器
感知系统传感器:
摄像头:广泛用于物体识别和物体追踪场景,比如车道线检测、交通灯识别等,一般无人车都安装环视多枚摄像头
激光雷达:用于障碍物位置识别、绘制地图、辅助定位等,其准确率非常高,很多方案中将激光雷达作为主传感器使用
毫米波雷达:阴雨天、雾霾天能够辅助感知获取物体的位置和速度,观测距离远但误检较多
超声波:近处高敏感度传感器,常用于作为安全冗余设备检测车辆的碰撞安全问题
定位系统传感器:
IMU:实时测量自身的姿态,200Hz或更高。包含了三个单轴的加速度计和三个单轴的陀螺仪,加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺检测载体相对于导航坐标系的角速度信号
GNSS:也是大家常听到的GPS,无人车一般使用RTK(载波相位差分技术)技术来进行定位,频率相对较低,10Hz左右
车载计算单元(IPC):
车载计算单元(IPC)高效连接计算单元内部各计算设备,连接外部传感器的信息输入和存储
冗余设计,以防止单点故障
需要考虑整体的车规、电磁干扰和振动方面的设计以及 ISO-26262 标准的要求
ISO-26262: 一个硬件达到了ASIL D级别的要求,那么它的故障率是10FIT,即10亿个小时里面出一次故障, 汽车行业在安全方面可以做到的极限(迭代速度慢)
自动驾驶线控系统:汽车的控制是由一些简单命令完成的,而不是由物理操作完成的。
这一部分相当于人的手和脚 传统汽车的这些控制由液压系统和真空助力泵协助完成,自动驾驶汽车的线控需要用电控化的零部件来完成,如电子液压制动系统 林肯MKZ拥有完善的电气化设备和接口
自动驾驶软件功能:
感知系统,定位能力, 决策规划, 实时控制
操作系统 OS
RTOS:实时操作系统
QNX:类Unix系统,具有强实时性,符合车规级的实时操作系统
RT Linux:Linux内核补丁,通过软实时进行监控,目前从2.x版本到4.x版本均有RT补丁
Framework:
ROS(机器人操作系统):B->M
YARP、Microsoft Robotics、MOOS、Cybertron
ROS是集中式的,Master挂了整个系统无法工作。Cybertron是百度开发的分布式系统, 稳定一些
高精地图 HD Map(High Dimensional)
- 不同于导航地图,最大的特点就是高维度和高精度
- 道路网的精确三维表征,如交叉路口布局和路标位置
- 地图语义信息,如道路的速度限制、 左转车道开始的位置 、
- 导航地图只能达到米级精度,高精地图需要能够达到厘米级的精度
- 高精地图坐标系: WGS84、墨卡托坐标系
高精地图的好处:
- 高精地图提供其它Level 4模块的数据支持提供了很多准确的静态物体的信息
- 定位可以用于计算相对位置
- 帮助传感器缩小检测范围,缩小感兴趣区域ROI
- 计算道路导航信息
- 帮助车辆识别车道的确切中心线
定位 Localization
无人车最重要的一步就是知道自己在哪
INS: Inertial Navigation System 惯性导航系统 IMU 获取自身状态(加速度和角速度)
后通过状态矩阵递推下一时刻位置, 但是如果没有校正信息的话,这种状态递推会随着时间不断累计误差,导致最终位置发散
RTK:载波相位差分系统GNSS(GPS)
RTK多加了是一个静止基站,它同样也收到定位卫星的信号。无人车与RTK相隔不太远的情况下,对二者之间的干扰信号用差分抹平
RTK通过较低的更新频率提供相对准确的位置信息,INS则以较高的频率提供准确性较差的姿态信息。通过使用Kalman Filter整合两类数据获取其各自优势,合并提供出高准确性的实时信息
几何定位: 激光雷达 摄像头 高精地图
利用激光雷达或者图像信息,可以通过物体匹配来对汽车进行定位。将检测的数据与预先存在的高精地图之间匹配,通过这种比较可获知汽车在高精度地图上的全球位置和行驶方向
感知 Perception四大基础任务
各传感器之间各有特点
一般需要传感器融合,又分为前融合与后融合。前融合是原始数据融合,后融合是检测结果的融合。
预测Prediction
要求实时性 和 准确性
基于状态进行预测:Kalman Filter和Particle Filter
基于车道序列进行预测:通过机器学习模型化简为分类问题
行人预测:无人车需要非常重视安全问题,其中人的安全最为重要,而行人的意图变化却是最难预测的,也是约束最少的
决策规划 Planning
包含导航线路规划 和 精细轨迹表述
- 数学问题转换:将物理世界的地图转化为数学上的图表达
- 最优路径搜索:由于其他软件模块已经将不确定性进行了最大程度的消除,而最终决策规划模块又是对稳定性要求极高的模块,因此可以通过数学上的最优路径求解出确定解,遍历最优解是非常耗时的。
- 需要考虑车辆的体感和安全性
控制 Control
输入信息:目标轨迹、车辆状态;
输出:方向盘、油门 实现对无人车的控制,我们需要知道踩刹车和减速的关系、踩油门和加速的关系等,当无人车拿到一些控制学参数后,通过电脑对无人车的控制
控制是对整个驾驶最后的保障,因此需要在任何情况下对准确性、稳定性和时效性要求都非常高,需要通过对车辆模型精细化描述进行严格的数学表达
传统的控制算法PID可以满足车辆控制要求,但是考虑到体感和一些极限情况,控制算法优化也是目前无人车的一个持续探讨的问题,如LQR、MPC等
总结:
无人驾驶的四大问题。