基于内容中心网络的无人自动驾驶方法

2015-01-01 01:45李志浩
计算机工程 2015年12期
关键词:八叉树路况无人驾驶

高 翔,李志浩,杨 惠

(兰州文理学院电子信息工程学院,兰州730000)

1 概述

随着近年来汽车数量的增加,国内因交通事故导致的伤亡人数超过3×105,已经严重威胁人们生命安全[1]。无人自动驾驶系统通过车载传感器获取环境及车辆状态信息,并做出合理判断。汽车智能化自动驾驶技术将为解决交通拥堵,提高行驶安全提供解决方案。无人驾驶车辆已经成为国内外研究的热点之一。

无人驾驶系统的目的是将汽车通过一种经济安全的方式从A点驾驶到B点。为了实现该目标,系统通过搭载在汽车上的传感器实时获取汽车周围的路况信息,在获取这些信息后,通过路径规划算法得到相关行车路线,然后汽车在控制器的控制下按预订路线行进。国内外学者和企业在无人驾驶方面做了大量研究和实践。20世纪70年代,美国自主地面车辆(Autonomous Ground Vehicles,ALV)计划已经实现低速自动驾驶[2]。2012年,Google公司宣布其自动驾驶汽车已经安全行驶30万英里,且无任何意外事故发生[3]。文献[4]提出一种基于差分GPS传感器的车辆自动转向技术。文献[5]采用改进PID算法实现自动驾驶转向控制。虽然上述方法能够解决汽车的自动驾驶问题,然而这些解决方案只面向单一无人驾驶汽车,并没有考虑多个无人驾驶汽车同时运行的情况,而且这些方案更加注重无人驾驶汽车的控制,未从整个交通系统层面考虑问题。并且单个无人驾驶汽车获取的路况信息通常存在很大盲区,这无可避免地增加了交通事故的风险,无法达到安全自动驾驶的目的。综上,本文提出一种基于内容中心网络的无人自动驾驶方法,介绍无人驾驶汽车的整体结构以及路况信息的表现形式,阐述无人驾驶汽车通过使用内容中心网络(Contentcentric Network,CCN)订阅或者发布实时路况信息的具体过程。

2 所需解决的问题

本文若只从单个无人驾驶汽车的层面考虑问题是不够的,无人驾驶汽车应该面向整个道路交通系统,不仅包括无人驾驶汽车,还包括交通系统中的基础设施,如十字路口的传感器、交通管理部门的公告信息等,只有在综合考虑各方面提供的路况信息,才能够有效安全快速地实现汽车的无人驾驶。而面向整个道路交通系统的无人自动驾驶方法需要面临如下问题:

(1)如何实现无人驾驶汽车之间以及无人驾驶汽车与道路基础设施之间的信息快速交换。无人驾驶汽车及道路基础设施对路况信息的获取大部分是通过视频摄像头、雷达、激光测距仪等无线传感器得到的,这些信息通常是以每秒千兆比特的速度获取,这显然超出了现有IP网络的传输能力。同时如何在不同的通信双方合理分配网络带宽以便使所有的无人驾驶汽车获取到整个路况信息也决定着该方法的使用效果。

(2)在获取到整个路况信息后,如何通过有效合理的路径规划算法使得无人驾驶汽车在满足用户需求的前提下安全快速地从A点行驶到B点。无人驾驶汽车在选定行驶路径后需要和其他车辆进行交互,同时通过不断获取实时路况信息更新其路径,以避开障碍物实现安全驾驶,并在安全驾驶的前提下选定最短路径,实现降低能源消耗的目的。

针对上述问题,本文提出基于内容中心网络的无人自动驾驶方法,无人驾驶汽车和道路基础设施获取到的海量实时路况信息定期向外发布,任何对该路况信息感兴趣的无人驾驶汽车可以订阅该信息,忽略与其无关的信息。在获取了相关路段的实时路况信息之后,根据用户定制的需求,制定相关行车路线。在前往目的地的行车过程中,及时与其他无人驾驶汽车和道路基础设施交换行车路线,并根据突发状况和交通管理部分发布的道路交通信息实时调整路线,从而实现安全自动驾驶,并满足用户制定的需求。

