“途灵”智能无人车软件架构及通信机制

2017-04-18 12:54陈存铜
电脑知识与技术 2016年35期
关键词:智能化

陈存铜

摘要:近些年来,随着的汽车智能化技术和互联网技术的不断发展,智能无人驾驶逐步走进大众的生活。智能无人车如何更加智能化,安全化是人们不断研究的课题。“途灵”智能无人车借鉴了国内外智能无人车的设计,结合自身特点,制定了合适的软件架构和通信机制,不断提升决策、控制的稳定性和智能化,并在2016年常熟举办的中国智能无人车未来挑战赛中取得不俗的成绩。

关键词:智能无人车;软件架构;通信机制;智能化; 机器人技术

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)35-0190-03

The Software Architecture and Communication Mechanism of TiEV

CHEN Cun-tong

(Department of Computer Science and Technology, Tongji University, Shanghai 201804, China)

Abstract:With the development of automotive technology and Internet technology, autonomous vehicles have entered into the public life during recent years. How to make the autonomous vehicle more intelligent and safer has become the topic which the numerous scholars study unceasingly. On the basis of the designs of domestic and overseas autonomous vehicles, TiEV proposes a reasonable software architecture and communication mechanism which fits its peculiarities for improving the stability and intelligence of decision making and control constantly. TiEV has achieved great success in Future Challenge 2016 held in Changshu.

Key words:autonomous vehicle; software architecture; communication mechanism; intelligence; robotics

1 引言

智能无人车也可以称之为轮式移动机器人,主要依靠车内的以计算机系统为主的智能驾驶仪来实现无人驾驶[1]。随着无人驾驶概念的不断升温,越来越多的汽车制造商和科技公司投入到智能无人车的研发队伍中,这极大地促进了智能无人车的发展。

2016年11月12日第八届中国智能无人车未来挑战赛在常熟举办。本届比赛主要包含考察智能无人车认知水平能力离线测试和真实综合道路环境测试两部分。其中,离线测试是在真实道路交通场景数据库的基础上,通过仿真环境评估智能五人车的认知水平;道路测试分为城区道路测试路段(约13公路)和高速道路测试路段(约22公里),考察智能无人车交通场景识别能力及不同环境的适应性和行驶机动性等。同济大学“途灵”智能无人车在离线测试和道路测试中均获得了不俗的成绩,“途灵”TiEV智能无人车如图1所示。

“途灵”智能无人车软件系统由多个功能模块组成,每个功能模块以进程的方式独立运行。功能模块间协调工作:通过感知道路环境,自动规划行车路径从而控制车辆到达预定目标。在此过程中,模块间需要进行数据交互:如感知模块需要将采集到的点云信息发送给决策模块;决策模块需要将控制命令发送给控制模块控制车辆运动等。因此,为了保证智能无人车决策的正确性和控制的稳定性,需要建立稳定的软件架构模型以及高效的数据传输机制。

2 软件架构

2.1 感知模块

目前,许多智能无人车如谷歌智能无人车配备多种传感器,如GPS,摄像头,激光雷达等,但由于激光雷达造价昂贵及其机械特性的限制等原因,许多智能无人车如特斯拉采用毫米波雷达和先进驾驶辅助系统的摄像头代替激光雷达。毫米波雷达与摄像头的组合相比激光雷达虽然价格便宜,但是其精度低、可视范围的角度偏小,导致其在远距离物体的识别、3D成像和识别准确性上都有明显缺陷。目前,“途灵”TiEV智能无人车配备了多个激光雷达和摄像头等传感器从而实现360度无死角地感知周围环境的功能。

