前言
自动驾驶汽车,通过技术实现车辆自动驾驶,目的是减少驾驶疲劳、增强驾驶安全。
自动驾驶汽车按自动化程度可分5级:辅助驾驶、部分自动驾驶、条件自动驾驶、高度自动驾驶和完全自动驾驶。
完全的自动驾驶,可释放人出行驾驶时间,把汽车变成除家、办公室外的人的第三空间,在出行过程中办公和娱乐等。
车辆要实现自动驾驶,需要解决车辆在哪、往哪儿去、怎么去这三个基本问题。解决这些问题,涉及硬件平台、软件算法、交互、安全等多个领域和技术。本文将就相关技术做简要概述。
1. 系统架构
任何一个控制系统,都离不开输入、控制和输出三部分。自动驾驶系统也如此。
自动驾驶车辆,通过传感器感知周围环境信息,输入到计算平台处理,判断车辆位置和构建驾驶态势地图;根据驾驶态势图,对车辆运动进行行为决策、路径规划,再精准控制车辆底盘执行器实现自动驾驶。
从硬件上,自动驾驶系统包括:收集各种信息输入的传感器,对输入信息进行处理、对车辆运动进行规划和控制的计算平台,以及实现转向、制动、加速的底盘执行器。
从软件上,包括感知数据处理的感知层,对车辆运动规划、决策的规划层、对执行器精准控制的控制层。软件主要集成到计算平台中,部分感知数据处理放在智能传感器中。考虑到处理数据越来越大,对计算算力要求越来越高,后续数据处理有部分放到云端服务器的趋势。
2. 硬件平台
自动驾驶系统硬件,主要包括:智能感知、线控执行、计算平台三部分,分别对应于一般控制系统的输入、输出和控制。
智能感知包括:用于环境感知传感器,如毫米波、激光、超声波雷达和相机等;用于确定车辆位置的定位传感器,如全球卫星导航系统GNSS、惯性导航系统IMU;获取车辆本体数据的自感应传感器,如陀螺仪、车辆CAN总线等。
广义的讲,用于导航的高精度地图、与其他设备通信的V2X设备也是感知硬件之一。
计算平台,是对感知数据处理、进行规划决策并控制执行器。由于处理数据大、算法复杂,发展出了各自类型专用处理芯片,如图像处理芯片GPU、数字处理芯片DSP、可编程芯片FPGA和AI芯片等。
线控执行,是实现车辆运动的执行器,由计算平台控制,包括:车辆转向机构、制动系统、动力系统等。
3. 软件平台
软件平台,除了底层驱动、实时操作系统外,上层应用主要包括感知层、规划层和控制层等程序。技术上以各种类型感知算法、定位算法、规划和控制算法等为核心内容。
3.1 感知算法
感知目的,就是告诉自动驾驶系统车辆周围环境,哪些区域能通行、哪些有障碍物。
目前广泛应用的方法是间接感知,即通过感知周围物距离、速度、形状等,构建驾驶态势图,进行规划、控制,间接作用于驾驶操作系统。
随着人工智能技术发展,通过深度学习将传感器数据(如车辆环境的图像)与驾驶操作行为构建映射关系,直接作用于驾驶操作系统方法,是未来发展趋势之一。
感知传感器各异,优劣势明显,如毫米波雷达擅长感知目标物运动状态,相机更容易提取目标物形状进行分类。进行各传感器数据融合,充分发挥各自优势,提高感知冗余、准确、时效性,感知融合技术广泛应用,典型算法有卡尔曼滤波、贝叶斯理论等。
3.2 定位算法
定位目的,就是告诉自动驾驶车辆自己目前在哪。只有精准的定位,才可能正确的往哪去、怎么去。
全球卫星定位系统GNSS,如GPS、北斗等,能告诉我们在地球上所处位置,但其精度一般是米级,不能满足车辆自动驾驶厘米级要求。一般需要RTK差分技术辅助,才能实现厘米级定位精度。
GNSS有个问题,一旦被遮挡定位精度就大打折扣,如道路两边高楼、繁茂的树木、隧道内、地下和室内停车场等场景。这种情况下,一般采用相对定位方法,通过里程计法推算实现短时间辅助定位,常用的基于惯导IMU,也有通过车轮、相机、激光雷达推算。
SLAM,实时定位和地图构建,在室内机器人定位被广泛采用。这是一种通过数据特征点匹配的定位方法,常用的分为基于相机SLAM和基于激光雷达SLAM。
在汽车上应用,相机SLAM,容易受到光照条件影响;激光雷达SLAM,容易受到暴雨、灰尘等环境影响,同时,在开阔地方应用也受限,因为无明显特征点而无法进行定位。
3.3 规控算法
规划、控制目的,一是对车辆运动进行全局规划(从地点A到地点B运行路线)、行为决策(判断变道还是超车等)、局部规划(规划局部行驶轨迹,规避障碍物等);二是,精准控制车辆按规划轨迹行驶。
全局路径规划、局部轨迹规划,本质上就是搜索最佳路径。常用的搜索算法为A*算法,考虑节点到起点和终点最短距离作为优先级。轨迹和路径本质区别是轨迹考虑了时间维度,在轨迹生成时考虑障碍物规避和控制约束,构建损失函数,进行最优行驶轨迹选择。
控制算法,最常用的是经典控制算法PID控制。对车辆横向控制,一般采用简化的二轮自行车运行学模型,通过纯跟踪控制-同人类驾驶向前看,选取预瞄点。
为了更精准的控制,提高控制鲁棒性,也有采用车辆运动学模型进行控制,甚至采用横纵向协同控制算法-MPC模型预测控制。
4 交互技术
传统汽车交互,在车内,驾驶员通过油门、刹车踏板、换档手柄等给车辆输入驾驶意图,通过物理按钮或触摸屏幕进行车载系统控制。在车外,通过驾驶员手势、喇叭等与行人等交互。
目前在车内,通过语音与车辆交互越来越普遍,手势交互也越来越流行。在完全实现自动驾驶前,为避免驾驶员因过多自动控制而走心,驾驶员状态监控也广泛应用。
未来随着自动驾驶发展和交互技术提高,人们不用关注车外状况,更多的享受在车内时光,通过手势、头姿态控制车辆,甚至可通过脑电波获取驾驶意图来交互。
在车外,自动驾驶车辆将直接与行人交互,如通过外部警示、灯条和屏幕交互灯,甚至通过人身上移动设备与行人交互,以及通过V2X设备与交通系统交互等。
5. 安全技术
发展自动驾驶技术,提高交通安全,避免交通事故是主要目的之一。所以保证自动驾驶系统安全技术尤为重要。
安全技术有两个维度,一是安全设计,保证自动驾驶系统设计开发时充分考虑安全;二是安全验证,通过各自验证技术和方法,对自动驾驶系统充分验证,保证可靠性。
安全设计一般分为:避免电子电气系统失效对人员危害的功能安全设计;避免因功能不足、人员误用等对人员危害的预期功能安全设计;避免因系统被侵入、攻击,保证车内外系统通信物理和逻辑安全的信息安全设计;通过数学方法来界定“安全状态”的责任敏感安全等。
安全验证一般分为:虚拟仿真和实车验证。虚拟仿真,根据验证仿真的内容和阶段不同,包括模型在环测试MIL、软件在环测试SIL、处理器在环测试PIL、硬件在环测试HIL等。实车验证,可分为封闭道路测试、示范区测试和公开道路测试。
自动驾驶汽车,相对于传统车辆,验证成指数级增加。都依靠实车测试,从时间上和成本上都不现实,进行充分的仿真测试非常关键。
写在后面
上述提到的自动驾驶技术,更多的从单车智能角度展开。作为未来发展一大爆发点-智能汽车,未来发展方向包括自动化和网联化两个方面。
智能汽车关键技术,可总结为“三横“和“两纵”。
“三横”指车辆/设备技术、信息交互技术和基础支撑技术;“两纵”指车载平台和基础设施建设。
车辆/设施技术包括:环境感知技术、智能决策技术和控制执行技术等。
信息交互技术包括:V2X通信技术、云平台与大数据技术、信息安全技术等。
基础支撑技术包括:高精度地图与高精度定位技术、标准法规和测试评价技术等。