自动驾驶系统分层模型设计

任务概览
主题
利用网络分层模型的要素,参考功能分层依据,设计一个分层系统,或者用分层模型描述一个系统。
目标
体会分层模型的分层方法和要素
体会垂直分层,纵向服务与被服务关系,横向协议合作关系在分层模型中的设计方法
问题剖析
自动驾驶系统简介
自动驾驶系统系统采用先进的通信、计算机、网络和控制技术,对汽车实现实时、连续控制。采用现代通信手段,直接面对汽车,可实现车地间的双向数据通信,传输速率快,信息量大,后续追踪汽车和控制中心可以及时获知前汽车车的确切位置,使得运行管理更加灵活,控制更为有效,更加适应汽车自动驾驶的需求。
需求分析
自动驾驶汽车需要依靠人工智能、视觉计算、雷达、监控装置和全球定位系统协同合作,让电脑可以在没有任何人类主动的操作下,自动安全地操作机动车辆。最终目标为通过该系统实现完全自动化,即可无人驾驶车辆、允许车内所有乘员从事其他活动且无需进行监控的系统。
对分层的设计需要实现:
垂直分层,下层为上层提供服务
层与层间界限清晰,尽可能独立
层内功能模块按一定的规则交互
分层设计
根据系统内容及需求,我们将自动驾驶系统分为四层模型:
交互层:根据系统做出的决策,替代人类控制车辆正常工作
决策层:处理网络层传来的信息并做出决策判断,判定相应的控制策略
网络层:识别和传递感知层获取的信息
物理层:信息收集与控制
层次分析
物理层
功能
物理层主要负责数据采集以及自动驾驶汽车操作的硬件行为控制。采集的信息包括自信息和互信息。
自信息:车速度、加速度、刹车状态、方向盘转角、GPS位置、本车类型、载员数、载物重
互信息(暂时不考虑存在路人干扰的情况):
与周围车辆1的距离,车辆1在本车的方位;
与周围车辆2的距离,车辆2在本车的方位;
……
与周围车辆n的距离,车辆n在本车的方位。
物理层-网络层数据传输格式
数据内容与格式(data):
#车仪表盘显示速度#加速度#刹车状态#方向盘转角#GPS提供的纬度数据#GPS提供的经度数据#GPS所得车速#GPS所测车航向#车型号#载员数#载物重#周围车辆数#车辆1与本车距离#车辆1在本车的方位#…#车辆n与本车距离#车辆n与本车的方位#
例:
#060.00#-01.500#50#+030#N04546.4089#E10246.1089#055.00#30#BJ2020S#2#250#1#90#
参数标准设计
车仪表盘显示速度:整数位为3位,小数保留2位,单位为 km/h;
加速度:符号位(‘+’‘-’)一位,整数位2位,小数位3位,单位为 m/s2;
刹车状态:三位数表示,取值为0~100,表示刹车的下压程度,0表示未踩刹车,100表示刹车踩死,下压程度100%;
方向盘转角:一位符号位(‘+’‘-’),三位数字位,符号位为正,表示顺时针转动方向盘,反之为逆时针,数字位表示转动角度;
GPS提供的纬度数据:一个符号位(‘N’‘S’),五位整数位,四位小数位,dddmm.mmmm(度分)格式(前面的0也将被传输);
经纬度计算规则:如接收到的纬度是4546.4089
4546.40891/100=45.464089**可以直接读出45度, 4546.40891-45*100=46.4089, 可以直接读出46分,46.4089–46 =0.4089*60=24.5346读出24秒, 所以纬度是:45度46分24秒
GPS提供的经度数据:一个符号位(‘E’‘W’),数字位dddmm.mmmm,计算方法同纬度的计算方法;
GPS所得车速:由于车仪表盘的速度和GPS所测的速度是有所不同的,根据实际的需要,所以准备两份数据,格式同车仪表盘的速度传输格式;
GPS所测车航向:偏离正北的角度,数据范围0~ 360,0表示正北方向,90正东和180表示正南方向,270正西;
车型号:根据车的不同型号提供不同的数据,无特定格式;
载员数:数据范围0~N,N为车限制载人数,1,为只有司机一人;
载物重:载物重根据车上的测重系统所得,更具车型不同有不同的计算方法和传输格式,单位为kg;
周围车辆数:数字N,范围为 N>=0;
车辆1与本车距离:直线相对距离,单位m;
车辆1在本车的方位:相对方位,以车正对方向为0度,俯视,顺时针扫描,记录转动的角度,范围0~360度,精确到小数后两位;
车辆n与本车距离:同车辆1;
车辆n与本车的方位:同车辆1。
物理层和网络层的接口设计和数据文件的封装
参数说明
flg:标志位,101,表示上传数据,由物理层传送到网络层,来自采集的信息;102表示下载数据,由决策层传送到网络层,再到物理层的数据,系统将根据这些数据对车辆的下一步对对应参数做出调整;
Serial number:序列号,根据数据采集产生的顺序形成的序列号;
Time:数据采集时间;
total length:首部和数据的总长度;
source address:源地址;
destination address:目的地址;
data:采集的需传输的数据。
数据包解封
flg=102的数据包来自网络,数据内容是决策层对本车下一步状态的控制,解封时,验证源地址是否为本车网络层,目的地址是否为物理层,再通过total length检查数据完整性,最后取出数据,将数据作于于对应位置。
网络层
功能
网络层实现数据的存储、查询、分析,以及对等层的数据交换,数据交换过程中的加密功能。
加密协议
加密协议是用于在数据的传输、交换过程中通过加密技术建立安全通信以保障驾驶安全以及用户信息安全的协议。
自动驾驶的应用会使得更多的数据将会被使用、传输,因此自动驾驶数据的安全性需要极其关注。需要避免汽车收集数据的恶意篡改导致操作失误,以及用户隐私的泄露(如家的地理位置等等)。所以我们将采用加密协议来对数据进行加密处理,实现隐私数据的安全传输。
该协议可以对传输的隐私数据进行对称密钥加密,在保证一定的传输速度的同时,提供一定的安全性。
网络层-网络层之间的数据包格式
为了实现统一性和整体性设计原则,我们把网络层数据包格式和封装的设计与物理层的设计类似,但其传输的数据内容和意义将有变化。如下图所示。
参数说明
flg:这个传输包flg=203,表示这个包属于网络层之间的传输的数据包。
Serial number和Time位与原包相同,不发生变化。
total length:表示这个包首部和数据的总长度。
source address:本车网络层的地址;
destination address: 邻车网络层地址;
data:数据内容源于对flg=10的数据包解封,但只传输一部分数据,这部分数据包含如下:
#车仪表盘显示速度#加速度#刹车状态#方向盘转角#车型号#周围车辆数#车辆1与本车距离#车辆1在本车的方位#…#车辆n与本车距离#车辆n与本车的方位#
网络层与决策层之间的数据封装格式
参数说明
flg :flg =201,表示该数据是由网络层传送至决策层;flg=202,表示该数据是由网络层传送至网络层的数据;
Serial number :序列号,根据数据包生成顺序形成的序列号;
Time :数据包生成时间;
total length :首部和数据的总长度;
source address ;源地址,本车网络层地址或决策层地址;
destination address :目的地址,本车网络层地址或决策层地址;
flg1/flg2:由于网络层向决策层传输数据包含了本车的数据和邻车的数据,而决策层向网络层的下行数据包只包含对本车下一步决策的数据,不再包含邻车的数据,所以接下来这几个数据会由于flg=201或flg=202不同而不同:
flg=201时,flg1=1,flg2=1,表示这是个上行数据包,data1、data2都有数据,其中data1是本车的数据,data2是邻车的数据;
flg=202时,flg=1,flg2=0,表示这是个下行数据包,仅data1有数据;
Data 1 acquisition time/Data 2 acquisition time:数据获取或生成时间,这里指最开始数据的采集时间,或者针对flg=202时,指的是决策生成时间;
Length of the data 1/Length of the data 2:表示data1/data2的数据长度。
数据包解封
- 对flg=102的数据包进行解封
flg=102的数据是从物理层传送到本层网络层的,解封检查源地址与目标地址,源地址应该是本层,目标地址为本层(网络层)的地址,若不满足条件,则丢弃该数据,最后经过total length验证数据完整性,取出数据(data),以便分析时使用。
- 对flg=202的数据包进行解封
flg=202的数据包是由决策层传输至网络层的,数据包最终作用于物理层,用于将决策层对汽车的下一步状态的控制,解封检查源地址是否为本车决策层地址,目的地址是否为本车网络层地址,再用total length和Length of the data 1验证数据完整性,最后取出数据。
- 对flg=203的数据包进行解封
flg =203的数据是网络层之间传输的,所以对收到的flg=2的数据包,源地址是临车的网络层地址,目的地址是本车的网络层地址,然后通过total length检查数据完整性,最后取出数据。
决策层
功能
决策层通过网络层提供的数据来对汽车下一步行为的决策,同时实现车与车之间决策信息的交换、计算与冲突解决,最终将关键的决策信息上传于交互层。
差错控制协议
差错控制协议用于作为自动驾驶系统的网络层中,车辆之间数据交换的可靠传输协议。
在自动驾驶系统中,提高收集数据的准确性可以保证自动驾驶的安全性。因此数据的准确获取与传输至关重要。在网络层,不同的车辆间将会互相进行数据的交换,而车辆所获取的数据可能存在错误。因此,利用差错控制协议比对交换的数据,来控制可能出现的数据错误而导致的决策层误判。
在比对数据时,若发现交换的数据不同(误差不可接受),说明可能发生数据的错误,则要求物理层在合理时间范围内重新收集并传输数据,进行再次比对;若超过时间范围,则不向物理层请求重传而使用原始数据。
例:在网络层数据的初步分析中,会进行数据对比(两辆车的基础数据进行对比),如A车测得B车在东南方向50m,则B车应该检测到A车在自己西北50m,但B车实际传入的数据是A车在西北100m处,这时候网络层通过这个协议判断出原始数据存在较大的误差,这会影响决策层的决策,所以网络层丢弃这份数据,发送指令让物理层重新采集数据,我们称之为差错控制协议。
决策选择协议
决策选择协议是从多个决策中选出最优决策以做出最优操作行为,并避免与其他自动驾驶车辆产生决策冲突的协议。
在车道上一般会有多辆车在行驶,如果车辆根据获取的数据采取了相互冲突的行驶行为,就很有可能会发生碰撞等意外情况,造成安全事故。所以通过设计决策选择协议,在多个决策当中选择车辆间互不冲突的决策达到规避事故的目的,并顺利完成行驶。
决策层根据网络层信息做出多个决策,并预先将每个决策通过算法计算出执行决策后的行车数据。进一步,交换比对车辆间的“决策后行车数据”,判断出执行某一决策后是否会产生车辆间的行驶冲突,会则舍弃该决策,不会则选择该决策。
决策层数据包
参数说明
flg说明:
flg=301,表示决策层向交互层发送的数据包,这里的数据包内容包含有:汽车当前状态、下一步决策,这个数据包的意义就是将这些参数外显给用户;
flg=302,表示交互层向决策层发送的数据包,这个数据包传输的是用户下达的指令,如更改目的地、减速等指令,决策层处理这些指令,并转换格式编码,传输给执行的物理层;
flg=303,表示决策层之间传输的数据包,为了确保两辆或多辆车之间的决策不会冲突,说以,车辆之间的决策需要共享,若存在冲突,则根据协议需要更改;
Serial number、Time、total length同上说明;
数据包解封
对flg=201,数据进行解封:数据来源于网络层,包含了本车和邻近车量的状态数据,解封时,验证源地址、目的地址、数据长度。
交互层
功能
交互层将决策层的决策信息呈现给用户,并实现不同车辆人员之间的信息交互(包括通话、娱乐等)。
第四层主要是人机之间的交互,还有就是两辆车上的用户通过交互层进行互动,这些完全可以引用和参考其他协议的实现,如HTTP、XMPP等,因此这里不再赘述。
参考资料
汤珺雅,李莉,刘凌,汪伟,王文明,谢勇波 . 基于全时空数据的驾驶行为模型设计 . [2017]
韩双双,王迎春,要婷婷,曹东璞,王飞跃 . 平行智能车:基于CPSS的网联自动驾驶汽车 . [2017]
陈海明,崔莉,谢开斌 . 物联网体系结构与实现方法的比较研究 . [2013]
魏歌 . 不同物联网架构的分层标准的研究 . [2015]
彭赟,刘志雄,刘晓莉,孙云莲,査晓明,饶凌平 . TCP/IP网络体系结构分层研究 . [2014]
K. M. Alam, M. Saini and A. E. Saddik . Toward Social Internet of Vehicles: Concept, Architecture, and Applications .[2015]
彭锴 . 网络安全分层评价体系模型设计 . [2016]
鸣谢:琦琦子、林林子