感知模块接收、融合传感器采集的数据,识别静态与动态障碍物,获取周围环境信息便于之后决策模块的路径规划。在车载的各类传感器中,GPS获取智能无人车当前的位置信息,该位置信息应用于之后的路径规划。摄像头采集智能无人车周围环境的图像信息,识别车身周围的车,人,交通标志牌等。激光雷达获取车身周围障碍物的相关信息,如障碍物离车的距离,障碍物速度等。在实际运用的过程中,摄像头容易受到光照等外在环境因素的影响,而激光雷达受到的影響较小,此外,在激光雷达采集到的点云数据中,障碍物通常表示成一簇点,这不利于障碍物类型的识别,影响路径规划,因此需要摄像头采集的图像数据识别障碍物的类型。在智能无人车正常行驶的过程中,任何单一的传感器不能提供足够的信息跟踪识别障碍物,因此,“途灵”TiEV无人车在障碍物识别跟踪时,融合摄像头和激光雷达的信息,有效识别障碍物,为决策模块提供了依据。

2.2 决策模块

决策模块接收感知模块融合的数据并结合路网文件规划出一条到达指定的目的地的路径。“途灵”将感知模块融合的周围环境的信息映射到一个栅格中,该栅格将包含障碍物的栅格标记为障碍栅格,反之则标记为自由栅格,决策模块在栅格的基础上进行路径的规划。

在城市道路中,决策模块可以根据路网文件及GPS等信息,以路口为节点,道路信息为路径信息,构造出复杂的路径信息拓扑网络。决策模块根据起点和终点,应用路径搜索算法在路径信息拓扑网络中规划出合理路径,并沿着该路径从不同多角度延伸出多条候选路径。决策模块结合道路信息及周围环境信息,选择最优路径,并根据该路径计算车速、转角等控制命令发送给控制模块。

2.3 控制模块

控制模块接收决策模块发送的控制命令,控制车身达到预期的车速和转角。“途灵”控制模块采用了闭环控制技术,即通过被控变量的实际值与期望值的偏差纠正系统的响应,执行调节控制。目前,应用最广泛的调节器控制规律为比例、积分、微分控制即PID控制[2]。

由于传统PID算法主要针对惰性系统,即变化较慢的系统。而智能车的电机调速变化快,因此在实际应用过程中,需要改进、变化传统的PID算法。由于P参数反应快,控制精度高,适合控制周期短系统,所以“途灵”通过PID控制车速、转角时,先将ID参数设为0,调整P参数。在调整完P参数后,车身可能会出现震荡现象,此时,通过调整I参数可以减少震荡。最后调整D参数,D参数主要是调整控制灵活性和预见性,如通过D参数可以控制速度平滑过渡且速度可以长时间稳定在给定速度附近。通过PID控制,“途灵”在车速在50km/h时的行驶轨迹与预期轨迹的偏差在1cm内。

3 通信机制

智能无人车软件系统由多个功能模块组成,在模块间高效、可靠地传输数据是智能无人车系统运行的重要保障。目前,国内外大多数智能无人车采用基于套接字(Socket)的消息传输机制进行数据传输[3],如ROS(Robot Operating System)[4],LCM(Lightweight Communications and Marshalling)[5]等。其原因一方面是Sockets易于使用;另一方面,Sockets容易部署在分布式的控制器环境中。ROS早期的版本主要采用TCP的方式实现进程间的通信,在新的版本中,增加了UDP和Spread等的消息传输方式。LCM(Lightweight Communications and Marshalling)采用UDP组播的方式传输数据,所有的功能模块加入同一个组播地址,订阅特定的消息。国内的虚拟交换VirtualSwitch[6]机制同样采用了基于UDP组播的方式,模块间通过特定端口号实现消息传输,目前在多个智能无人车团队中得到了应用。

3.1 “途灵”通信机制

目前的消息传输机制广泛采用了“Pub/Sub”模式进行数据传输。在该模式中,发布者将特定事件的消息发送给所有的订阅者;每个订阅者订阅自己感兴趣的一个或一类消息,若它接收到的消息是自己感兴趣的则进行处理,反之,丢弃。由于发布者只负责发送消息,并不需要确认其他的订阅者是否接收到该消息,所以该模式移除了发布者与订阅者之间的捆绑,降低了模块间的耦合。在网络传输协议中,UDP协议由于不需保证数据的可靠性,因此其相比其他面向连接、可靠的消息传输协议传输速率更快。“途灵”目前主要采用基于UDP组播的VirtualSwitch的消息传输机制。在该消息传输机制中,所有的功能模块加入到同一个组播组中并采用“Pub/Sub”模式进行数据传输。不同的功能模块通过特定的端口发送、接收自己感兴趣的一个或者一类消息,从而实现低延迟、高带宽的数据传输。

