自动驾驶预测-决策-规划-控制学习(1):自动驾驶框架、硬件、软件概述

文章目录


前言:无人驾驶分级

以下为《汽车驾驶自动化分级》具体标准:

~
0 级驾驶自动化(应急辅助)

驾驶自动化系统不能持续执行动态驾驶任务中的车辆横向或纵向运动控制,但具备持续执行动 态驾驶任务中的部分目标和事件探测与响应的能力。

需要指出的是,0级驾驶自动化不是无驾驶自动化,0级驾驶自动化可感知环境,并提供报警、辅助或短暂介入以辅助驾驶员(如车道偏离预警、前碰撞预警、自动紧急制动等应急辅助功能)。

此外,不具备目标和事件探测与响应的能力的功能(如:定速巡航、电子稳定性控制等)不在驾驶自动化考虑的范围内。
1 级驾驶自动化(部分驾驶辅助)

驾驶自动化系统在其设计运行条件内持续地执行动态驾驶任务中的车辆横向或纵向运动控制,且具备与所执行的车辆横向或纵向运动控制相适应的部分目标和事件探测与响应的能力。对于1级驾驶自动化,驾驶员和驾驶自动化系统共同执行动态驾驶任务,并监管驾驶自动化系统的行为和执行适当的响应或操作。
2 级驾驶自动化(组合驾驶辅助)

驾驶自动化系统在其设计运行条件内持续地执行动态驾驶任务中的车辆横向和纵向运动控制,且具备与所执行的车辆横向和纵向运动控制相适应的部分目标和事件探测与响应的能力。与1级类似的是,对于2级驾驶自动化,驾驶员和驾驶自动化系统也是共同执行动态驾驶任务,并监管驾驶自动化系统的行为和执行适当的响应或操作。
3 级驾驶自动化(有条件自动驾驶)

驾驶自动化系统在其设计运行条件内持续地执行全部动态驾驶任务。

对于 3 级驾驶自动化,动态驾驶任务接管用户以适当的方式执行动态驾驶任务接管。
4 级驾驶自动化(高度自动驾驶)

驾驶自动化系统在其设计运行条件内持续地执行全部动态驾驶任务和执行动态驾驶任务接管。

对于 4 级驾驶自动化,系统发出接管请求时,若乘客无响应,系统具备自动达到最小风险状态的能力。
5 级驾驶自动化(完全自动驾驶)

驾驶自动化系统在任何可行驶条件下持续地执行全部动态驾驶任务和执行动态驾驶任务接管。对于5级驾驶自动化,系统发出接管请求时,乘客无需进行响应,系统具备自动达到最小风险状态的能力。此外,5级驾驶自动化在车辆可行驶环境下没有设计运行条件的限制(商业和法规因素等限制除外)。