3 无人驾驶汽车整体结构

无人驾驶汽车在本质上是使用无人驾驶系统代替驾驶员操控汽车,因此在整体结构上与普通汽车相同。无人驾驶汽车整体结构如图1所示。

图1 无人驾驶汽车整体结构

在上述系统结构中,无人驾驶汽车通过GPS传感器获取其当前的位置信息。交通管理部门作为整个道路交通系统的管理部门,主要负责提供相关交通管理信息,比如基本的道路拥堵情况、交通事故通报、道路限行等。当前车辆的位置信息和交通管理部门提供的交管信息,配合系统的地图,可以得到车辆行驶的基本路线。作为与用户相关的汽车,必须满足用户的需求,这些需求可能并不是以最快的速度,最短的路径到达目的地等,因此,系统在制定行车路线时,需要把用户需求作为路径规划的一个重要参数。

上述信息用于规划汽车的行车路线,然后无人驾驶汽车在具体的形式过程中,需要根据具体的路况信息对车辆发出具体的控制信息。比如加速行驶、减速刹车、方向转弯等。路况信息主要来自车载传感器主动获取,以及无人驾驶汽车和道路基础设施发布。无人驾驶汽车获取的本车周边的实时路况信息,不仅需要提交给路径规划器,还需要提交给通信器发送给其他无人驾驶汽车,在获取整个路段的路况信息之后,系统就可以为无人驾驶汽车制定详细的行车路线,并发出相关控制命令。

在本文中,无人驾驶系统将周边环境划分为众多小立方体,每个小立方体代表一片区域。为了有效表示无人驾驶汽车周边区域的路况信息,本文系统采用八叉树。八叉树中的节点表示一个区域,同时该节点也是该区域中八叉树[6]的根节点,如图2所示。

图2 无人驾驶系统中的区域表示方法

在某个区域中,即某个小立方体中,如果存在障碍物,则八叉树中对应的节点的值为1。通过上述区域表示方法,无人驾驶车辆很容易定位到障碍物的位置,然后发出相关命令,避开障碍物。

上述路况信息通过无人驾驶汽车上的通信器发送或者接收,然而汽车所在的空间非常大,同时由于传感器获取周边路况信息的频率很高,因此每个车辆获取的路况信息通常有每秒千兆比特,如果单纯地通过现有的无线通信协议,与周边汽车进行路况信息的交换,几乎是不可能的,为此需要一种有效快速的路况信息交换方式,以满足无人驾驶汽车的需要。

4 基于内容中心网络的路况信息交换网络

整个无人驾驶系统需要多方交互,发送或者获取大量路况信息,同时为了保证无人驾驶汽车的安全驾驶,必须保证路况信息的准确,防止伪造或者错误的路况信息进入系统中。基于上述考虑,本文系统采用内容中心网络作为信息交换网络。

4.1 内容中心网络

内容中心网络[7]是施乐公司的帕洛阿托研究中心(PARC)提出的一种信息中心网络(Informationcentric Network,ICN)[8]。所谓的信息中心网络,就是网络中的一切都可以看作是信息。信息中心网络是信息互联的网络,而非主机互联,其核心对象是信息。网络上的每个信息都有名字,网络的作用就是管理所有信息的流动和缓存,并用正确的信息快速响应信息的接收者,用户或应用只直接关注信息本身,而与该信息块的其他属性没有关系。CCN的主要设计目标就是更好的支持以内容存取为目的的应用,以满足无人驾驶汽车的需求。

数据消费者驱动着整个CCN的通信,数据以块级传输。这些数据可以分为2个包类型:Interest包和Data包,如图3所示。消费者通过广播自己的Interest包请求其感兴趣的数据,监听节点如果接收到请求或者有相应的数据,则以Data包响应。其他消费者如果对该消费者发布的Interest包有需求,也可以共享接收该Data包。