然而,随着智能无人车集成控制器性能的提升以及环境感知手段的发展,对功能模块间传输的数据量以及带宽提出了更高的要求。现有基于套接字的消息传输机制因其受网络协议的限制,需要分块传输大数据包,不仅增加了收发双方的开销,而且还增加了消息传输延迟。 因此,“途灵”不仅采用VirtualSwitch消息传输机制,还采用基于共享内存的消息传输机制进行大数据包的传输。在基于共享内存的消息传输机制中,每个发布者发送数据前申请一个独立的共享内存空间,为了有效管理该共享内存空间,将共享内存空间分成一个超级块和多个数据块:超级块管理数据块,数据块保存传输的数据。为了控制数据的收发,系统在超级块内为发送方创建一个写环形队列,保存空闲的数据块的索引,并为每个接收方创建一个读环形队列,保存存放数据的数据块的索引。发送方发送数据时,访问写环形队列head指针指向的空闲数据块,将数据拷贝到该数据块内。接收方接收数据时,遍历自己的读环形队列,获取每一个队列项指向的数据块内的数据。收发双方通过对读写环形队列的交叉操作,异步实现数据的收发。该模型内的收发双方由于不需要建立同步机制,从而降低了模块间的耦合,降低了延迟,提高了系统吞吐量。

3.2 实验分析

本实验模拟了智能无人车正常运行时,模块间按照固定频率传输数据的典型情形,主要测试数据传输延迟。本实验运行在Ubuntu12.04系统中,实验机配备酷睿i5(2.1GHz)四核处理器,2G DDR3内存。

为了测试数据传输延迟,发布者发送一定大小的数据,订阅者数量从1增加到4,利用数据发送和接收的时间差计算传输延迟。由于VirtualSwitch消息传输机制最大支持65536字节数据包的传输,所以在本实验中,发布者发送100000个60KB大小的数据包,计算VirtualSwitch消息传输机制的平均数据传输延迟,实验结果如表1所示。

4 结论

本文介绍了“途灵”TiEV智能无人车软件架构模型及其通信机制。通过感知模块、决策模块和控制模块协调工作,“途灵”能够实时感知周围环境,规划合理的路线,行驶到指定的位置。在常熟举办的2016年中国智能车未来挑战赛中,“途灵”在高架快速道路和城区道路中均取得了不俗的成绩,因此本文能为无人驾驶和智能辅助系统提供了参考价值。

参考文献:

[1] 杨帆. 无人驾驶汽车的发展现状和展望[J]. 上海汽车, 2014(3):35-40.

[2] 陶永华. 新型PID控制及其应用──第二讲 自适应PID控制[J]. 工业仪表与自动化装置, 1997(5):50-53.

[3] Elkady A, Sobh T. Robotics Middleware: A Comprehensive Literature Survey and Attribute-Based Bibliography[J]. Journal of Robotics, 2012, 2012(1687-9600).

[4] Quigley M, Conley K, Gerkey B P, et al. ROS: an open-source Robot Operating System[C] ICRA Workshop on Open Source Software. 2009

[5] Moore D, Olson E, Huang A. Lightweight Communications and Marshalling for Low-Latency Interprocess Communication[J]. Computer Science & Artificial Intelligence Laboratory Mit Tech Rep, 2009.

[6] 李德毅,韓威,郑思仪,等. 智能车分布式进程虚拟交换机通信方法[P].中国:2015104048428,2015.

猜你喜欢
智能化
智能化战争多维透视
长丝织造装备迈向高速智能化
智能化的“世界观”
印刷智能化,下一站……
餐厅智能化该如何进行?
基于“物联网+”的智能化站所初探
高速公路智能化的前景
和利时:打造智能化软实力