白 阳,韩 斌,欧阳光
(中国电子科学研究院,北京 100041)
汽车作为二十世纪最伟大的发明之一,不仅给人们带来了便捷的出行,也从根本上改变了人们的生活方式[1]。但随之而来的是城市交通拥堵、空气质量下降和由于交通事故带来的人员伤亡人数不断递增等问题。因此,我们需要一个有效途径缓解交通压力、减少空气污染、并把人从驾驶过程中解救出来[2]。
我国《新一代人工智能发展规划》明确指出,人工智能发展进入新阶段成为国际竞争的新焦点[3]。无人驾驶汽车作为人工智能技术发展的产物,能有效地解决传统汽车带来的难题。无人驾驶汽车已成为未来汽车工业的发展方向,掀起了全球性的技术革命[4]。
美国谷歌公司可以说是无人驾驶领域的鼻祖,并在可行性和实用性方面取得了重大进展,其旗下的自动驾驶公司Waymo是世界第一个生产L4级无人驾驶汽车公司。但第一个将自动驾驶技术实现商用的是特斯拉公司,2015年特斯拉推出了自动驾驶系统Autopilot,并用于其公司生产的Modle S车型。Uber公司无人驾驶汽车研发经历可以说是“起起伏伏”,2016年无人驾驶汽车第一次上路闯红灯后开启无人驾驶卡车计划,2018年停止无人驾驶卡车研发,集中开展无人驾驶汽车的工作。福特公司与麻省理工学院合作开展了基于机器学习的自动驾驶系统研发。此外,奔驰、宝马等公司在无人驾驶领域都取得了一定的成绩。
我国的无人驾驶技术研究起步较晚,但发展较快,传统汽车企业和科技公司,以及一些高校均加入到无人驾驶领域的研发行列,使我国的无人驾驶技术得到了稳步和快速的发展[5-7]。
虽然无人驾驶汽车这几年已取得较大进展,但从美国加州车联管理局发布的自动驾驶人工接管报告和我国《北京市自动驾驶车辆道路测试报告(2019)》分析看[8-9],在道路交通中技术、成本、伦理、法律法规等方面仍然存在一系列问题和挑战。因此,办公园区、科技园区、公园等结构化环境成为了无人驾驶汽车的试验场。
本文面向结构化园区环境,设计基于4G/5G移动网络的智能无人驾驶系统,在搭建智能无人车平台的基础上,建立支持用户对无人车进行实时调度和使用的调度系统,推进安全、有序、便捷的园区智能交通体系的构建。
智能无人驾驶系统以低速电动观光车作为无人驾驶基础平台,进行线控改造,并通过安装多种传感器进行周围环境的感知,由计算单元进行多源数据融合和处理,发送给执行机构,从而实现无人驾驶功能。具体地,可分为感知层、处理层、执行层和应用层,如图1所示。
图1 智能无人驾驶系统架构
智能无人驾驶系统感知层由车辆内部传感器和外部传感器组成,用于获取车辆自身的姿态和速度等状态信息和车辆的周围环境信息,各传感器安装位置如图2所示。
图2 智能无人驾驶系统传感器安装位置图
(1)内部传感器
车辆后部设备箱内固定有型号为XW-SC3663的GPS/IMU 组合惯性导航一台,用来提供位置、速度、时间、航向和俯仰角信息,并与轮子上的电机编码器一起提供车辆自身的感知信息。
(2)外部传感器
车辆前方上部安装一台视觉传感器,其上的芯片可进行图像处理、模式识别、路径预测等功能,本项目主要用于车道保持中车道的检测。
车辆顶部安装一台激光雷达,测量距离高达150 m,主要用于感知车辆前方障碍物信息,通过扫描得到的三维空间点云数据对周围环境进行建模,为定位、导航、避障等提供有力保障。
车辆前后中间各安装一台毫米波雷达,用于检测运动目标的距离、速度和角度,测量距离为30 m,具有全天候工作特性,防止车辆前、后的撞击;车辆前后的两侧安装4台毫米波雷达,用于感知车辆周围环境,具有较高的测距和测速精度,能够提供盲点检测、车道变换辅助等功能。
车载计算单元采用 NVIDIA 公司 RTSS-X503U,集成了Jetson TX2模块,是深度学习、图像处理和GPU计算的优势平台,本项目主要用于多传感器的信息融合,车辆的决策规划和控制。
为了实现无人驾驶功能,需要对车辆进行线控改装,即由原来的人工操作改为信号控制,具体包括油门控制(驱动系统)、方向盘控制(转向系统)、刹车控制(制动系统)以及人工与自动驾驶的切换系统。
驱动系统是通过加装控制器输出与之前相同的信号,最终实现CAN总线指令控制驱动踏板。
转向系统在保留原观光有人车的基本转向机构和电机、涡轮蜗杆等执行单元的基础上,经过线控改装,用无人驾驶控制器替代原车的EPS控制器,并增加助力功能,最终实现CAN总线指令控制车辆的转向。
制动系统在不改变原车制动系统基础上,加装电子稳定控制系统(Electronic Speed Controller,ESC),最终实现CAN总线指令控制踏板行程。
急停和切换系统在车辆的驾驶室和车辆后部加装Estop急停设备,实现意外情况下的紧急制动;切换系统实现人工驾驶和自动驾驶的一键切换。
智能无人驾驶系统主要实现以下五个应用:1)地图创建:感知周围环境,为导航避障等无人驾驶功能提供支撑;2)自主循迹:实时了解自己所在的位置和方向,使无人车按照预先规划的路径行进;3)自动避障:对行进过程中遇到人员和车辆进行自动识别和避让;4)车道保持:保证无人车沿着车道线行驶,为无人车在结构化道路循迹提供解决方法;5)多车调度:乘用人通过手机客户端实现基于移动互联网的无人车调度。
基于移动互联网的智能园区无人车调度系统,由配置于园区无人车车端的调度响应系统、配置于云端服务器上的调度管理系统和移动端/固定站的用户调度应用三部分组成,如图3所示。该系统目前采用集中式规划控制[10],总体框架与网约车调度系统相近,同时针对无人车调度特点进行了设计,具有用户端自由接入,园区内可行路径上任意点路径规划、云端服务器智能调度管理等功能,为办公园区、科技园区等结构化园区环境内用户提供了智能便捷的出行方式。
图3 基于互移动联网的无人车调度系统组成
(1)用户调度应用
用户调度应用同时兼容手机、平板等移动端以及固定工作站,用户调度应用通过4G/5G方式连接云端调度管理系统,将用户调度需求发送至服务器,同时接受云端调度管理系统反馈回来的无人车响应结果和运营状态信息,并通过可视化的方式呈现给用户,如图4所示。
图4 手机移动端的用户调度应用界面
(2)车端调度响应系统
车端调度响应系统可通过4G/5G方式连接云端调度管理系统,将园区无人车实时状态信息发送至服务器,同时接受云端调度管理系统的控制指令,转发给无人车端的自动驾驶系统,从而实现对无人车的调度控制。
(3)云端调度管理系统
云端调度管理系统根据用户需求和园区无人车的运营状态,利用智能调度算法获取调度方案,并发送至车辆终端执行,从而实现了对园区无人车的智能调度。同时,云端调度管理系统也用于对用户和无人车数据进行管理,可存储海量车辆运行信息、用户信息,同时利用大数据进行自主学习,提高运营效率。
(1)车端调度响应系统实现方式
车端调度响应系统由4G/5G无线上网终端硬件和调度响应程序构成,4G/5G无线上网终端硬件连接园区无人车车载系统,使车载系统能够通过移动互联网和云端调度管理系统通信。调度响应程序基于Python语言开发,用于接收用户控制指令、获取和发送无人车状态信息。调度响应程序通过调用ROS话题/消息API,实现了同无人车自动驾驶程序的交互,同时使用Websocket的Python API,同云端调度管理系统进行信息交互。
(2)云端调度管理系统实现方式
云端调度管理系统基于开放云服务器搭建,后端服务器程序使用Nodejs开发,可兼容Windows/Linux操作系统。云服务器上同时运行园区智能路径规划程序,该程序基于ROS开发,并通过ROS的服务响应机制同服务器主程序交互。云端调度管理系统通过Websocket的Nodejs API实现同车端调度响应系统和用户调度应用的信息交互,同时利用MySQL数据库软件实现用户和车辆的数据管理。
云端调度管理系统中的路径规划采用Floyd算法实现,通过计算得到当前距离乘客最近的园区无人车,进行智能调度。首先选取园区可行路径中的N个点作为有向图中的节点,标记为节点1,2,…N,园区中可行路径被此N个点划分为多个边,任意两个节点i,j间的距离表示为D(i,j)。用户位置点设为U,通过计算U和园区路径上所有点的距离,选取距离U最近的可行路径上的点T,然后得到T所在有向路径中两个端点中的起点E,园区无人车在接送乘客时需要经过节点E到达T。假设某辆可用的园区无人车所在的点为C,则C所在有向路径中两个端点中的终点为S,则使用该车接乘客时,经过的距离为D=D(C,S)+D(S,E)+D(E,T),其中D(C,S),D(E,T)间距离可直接计算得到,D(S,E)使用Floyd算法给出节点S和E间的最短距离和最短路径。
Floyd算法逻辑如下:假设D(i,j)为节点i到节点j的最短路径的距离,对于每一个节点k,我们检查D(i,k)+D(k,j) 通过计算当前所有可用园区无人车和用户的距离D1,D2,…,Dm,选取最短距离Dmin,对应选择的车辆极为最优车辆,进而调用该车前来接驳。 (3)用户调度应用实现方式 用户调度应用基于HTLM5开发,以网页访问的方式配置于云服务器上,兼容手机、平板等移动端以及固定工作站,而且便于应用升级维护。用户通过访问服务器网址,即可实现对园区无人车的调度使用。用户调度应用使用Websocket的JavaScript API实现了同云端调度管理系统的信息交互,同时通过开放地图的JavaScript API实现用户定位、地图显示、路径显示等功能。 基于移动互联网的园区无人车调度系统使用流程如图5所示。 图5 调度系统使用流程 用户访问云服务器网址,输入账号信息完成登录,再通过浏览器定位、地图选点和固定站点等多种方式指定出发点和目标站点,点击叫车按钮,将叫车指令发送给云端服务器。 云端调度管理系统接收到用户指令后,根据用户需求和园区无人车的运营状态,智能调度最近的可用无人车前往接驳,减少用户等待时间。当用户成功调用无人车后,被调用车辆自动前往出发点,当抵达时,自动停车,等候用户上车。若无可用车辆,则返回提示信息给用户。 用户上车后,点击已上车按钮,指令通过云端传递至车端,无人车按照规划的路径将乘客平稳、安全地运送至达到点。期间用户可在交互应用上查看无人车规划的路径信息、车辆状态信息(速度、位置等)和地图信息等。 当用户抵达到达点后,无人车自动停止。用户下车后,点击已下车按钮确认,则该状态通过云端调度管理系统转发至无人车,无人车将自身运营状态重新标记为可使用,等待下次调用。 移动互联网断开状态下分为两种情况:一种是运行在无移动互联网状态下;另外一种是在运行过程中移动互联网突然断开。对这两种情况,智能无人驾驶系统调度运行方式如下。 (1)无移动互联网状态下 无4G/5G移动网络状态下,车端接入园区内无线网络,用户通过手机、平板登录园区局域网络内服务器,也可用同样的方式进行无人车的调度使用;另外,每台车还配置有本地路由器及对应的平板终端,用户可以在平板终端直联某一台车辆,选中目的地,实现单台车辆直接调用。 所有网络都断开时,可以使用鼠标、键盘接入车端控制器,在显示屏的调试地图上点击选点、或者输入终端位置指令,控制车辆运行。 (2)运行过程中移动互联网突然断开状态下 无人车在使用过程中网络断开时,将继续行驶至上一次任务的目标站点停止,等待用户再度接入。用户在一定时间内重新接入后,自动恢复之前的调度任务状态;若一定时间内未能重新接入,先前的无人车控制权限被释放。 无人车在非使用过程中网络断开时,服务器自动删除该无人车的注册和使用状态,待重新接入服务器后,自动注册并更新工作状态。 为验证基于互移动联网的智能园区无人车调度系统的功能,选取某园区进行反复的道路实测,主要功能测试结果及分析如下。 利用室外差分GPS设备进行园区可行路径的采集,路径点的采集定位精度即差分GPS设备的动态定位精度,为±10 cm左右。具体的地图创建方法为:首先,无人车切换至手动模式,沿着预期的路段人工驾驶;然后,从路段起点开始运行路径采集程序,行驶到路径终点;接着,程序利用采集点,按照给定步长和平滑处理算法,自动生成该路段离线点路径地图;最后,依次遍历采集园区内所有可行路径,构建园区的路径地图。 如图6所示,园区拓扑地图等价于一个有向图,其中,边代表着现实环境里的一条车道,储存着上面的每一个路点;点代表车道的端点,入点为车道的入端,出点为车道的出端。地图上每一个点都有全局唯一的编号,最终产生的路径用由点编号数组的形式来表示。 图6 无人车园区行驶路段拓扑地图 为验证园区无人车系统的自主循迹功能,在园区内任意选取起始点和目标点,测试园区无人车系统能否自动规划路径,并检测无人车对生成路径的跟踪性能,如图7、图8所示。 图7 直线段路径跟踪结果 图8 转弯段路径跟踪结果 图中,无人车对生成路径(图中蓝色中间线)的跟踪性能良好。在直线路段,侧向偏差不超过20 cm,可以轻松从左右两侧石台间穿过。在转弯路段,侧向偏差不超过70 cm,能够保障无人车始终处于规定的安全行驶范围(图中两侧黄色线之间)。 令无人车在规定路径上自动行驶,测试人员作为障碍物,分别以走动/静止状态出现在无人车行进前方,以测试园区无人车对动/静障碍物的避障处理能力。 在测试中,园区无人车可以依靠车载雷达精确检测到行人等障碍物,如图9所示,并通过目标跟踪判断障碍物状态是运动的还是静止的。对于运动的障碍物,无人车会在靠近障碍物的过程中逐渐降速,并停止在与障碍物约4 m的安全距离。对于静止的障碍物,无人车会重新规划,计算得到不会与障碍物发生碰撞的新路径,从而自主绕障,如图10所示。 图9 车载雷达检测到行人障碍物 图10 对静止行人自动绕行 选取园区内具有清晰两侧车道的路段,开启无人车的车道保持功能,以验证无人车的车道保持功能。车道线的检测结果和生成的路径如图11所示。 图11 车道线检测和路径生成 其中红色和绿色实线为无人车检测到的左右车道,黄色实线为生成的跟踪路径。在测试中,无人车可以精确地跟踪生成的路径,同时进行侧向和朝向控制,使得无人车保持在车道线中心行驶,如图12所示。 图12 车道线保持测试 在园区路段同时设置3辆处于可调度状态的无人车,由3名操作人员同时使用手机端进行车辆调度,测试多人调度下的园区无人车系统运行状况。测试结果如图13所示,基于移动互联网的调度系统可同步支持多人对多辆无人车的智能调度,系统会根据用户出发位置和所有车辆的状态进行优化调度,保证了所有用户的出行效率。 图13 多用户调度功能测试测试 面向办公园区、科技园区等结构化园区环境,本文设计了基于4G/5G移动网络的智能无人车系统。通过加装组合导航、视觉传感器、激光雷达、毫米波雷达等多传感器实现了对自身和周围环境的感知,并通过对车辆底盘线控系统改装和控制,实现了地图创建、自主循迹、自动避障、车道保持、多车调度等功能。同时,提出了基于4G/5G移动网络及WebSocket协议的无人车调度系统,实现了车端、云端和用户端的信息交互。最后,经过道路的实测,验证了基于移动互联网的园区智能无人驾驶系统的可行性。2.3 调度系统使用流程
2.4 移动互联网断开状态下的调度运行方式
3 智能无人车系统功能测试
3.1 地图创建功能测试
3.2 自主循迹功能测试
3.3 自动避障功能测试
3.4 车道保持功能测试
3.5 多车调度功能测试
4 结 语