自动驾驶概述

参考视频:【全】无人驾驶系列知识入门到提高

本文旨在对视频内容规划控制方面做学习记录,希望帮助有需要的人学习提高。不对处,望指正。

1 自动驾驶等级

L0~L5级,美国工程师协会定义的

L0,简单点理解,就是人来驾驶

L1,巡航定速(adaptive cruise control,ACC),巡航装置可以纵向控制车辆,加速减速;

L2,车道保持辅助(Lane keeping)系统可以纵向控制也可以横向控制汽车,但车是辅助的,人才是主导;

L2.5,可以提供简单路况下的变道能力,如目前的Tesla;

L2和L3之间有一个鸿沟,权责问题(出了事故,谁的责任 );

L3,在L2的基础上提供变道能力,在某一时间段内车是责任主体。如最新款奥迪A8

L4,相当于全无人驾驶,就是大部分时间由车来做主导。如waymo,Baidu;

L5,驾驶能力上,几乎和人类没有关系,l5的车辆没有方向盘以及脚踏板以及其他接管设备。

2 预测、决策、规划、控制

2.1 预测 Prediction

预测需要保证实时性准确性

  1. 基于状态进行预测:Kalman Filter、Particle Filter(这里状态预测可以这么理解,已知当前车子的速度,方向等等信息,通过两种滤波进行简单计算出下一个位置,得到的简单的预测)

  2. 基于车道序列进行预测

  3. 通过机器学习模型化简为分类问题

    --行人预测:无人车需要非常重视安全问题,其中人的安全最为重要,而行人的意图变化却是最难预测的,也是约束最少的。

2.2 决策规划 Planning

规划问题:导航路线规划和精细轨迹表述(全局规划、局部规划)

数学问题转换:将物理世界的地图转化为数学的图表达

--最优路径搜索:由于其他软件模块已经将不确定性进行了最大程度的消除,而最终决策规划模块又是对稳定性要求极高的模块,因此可以通过数学上的最优路径求解出确定解,但是遍历最优解是非常耗时间的

--需要考虑车辆的体感(舒适度)和安全性

评:需要在时效性和有效性做出平衡,因为花很长时间来找最优解,对于行驶中车辆来说,是非常危险的。

体感及时让乘客更舒适,比如经常急刹,容易导致呕吐,肯定没有人愿意坐的。

2.3 控制 Control

--输入信息:目标轨迹(planning_trajectory)、车辆状态(Vehicle State)、输出方向盘(steer)、油门(throttle)

--实现对无人车的控制,我们需要知道踩刹车和减速的关系,踩油门和加速的关系 等等,当无人车拿到一些控制学参数后,通过电脑对无人车进行控制

--控制是对整个驾驶最后的保障,因此,需要在任何情况下对准确性、稳定性和时效性要求都非常高,需要通过对车辆模型精细化描述,并进行严格的数学表达

--传统的控制算法PID可以满足车辆控制的要求,但是要考虑道体感和一些极限情况,控制算法优化也是目前无人车一个持续探讨的问题,如LQR、MPC等


不积硅步,无以至千里。

相关推荐
LGGGGGQ39 分钟前
嵌入式学习-PyTorch(4)-day21
学习
艾莉丝努力练剑2 小时前
【LeetCode&数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解
c语言·开发语言·数据结构·学习·算法·leetcode·链表
人生游戏牛马NPC1号3 小时前
学习 Flutter (三):玩安卓项目实战 - 上
android·学习·flutter
没有羊的王K6 小时前
SSM框架学习——day1
java·学习
林林要一直努力8 小时前
AOSP Settings模块问题初窥
android·学习·bug·android studio
liupenglove8 小时前
自动驾驶数据仓库:时间片合并算法。
大数据·数据仓库·算法·elasticsearch·自动驾驶
余大侠在劈柴11 小时前
pdf.js 开发指南:在 Web 项目中集成 PDF 预览功能
前端·javascript·学习·pdf
有谁看见我的剑了?13 小时前
iperf3 网络带宽测试工具学习
学习·测试工具
老神在在00113 小时前
SpringMVC2
java·前端·学习·spring·java-ee
老神在在00113 小时前
SpringMVC3
java·前端·学习·spring·java-ee