图3 Interest包和Data包

在图3中,如果Interest包的Content Name是Data包的Content Name前缀,则该Data包是对Interest包的响应。当一个Interest包到达,信息生产者首先匹配其内容缓存。如果有相关内容,则丢弃Interest包,并以Data包响应信息消费者。信息生产者的内容缓存能够以尽可能长的时间缓存转发的Data包,以供其他消费者使用。当信息消费者收到Data包之后,先对数据包的Content Name字段进行最长前缀匹配,如果不匹配,则丢弃这个Data包,否则接收。

4.2 CCN在路况信息交换网络中的应用

汽车在具体行驶过程中,为了保证行驶安全,只需要获知该车辆一定范围内的路况,并根据路况做出相关判断。由于路况信息的时效性,因此各个车辆需要按一定的频率向其他车辆或者道路基础设施请求其获取到的路况信息。无人驾驶汽车的Interest包结构如图4所示。

图4 无人驾驶汽车的Interest包结构

Interest包结构各字段含义如下:

(1)Content Name:Interest包的标识,如 CCN的标准Interest包,该字段主要有数据消费者的ID(32位)加上一个32位长的随机字符串组成,表示需要请求的数据。

(2)Requester ID:数据消费者ID,标识请求数据的汽车。

(3)Region ID:数据消费者希望获取路况信息区域的标识。所有交通道路都被划分为固定大小的区域,作为一个立体的空间,数据消费者需要获取该区域内所有的障碍物信息,包括其位置、大小等。在该区域内所有的其他无人驾驶汽车和道路基础设施都会响应该请求。

(4)Timestamp:数据消费者发起数据请求的时间。由于整个路况信息在不停改变,因此路况信息有一定的时效性,当获取的路况信息的时间点早于或者晚于该时间戳都是非法的数据,因此可以不予响应或者直接忽略。

(5)Request frequency:数据消费者请求数据的频率。为了节省CCN中的网络流量,同时为了节省有效的网络带宽,从Timestamp点起的一段时间内,数据请求者希望获取路况信息的频率,在该时间段内,数据生产者可以以该频率发布路况信息,从而减少不必要的信息请求。

当其他数据消费者接收到该Interest包,如果该消费者对该区域的路况信息同样感兴趣,就可以将该Interest包保留,以便接收Data包时匹配相关数据。无人驾驶汽车的Data包结构如图5所示。

图5 无人驾驶汽车的Data包结构

Data包结构各字段含义如下:

(1)Content Name:Data包的标识,该字段主要有数据消费的ID(32位)加上一个32位长的随机字符串组成。数据消费者通过最长匹配其ID(最短为32位),就可以得知该Data包是否为自己感兴趣的数据包,如果不匹配,直接丢弃该数据包。

(2)Responser ID:信息生产者的ID,标识该Data包的信息生产者。

(3)Region ID:标识该路况信息所在的道路区域。

(4)Timestamp:获取路况信息的时间戳,数据消费者在收到该数据包后,对时间戳进行匹配,如果超时,则直接丢弃该数据包。

(5)Data:数据生产者获取的实时路况信息。

在这些通信过程中,Region ID是通过GPS传感器获取,并且经过道路基础设施校准,只有获取了准确的位置信息,车辆根据路况信息做出的控制才是安全的。

由于CCN的特点,对于每个Interest包,可能会出现多个Data包响应,这些Data包中包含的路况信息有很多是重复的,且对于3D空间的信息有很多是冗余的。因此为了减少CCN上的网络流量,需要对这些路况信息进行压缩。

4.3 路况信息编码

标准的八叉树编码格式如下:八叉树的每个节点用一个8元组表示,每个元组表示一个小区域内部的空间信息,自上而下地对该树进行宽度遍历获取相关区域的数据。根节点一般认为不为空,对于根节点的有数据或者未知信息的元组(每个小空间)进行递归编码,如图6所示。

