自动驾驶汽车:揭秘四大关键技术!
自动驾驶汽车:揭秘四大关键技术!
自动驾驶汽车正逐渐从科幻走向现实,其背后是环境感知、行为决策、路径规划和运动控制四大关键技术的协同作用。这些技术如同人类驾驶员的眼睛、大脑和手脚,让汽车能够在复杂环境中自主行驶。
环境感知:汽车的“眼睛”
环境感知是自动驾驶的基础,相当于驾驶员的眼睛。通过激光雷达、毫米波雷达、超声波雷达和车载摄像头等传感器,汽车能够“看到”周围的世界。
激光雷达(LiDAR)通过发射激光束来检测物体的距离、速度和位置,探测范围可达150-200米,分辨率远超其他传感器,特别适用于高精度定位和环境感知。然而,其高成本和对极端天气的敏感性限制了大规模推广。
毫米波雷达通过发射高频电磁波(30-300GHz范围)来探测障碍物,具备全天候、远距离探测的能力。4D毫米波雷达通过增加传感器通道数量,增强了对物体高度的探测能力,是未来发展的重要方向。
超声波雷达主要用于近距离探测,如泊车辅助和车距监测。尽管成本低且结构简单,但探测距离有限,需要在车身四周布置多个传感器以覆盖盲区。
车载摄像头通过将光信号转化为电信号,生成视频图像,用于识别行人、交通标志、车道线等视觉信息。然而,在夜间、雾霾等低能见度条件下性能会受到影响。
为了弥补单一传感器的局限性,多传感器融合技术应运而生。通过整合不同传感器的数据,系统能够更准确地感知周围环境,为后续决策提供可靠依据。
行为决策:汽车的“大脑”
行为决策相当于驾驶员的大脑,负责制定驾驶策略。在实际应用中,需要考虑各种约束条件,如安全性、稳定性、舒适性和时效性等。
安全性是首要考虑因素,需要避免与场景中的障碍物发生碰撞。稳定性则要求轨迹满足车辆的物理可行性和控制器的稳定性。舒适性关注乘员的体验,需要在满足安全性和稳定性的同时保证驾驶舒适度。时效性则要求在保证安全性和稳定性的同时,尽可能高效地到达目的地。
在具体场景中,如无保护左转,规则优先是基本原则。规则源于人实际开车的习惯,例如遵守左转让直行的规则,并考虑对方车速等因素,评估真实的不让行可能性。
路径规划:汽车的“导航仪”
路径规划分为全局路径规划和局部路径规划。全局路径规划类似于传统地图导航,而局部路径规划则关注车辆在具体场景中的行驶路径。
Dijkstra算法是一种经典的图搜索算法,以起始点为中心向外层层扩展,直到扩展到终点为止。虽然其搜索结果最优,但计算效率较低,随着图维度的增大,计算效率会明显变低。
A算法是一种启发式搜索算法,通过引入启发函数来加速搜索过程。它从起点开始,每次选择F值最小的节点进行扩展,直到找到终点。A算法在保证最优性的同时,显著提高了搜索效率。
快速探索随机树(RRT)算法是一种基于采样的规划算法,通过在配置空间中随机生成树状分支来寻找路径。它具有概率完备性,即只要有足够的时间,就一定能找到两点之间的路径。
插值曲线法通过在原始路径上的重新进入点和退出点之间拟合新的无碰撞点来创建新的子路径,获得的路径是无碰撞且平滑的。然而,与其他方法相比,计算时间较长。
运动控制:汽车的“手脚”
运动控制涉及横向和纵向控制,通过调整油门、刹车和转向等实现车辆的精确控制。在实际应用中,需要通过标定表来建立油门开度与速度、加速度之间的关系。
功率和转速之间的关系是:功率P等于转矩M乘以转速ω。电机的效率一般可以高达百分之九十,在高速区一般是遵循P=Fv的关系。无人驾驶车辆一般在电车上面部署,这里只需要弄清楚电机的转速扭矩曲线即可。
在2016.1版的carsim中没有电车车型,可以手动配置电机参数,模拟出来一个电车,具体操作如下:模型的输入是发动机的扭矩,输出是汽车的纵向速度和加速度以及曲轴的转速。
变速器的设置如下:设置如上,将传动比都设置成2,相当于没有变速器,将每个档位的转动惯量都设置成0.04,将每个档位的机械效率都设置成0.92。
道路设置如下:刹车/油门标定表的制作(重点)原理:给定一个恒定的油门,车跑起来会后,会输出一个速度和加速度。标定表就是找到油门和v、a之间的关系。
基于而言:如上,thr是油门,就是踩不同的油门,就得到不同的速度和加速曲线,例如上面当油门开度是0.3时,速度和加速度曲线就可以画出来,速度和加速度可以合并到一个图上。一般来说速度和加速度曲线的一般趋势都是上图的趋势,也就是速度越高,加速度越差,因为P=Mω,速度很大时,力矩就会变小。
传统做实验的方法有几个缺点:①试验路面必须平直并且足够长;②方向盘不能动,但是在实际试验过程中方向盘不可能完全不动;③无法解决车辆在行驶过程中质量变换的问题。乘用车还不是很明显,但在装载货物的大货车上面空载和满载时的标定表不适配,需要在不用载荷时标定,比较繁琐。现在比较新兴的标定方法就是使用深度学习模型把v、a和质量作为特征进行训练深度学习在线进行更新,可以适应不同质量。下面使用传统的方法来制作标定表:
在carsim中设置输入\输出进行制作标定表:由于要标定油门和刹车,所以输入是油门和刹车的制动压力。simulink模型如下:其中,thr是一个constant模块,将其使用thr参数,vx和ax是两个to workspace模块,可以将跑出来的结果导入的工作区中,这里首先标定油门,所以将刹车设置成0。
.m文件:这里主要要将to workspace模块中模块属性取消勾选单一仿真输出,否则会报错。 取消方法:to workspace模块中消除out.前缀的方法:simulink->建模->模型设置->数据导入/导出->单一仿真输出取消勾选->点击应用确定运行后,vx和ax等参数就传到了工作区:其中table就是最终的标定表:在2D-lookup table模块中进行如下设置:加速度控制仿真框图如下:加速度示波器中速度稳定在3一段时间后下降,这是因为电机特性,速度有限,不能再保持较高车速的情况下还有较大的加速度。
速度控制框图,设置期望速度是10,如下(如果控制效果不是很好,就吧油门标细一点):输出的速度信号的示波器图如下:这里的加速度设置为期望的车速和实际车速的差值,将这个相减的结果输入到加速度信号中。加速度不能直接使用输出的加速度,因为加速度和速度要匹配,这里规划的速度是10,初速度是0,从0到10,刚开始必然要有一个很大的加速度,让车加速,后期加速度逐渐减小,最好的结果就是速度到10时,加速度刚好是0。如果直接使用车的实际加速度,这个实际的加速度并不一定和车速相匹配。下面演示直接使用实际加速度信号和将加速度信号设置成时:可以看出当速度和加速不匹配时,跟踪速度的效果很差。相匹配的速度和加速度应该是当速度差距越大时,加速度越大,速度差距越小,加速度越小。直到速度到达期望速度时,加速度0。
刹车的标定表和油门标定表的制作方法相似:标定的simulink系统框图:首先在simulink中将油门设置成0,在carsim中将车辆的初速
这些关键技术共同推动了自动驾驶的发展,为未来的出行方式带来革命性的变化。随着技术的不断进步,我们有理由相信,完全自动驾驶的时代即将到来。