自动驾驶软件有哪些功能?自动驾驶用到哪些AI算法?
扫描二维码
随时随地手机看文章
自动驾驶是正在发展的产物,大家对于自动驾驶的期盼程度也是越来越高。为增进大家对自动驾驶的认识,本文将对自动驾驶软件包含的功能、自动驾驶用到的AI算法以及自动驾驶和无人驾驶的区别予以介绍。如果你对自动驾驶具有兴趣,不妨继续往下阅读哦。
一、自动驾驶软件包含的功能
定位和地图:利用传感器数据和感知输出,本地化映射模块不仅可以估计自动驾驶汽车位置,还可以构建和更新三维世界地图。自从同步定位和地图(SLAM)的概念在1986年引入以来,就得到了业内人士的普遍关注。最先进的SLAM系统通常分为基于过滤器的SLAM和基于优化的SLAM。基于过滤的SLAM系统是由贝叶斯滤波得到的,通常通过增量集成传感器数据,迭代估计自动驾驶汽车姿态并更新三维环境地图。最常用的滤波器有扩展卡尔曼滤波器(EKF)、无迹卡尔曼滤波器(UKF)、信息滤波器(IF)和粒子滤波器(PF)。另一方面,基于优化的SLAM方法首先通过寻找新观测值与地图之间的对应关系来识别问题约束。然后,计算和改进自动驾驶汽车的姿势,并更新3D地图。基于优化的SLAM方法可以分为两个主要分支:Bundle Adjustment (BA)和graph SLAM。前者利用高斯-牛顿法、梯度下降等优化技术,通过最小化误差函数,联合优化三维地图和摄像头姿态。后者将定位问题建模为一个图形表示问题,并通过寻找不同车辆姿态的误差函数来求解。
预测:预测模块分析其他交通代理的运动模式,预测自动驾驶汽车未来的运动轨迹,使自动驾驶汽车能够做出合适的导航决策。目前的预测方法主要分为两大类:基于模型的预测方法和基于数据驱动的预测方法。前者根据基本的物理系统运动学和动力学,通过传播其运动状态(位置、速度和加速度)来计算自动驾驶汽车未来的运动。例如,奔驰的运动预测组件使用地图信息作为约束来计算自动驾驶汽车的下一个位置。卡尔曼滤波在短期预测方面表现良好,但在长期预测方面表现不佳,因为它忽略了周围的环境,比如道路和交通规则。在此基础上,建立了基于引力和斥力的行人运动预测模型。近年来,随着人工智能和高性能计算的发展,许多数据处理技术,如隐马尔可夫模型(HMM)、贝叶斯网络(BNs)和高斯过程(GP)回归,用来预测自动驾驶汽车状态。近年来,研究人员利用逆强化学习(IRL)对环境进行建模,比如,采用逆最优控制方法对行人路径进行预测。
规划:规划模块根据感知、定位、映射以及预测信息确定可能的安全自动驾驶汽车导航路径。规划任务主要分为路径规划、机动规划和轨迹规划。路径是自动驾驶汽车应该遵循的几何路径点列表,以便在不与障碍物碰撞的情况下到达目的地。最常用的路径规划技术有:Dijkstra、动态规划、A*、状态格等。机动规划是一个高层次的自动驾驶汽车运动表征过程,因为它同时考虑了交通规则和其他自动驾驶汽车状态。在找到最佳路径和机动规划后,必须生成满足运动模型和状态约束的轨迹,这样才能保证交通的安全性和舒适性。
控制:控制模块根据预测的轨迹和估计的车辆状态向油门、刹车或转向扭矩发送适当的命令。控制模块使汽车尽可能接近计划的轨迹。控制器参数可以通过最小化理想状态和观测状态之间的误差函数(偏差)来估计。比例积分导数(PID)控制、线性二次调节器(LQR)控制和模型预测控制(MPC)是最常用的最小化误差函数的方法。PID控制器是一种利用比例项、积分项和导数项使误差函数最小的控制回路反馈机构。当系统动力学用一组线性微分方程表示,成本用二次函数表示时,利用LQR控制器使误差函数最小化。MPC是一种基于动态过程模型的先进过程控制技术。这三种控制器各有优缺点。自动驾驶汽车控制模块一般采用上述方法的混合模式。例如,初级自动驾驶汽车使用MPC和PID来完成一些低级反馈控制任务,例如应用变矩器来实现所需的车轮转角。百度Apollo采用了这三种控制器的混合的模式:PID用于前馈控制、LQR控制轮角、MPC对PID和LQR控制器参数进行优化。
二、自动驾驶用到的AI算法
AI算法是支撑自动驾驶技术最关键的部分,目前主流自动驾驶公司都采用了机器学习与人工智能算法来实现。
自动驾驶域算法可以分为感知算法、融合算法、决策算法和执行算法。感知算法将传感器数据转换成车辆所处场景的机器语言,包括物体检测、识别和跟踪、3D环境建模、物体的运动估计等。
融合算法的核心任务是将不同传感器获取到的基于图像或基于点云等不同维度的数据进行量纲统一处理。随着L2+自动驾驶对多传感器融合精度的要求提升,融合算法将逐渐前向化(前融合),其层级将逐渐从域控制器等后端部件前移至传感器层面,在传感器内部即完成融合,以提升数据处理的效率。
决策算法,即在基于感知算法的输出结果,给出最终的行为动作指令,包括汽车的跟随、停止和追赶等行为决策,以及汽车的转向、速度等动作决策,路径规划等。
三、自动驾驶和无人驾驶的区别
自动驾驶和无人驾驶的区别在于,自动驾驶是有人来决定驾驶行为的,而无人驾驶则是完全由机器来负责驾驶行为,也称之为自主驾驶。很久以前后就已经开始研究自动驾驶技术,并且现在大量汽车都是应用了主动驾驶技术,如我们在高速上经常使用的ACC自适应巡航功能就是属于自动驾驶的一种。
简单来说,自动驾驶主要是辅助驾驶功能,主体驾驶行为是人来操控的,需要驾驶员来使用的。而无人驾驶则完全以机器为主题,我们人在车内仅作为乘坐者存在,无需控制车辆,机器实现全面的自主驾驶。
以上便是此次带来的自动驾驶相关内容,通过本文,希望大家对自动驾驶已经具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!