图6 标准八叉树编码结果

在图6中,当元组为1是表示该区域内有障碍物,当元组为0是表示该区域为空,当元组为问号是表示该区域可以分为更小的区域。上述编码方法能快速有效地对路况信息进行编码,然而也存在以下不足:(1)如果一个元组在传输中丢失,则该元组对应的整个空间信息将丢失;(2)由于不是从同一个根节点出发,因此无法判断这些元组表示的路况信息是否有重复;(3)由于八叉树是一个稀疏的树形结构,因此上述编码方法存在大量的无用编码,增加了通信成本。

为了解决上述问题,本文提出如下编码方法:设r为待编码区域,Or为该区域中对应的八叉树的根节点,v0,v1,…,vk-1是该八叉树的叶子节点,设变量j是介于0~(k-1)之间的任意数,变量T为空树,对于每个叶子节点执行如下操作:

(1)将节点vj及其所有继承于根节点Or的路径添加到树T中。

(2)令j=j+1,重复步骤(1),直到对树T的编码达到CCN最大的包容量。

由于上述编码方法只对不为空的节点进行编码,因此能有效地减少对同一个区域的编码量。由于每棵树都是从叶子节点开始编码,因此丢失了一个数据包之后,也不会丢失对整个区域的编码。对于相同的区域编码,具有相同的叶子节点,因此,很容易分辨出相同区域的数据包,从而避免重复数据的传输。

对于一个3层的八叉树而言,完整的八叉树长度为8+82+83,而对于本文中的编码方法无需对为空的区域进行编码,同时为了方便无人驾驶系统快速查找某区域内部的障碍情况,示例八叉树(其中全部为空的节点并未画出)及其编码结果如图7、图8所示。

经过上述编码之后,系统可以很容易通过节点的层数判断障碍物对汽车的距离,同时通过考察同一层节点得到某范围内汽车周围的障碍物,由于采用倒排树结构,不会因为某一个数据包的丢失,导致整个区域的路况信息无法重构。

当无人驾驶汽车发出Interest包请求之后,通过该汽车搭载的无线传感器以及其他汽车多次发送过来的Data包之后就可以获取请求区域内的完整路况信息,无人驾驶汽车的控制系统就可以根据这些实时的路况信息对汽车进行相关控制。

5 实验结果与分析

5.1 基于CCN的无人驾驶方法模拟实现

本文在机器人操作系统(Robot Operating System,ROS)[9]上实现了基于CCN的无人驾驶方法,CCN的实现是基于清华大学网络与信息安全实验室的CCN网络原型[10],模拟实现中的地图场景采用Google 3D地图[11]。

在本文实验中,空间八叉树采用3层结构,空间最小尺度设为10cm。在Google 3D地图中选取美国迈阿密市中约40km2的区域,模拟的无人驾驶汽车数量为563,无人驾驶汽车实时获取周围的500m内的路况信息,获取周围路况信息的频率为10次/s,获取全局路况信息的频率为10次/min,测试场景如图9所示。

图9 系统模拟测试场景

在CCN层面,无人驾驶汽车在交流由传感器获取的路况信息时采用了ROS的PointCloud格式[12],基于用户数据报协议(User Datagram Protocol,UDP)发布Interest数据包和接收Data包。实现CCN有2个关键因素:(1)调整CCN中Interest包和Data包的能力。在汽车行驶过程中,可能会遇到多种复杂的情况,如在堵车的情况下,无人驾驶汽车从其他车辆和道路基础交通设施获取的路况信息会大幅度增加,此时为了有效提高CCN的传输效率,需要调整Data包的大小,同时提高通信频率。(2)数据传输时的排队延时。为了保证无人驾驶汽车避免因排队延时而导致获取不到最新的路况信息,本文实验在通信过程中模拟了万兆网卡的通信能力。

5.2 结果分析