`

L0,简单点理解,就是传统的人来驾驶。

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

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

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

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

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

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

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

当前,市场上L4人才需求最高,许多车企都是以这个级别作为目标的。

一、不同level的无人驾驶实例分析

1.L2级别

比如特斯拉,L2的视觉感知技术对应车道线和周边情况的观察效果很好,但是如果是复杂的十字路口,没有车道线的话,视觉方案就会存在弊端。

2.L3级别

L3级别的责任,是奥迪车企负责的,但是要进入自动驾驶状态的条件苛刻,否则仍然认为是手动驾驶。

3.L4级别

激光雷达成本高,开销巨大。但是激光雷达具有视觉不具备的好处,在夜间、雾天等极端天气的感知更加精准。

①如何在减少成本的情况下,实现类似全方位高精度的感知呢?

车路协同+边缘计算:借助RSU和OBU实现。

--RSU(路侧单元):比如红绿灯的摄像头确定的斑马线的行人位置信息,传送给无人车;
--OBU(车载单元):无人车上,接收RSU发送过来的信息模块

车路协同是指车辆与道路基础设施之间的信息交互和协同工作。通过车辆与交通基础设施之间的通信,可以实现实时的交通信息共享、交通管理和智能交通控制。例如,交通信号灯可以根据道路上的车辆流量和拥堵情况进行智能调整,以优化交通流畅度和减少交通拥堵。

边缘计算是一种分布式计算模型,它将计算资源和数据处理能力推向网络的边缘,靠近数据源和终端设备。边缘计算可以在离用户更近的位置进行数据处理和决策,减少数据传输延迟和网络带宽消耗。在车路协同中,边缘计算可以用于处理车辆和道路基础设施之间的通信数据,进行实时的数据分析和决策,以提供更高效的交通管理和服务。

综合起来,车路协同和边缘计算可以结合使用,通过车辆与道路基础设施之间的信息交互和边缘计算的数据处理能力,实现智能交通管理和优化。例如,车辆可以通过边缘计算节点与交通信号灯进行通信,交换交通信息并接收优化的信号灯控制策略,从而实现更顺畅的交通流动。

②路侧终归是辅助,主车的智能才是重中之重:融合深度学习

二、无人驾驶的责任问题如何界定量化?

RSS模型的目的是,为自动驾驶车辆与人类的责任概念提供具体可衡量的参数,并通过对所记录在案的交通数据涉及行为和环境进行分析统计,为自动驾驶汽车界定一个可计量的"安全状态"。如果有了这个规则,软件能偶做出最安全的决策。

三、自动驾驶研究的编程语言

①C++:高效、实时性强

C++:C++ 是一种高效且功能强大的编程语言,被广泛用于自动驾驶系统的开发。它提供了对硬件的底层访问和控制,适合实现实时的感知、决策和控制算法。

②Python:开发门槛低、库丰富、易于深度学习

Python:Python 是一种简洁易读的编程语言,被广泛用于自动驾驶系统中的数据处理、机器学习和人工智能算法的开发。Python 的丰富的库和框架使得开发者可以快速实现各种算法和模型。

③matlab:同python、计算能力强

MATLAB:MATLAB 是一种用于科学计算和数据分析的编程语言和环境,也被广泛用于自动驾驶系统的研究和开发。MATLAB 提供了丰富的工具箱和函数,用于开发和测试感知、控制和决策算法。

④ROS:机器人操作系统。自动驾驶可以认为是轮式智能机器人,但不同的是,自动驾驶车辆更专注于在道路上进行安全和高效的交通运输,而轮式智能机器人更专注于在室内或特定环境中执行特定任务。所以自动驾驶核心问题是处理数据的运行速度,即实时性。

ROS(Robot Operating System):ROS 并不是一种编程语言,而是一个机器人操作系统的框架,支持多种编程语言,如C++、Python等。ROS 提供了一套用于构建自动驾驶系统的工具和库,简化了开发过程。

四、L4自动驾驶系统架构:软件与硬件

检测区:如GPS、IMU、雷达、摄像头

感知区:定位、物体识别、物体追踪

决策区:路径规划、行为预测、障碍物避让

底层的话,就是软件上的操作系统和硬件上的硬件层。同时会与云端的地图、仿真器、模型训练和数据处理相融合。

硬件

1 感知传感器:

--摄像头:广泛应用在物体识别和物体追踪场景,比如车道线检测,交通灯识别等等,一般无人车都安装了环视多枚摄像头

--激光雷达:用于障碍物位置识别、绘制地图、辅助定位等,其准去率非常高,很多方案都将激光雷达作为主传感器使用

--毫米波雷达:阴雨天、雾霾天气能够辅助感知获取物体位置和速度,观测距离远但误检较多

--超声波:近处高敏度传感器,常用于作为安全冗余设备检测车辆的碰撞安全问题

2 定位系统传感器:

--IMU:实时测量自身的位姿,200Hz或者更高。包含了三个单轴的加速度计和三个单轴的陀螺仪;加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺仪检测载体相对导航坐标系的角速度信号

--GNSS:指的是日常说的GPS,无人车一般使用RTK(载波相位差技术)进行定位,频率较低,10Hz左右。

软件

1)HMI:可视化驾驶舱内显示,这个也比较多,比如QT、OLED、LCD显示等

2)操作系统OS

--RTOS:实时操作系统,这个在嵌入式领域已经接触过了。

--QNX:类Unix系统,具有强实时性,符合车规级的实时操作系统

--RT Linux: Linux内核补丁,通过软件实时进行监控。(当前2.x版本道4.x版本都有RT补丁)

3)Framework:

--ROS:B->M(自动驾驶的软件框架主流采用ROS)

--其他的有,YARP、Microsoft Robotic、Moos、Cybertron

(ROS虽然是主流,但是其分布式的架构,存在不能点对点通信的问题,其他里面的有些是针对此而补足的。但是,不可否认,ROS还是最优秀的)

4)高精地图 HD Map(High Dimensional)

--不同于导航地图,最大特点就是高纬度和高精度

--道路网的的准确三维表征,如交叉路口布局和路标位置

--地图语义信息,如道路的速度限制、左转车道开始位置
高精地图的作用:

--导航地图只能达到米级精度,高精地图需要能够达到厘米级的精度

--高精地图坐标系:WGS84、墨卡托坐标系

--高精地图提供了其他Level4模块的数据支持

--提供了很多准确的静态物体的信息

--定位可以用于计算相对位置

--帮助传感器缩小检测范围,缩小感兴趣(设备最优的工作范围)区域ROI(可以提高传感器的工作效率)

--计算道路导航信息

--帮助车辆识别道路的确切中心线

评:当前的Level4级别的,都是基于高精地图来做的开发

5)定位 Localiztion

--无人车最重要的一步就是知道自己在哪

--INS:Inertial Navigation System 惯性导航系统

--IMU 获取自身状态(加速度和角速度)后通过状态矩阵递推下一时刻
如果没有矫正信息的话,这种状态递推会随着时间不断累计误差,导致最终位置发散

解决定位中IMU的累计误差的方法:

--RTK:载波相位差分系统,如GNSS(GPS)

--RTK多了一个静态基站(自身位置已知,与卫星的精确位置关系也是已知的,当实时卫星发送信号给基站,会得到一个测量值,测量值与精确值有一个偏差值),无人车也接受了卫星信号,也得到一个测量值,如果基站和无人车的距离不是很远时候,可以使用基站的偏差值,对卫星与无人车之间的干扰信号进行差分抹平,从而获取更准确的位置
RTK通过较低的更新频率提供相对准确的位置信息,INS则以较高的频率提供准确性较差的姿态信息。通过Kalman Filter 整合两类数据获取各自优势,合并提供出高准确性的实时信息

--几何定位:激光雷达、摄像头、高精地图

--利用激光雷达或者图像信息,可以通过物体匹配对汽车进行定位。将检测的数据与预先存在的高精地图之间匹配,通过比较获取无人车在高精地图上的全球位置和行驶方向

--迭代最近点(ICP)\直方滤波(Histogram Filter)

五、自动驾驶的软件研究问题

感知的四大任务可以总结为:检测、分类、跟踪、分割

a、感知(perception)

图像、点云、雷达反射值:

--学习方式:监督学习、半监督学习、强化学习

--R-CNN系列、YOLO、SSD(这几个都是深度学习的经典算法)

前融合,指的是将多传感器的基础数据进行融合

后融合,指的是,将任务分割后,选择对应的传感器的数据作为标准值,比如障碍物探测选择lidar,障碍物类型分类则选择camera

LiDAR和Radar在自动驾驶系统中通常结合使用,以获得更全面和准确的环境感知。LiDAR提供了高精度的三维点云数据,可以用于建立环境地图和检测细节;而Radar则提供了更长的探测距离和对恶劣天气的适应性,可以用于远距离物体检测和运动跟踪。

b、预测(Prediction)

--实时性和准确性

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

--基于车道序列进行预测

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

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

c、决策与规划

d、控制

相关推荐
不太可爱的叶某人35 分钟前
【学习笔记】MySQL技术内幕InnoDB存储引擎——第5章 索引与算法
笔记·学习·mysql
岁岁岁平安37 分钟前
Redis基础学习(五大值数据类型的常用操作命令)
数据库·redis·学习·redis list·redis hash·redis set·redis string
知识分享小能手2 小时前
Vue3 学习教程,从入门到精通,使用 VSCode 开发 Vue3 的详细指南(3)
前端·javascript·vue.js·学习·前端框架·vue·vue3
HuggingFace3 小时前
Hugging Face 开源机器人 Reachy Mini 开启预定
人工智能
pay4fun3 小时前
2048-控制台版本
c++·学习
企企通采购云平台3 小时前
「天元宠物」×企企通,加速数智化升级,“链”接萌宠消费新蓝海
大数据·人工智能·宠物
超级小忍4 小时前
Spring AI ETL Pipeline使用指南
人工智能·spring
张较瘦_4 小时前
[论文阅读] 人工智能 | 读懂Meta-Fair:让LLM摆脱偏见的自动化测试新方法
论文阅读·人工智能
知识分享小能手4 小时前
Bootstrap 5学习教程,从入门到精通,Bootstrap 5 表单验证语法知识点及案例代码(34)
前端·javascript·学习·typescript·bootstrap·html·css3
巴伦是只猫5 小时前
【机器学习笔记 Ⅲ】4 特征选择
人工智能·笔记·机器学习