由于基于CCN的无人驾驶方法的目的是为了在汽车驾驶过程中保证驾驶安全性的前提下,有效降低通信的数据量,并满足用户的需求。基于上述考虑,本文实验设置的用户需求是用最短的时间到达目的地。对比实验采用了基于802.11通信的无人驾驶汽车,在对比实验中,汽车通过UDP+广播的形式发送或者接收路况信息,路况信息的编码采用原始的3D编码格式[13]。测试随着一个区域内车辆数的增加,获取该区域内路况信息所消耗的时间对比,实验结果如图10所示。

图10 区域路况信息获取时间对比

在图10中,当只有一辆汽车时,由于无需从其他汽车获取路况信息,而只需通过本车搭载的传感器获取,因此获取路况信息的时间为0。随着车辆的数量增加,可以发现基于CCN的汽车获取路况信息的时间并没有出现大幅度增加,基本保持线性增加,这是因为在使用CCN的过程中,需要发布Interest包,消耗一定的网络带宽,同时需要其他车辆对Interest包进行校验、报错等操作。而对于基于802.11通信的无人驾驶车辆,获取到整个区域的路况信息需要每个车辆广播各自获取到的路况信息,因此获取路况信息的时间随着车辆数量的增加会出现大幅增长。

下面验证系统的丢包率,模拟实验区域中有100辆无人驾驶汽车相互通信。丢包率是通过一辆汽车发送数据包的数量和其他车辆接收到的数据包的数量的比值。对比实验为标准八叉树的数据包以及原始的3D空间数据包,实验结果如图11所示。具体实验结果如表1所示。

图11 丢包率对比

表1 标准八叉树和CCN编码丢包率比较

当通信数据包数量为104个左右时,网络中的数据量维持在较低水平,因此3种方法的丢包率都比较低。随着数据包数量的增加,CCN采用新型编码格式,使得在相同的路况信息下,每个数据包丢包率相对较小。由于标准八叉树的数据包存在大量冗余,数据包相对较大,因此丢包率会随着数据包数量的增加呈线性增加。对于原始数据而言,因为数据没有压缩,随着数据包的增加,整体数据的传输量呈指数倍增加,所以丢包率会随着数据包的增加出现大幅增加。然而从表1可以看出,虽然CCN采用的编码方式能有效降低数据传输的丢包率,但是随着数据包数量的增加,其提升比例一直在90%以上,说明相比标准八叉树编码方法,CCN编码方式的丢包率提升上限为90%左右。测试系统安全性的测试场景为一个十字路口,如图12所示。

图12 系统安全性测试场景

对比实验采用802.11通信的无人驾驶汽车,比较的结果为探测到视觉上看不到的车辆的概率。实验结果如图13所示。

图13 探测成功率对比

在十字路口进行探测时,由于本文方法采用CCN通信模式,随着车辆数量的增加,车辆获取十字路口信息的数据包并没有随着车辆的增加而增加,基本上在一辆无人驾驶汽车获取到相关信息后其他车辆也有同样的路况信息,因此成功率基本保持不变,而对于采用802.11标准通信的无人驾驶车辆而言,在广播时需要增加大量通信,直接导致大幅增加数据传输延时,因此在快速通过十字路口时,探测到其他车辆的成功率呈指数倍下降。

本文验证无人驾驶汽车的成本,由于本文实验设定的用户需求是最短时间到达目的地,实验场景为晚高峰18:00,以无权重的Dijkstra算法求出两点间的最短距离作为基准,在每种场景下,模拟30辆汽车随机时间出发从起点到达目的地,取实验结果平均值,如表2所示。

表2 无人驾驶汽车使用成本对比

在表2中,基准方法使用无权重的Dijkstra算法,距离相对较短,而本文方法和基于802.11的方法采用有权重的Dijkstra算法,计算距离相同,仅在行车过程中因为交换数据使用的时间稍长导致行车所需时间略有增加,因此,相对于基准方法的距离有所增加。但是基准方法获取路径经过的路口多且拥堵严重,虽然距离短,但使用时间更长。

6 结束语

本文提出一种基于内容中心网络的无人驾驶方法。阐述基于CCN的无人驾驶汽车的整体结构,并在此基础上介绍立体路况信息采用的八叉树格式以及编码格式。通过分析无人驾驶汽车的通信模式,设计基于CCN的通信模型,并给出Interest包和Data包的数据结构。由对比实验得出,与基于传统的无线网络的方法相比,本文方法的实时路况信息获取时间大幅降低,并且随着通信数据量的增加,不可视汽车的探测成功率有大幅提升。并且通过无人驾驶汽车的成本对比,证明虽然本文方法提供的路径不是最短,但是使用时间较少。然而由于本文实验均是在模拟环境中测试得出,为了验证本文方法的有效性,今后将在实际生活中进行更真实的测试,提高无人驾驶系统的实用性。

[1]中国统计年鉴2013[EB/OL].[2014-11-16].http://www.stats.gov.cn/tjsj/ndsj/2013/indexch.htm.

[2]修彩靖,陈 慧.无人驾驶车路径跟踪控制研究[J].计算机工程,2012,38(10):128-130.

[3]Wikipedia.Google Driverless Car[EB/OL].[2014-11-16].http://en.wikipedia.org/wiki/Google_driverless_car.

[4]Hedgecock W,Maroti M,Ledeczi A,et al.Accurate Real-time Relative Localization Using Single-frequency GPS[C]//Proceedings of the 12th ACM Conference on Embedded Network Sensor Systems.New York,USA:ACM Press,2014:206-220.

[5]王明军,张 毅,宋靖雁,等.基于VC的AHS车辆自动驾驶仿真实现[J].计算机工程与应用,2004,40(34):202-205.

[6]Lacoste J,Boubekeur T,Jobard B,et al.Appearance Preserving Octree-textures[C]//Proceedings of the 5th International Conference on Computer Graphics and Interactive Techniques in Australia and Southeast Asia.New York,USA:ACM Press,2007:87-93.

[7]Benjamin E,Barakat C.CEDO:Content-centric Dissemination Algorithm for Delay-tolerant Networks [C]//Proceedings of the 16th ACM International Conference on Modeling,Analysis & Simulation of Wireless and Mobile Systems.New York,USA:ACM Press,2013:377-386.

[8]Mohaisen A,Zhang Xinwen,Schuchard M,et al.Protecting Access Privacy of Cached Contents in Information Centric Networks[C]//Proceedings of the 8th ACM SIGSAC Symposium on Information,Computer and Communications Security.New York,USA:ACM Press,2013:173-178.

[9]Muecke K,Powell B.A Distributed,Heterogeneous,Target-optimized Operating System for a Multi-robot Search and Rescue Application[M]//Mehrotra K G,Mohan C K,Oh J C,et al.Modern Approaches in Applied Intelligence.Berlin,Germany:Springer-Verlag,2011:266-275.

[10]Recent Research on NDN(Name Data Networking)and New Identifier[EB/OL].[2014-11-16].http://netarchlab.tsinghua.edu.cn/~junbi/NDN.htm.

[11]Google Inc..Google Earth[EB/OL].[2014-11-16].https://www.google.com/earth/.

[12]Evans A,Agenjo J,Blat J.Web-based Visualisation of Onset Point Cloud Data[C]//Proceedings of the 11th European Conference on Visual Media Production.New York,USA:ACM Press,2014:345-363.

[13]吉云松,史胜辉,张 弛,等.基于CityGML和 W3DS的分布式三维空间数据共享案例研究[J].煤炭技术,2009,28(11):109-111.

猜你喜欢
八叉树路况无人驾驶
高速公路路况信息系统
三维十字链表八叉树的高效检索实现
我们村的无人驾驶公交
无人驾驶车辆
无人驾驶公园
从路况报道看广播“类型化”新闻的要素构成
高速公路实时路况分析系统方案
浅谈微信在路况信息发布中的应用
散乱点云线性八叉树结构在GPU中的实现
沪将建600-800km有轨电车 未来或“无人驾驶”