adas 先进驾驶辅助系统L2级别测试

根据工作需要学习了一下关于自动驾驶的相关的内容,adaisis是地图数据和adas系统之间的通讯协议,adasis目前已经有 adasis v2和adasis V3 版本应用到车辆上,目前在L2级别驾驶用到了ADASIS V2.

v2中的两个概念:
1. 道路的表示和汽车的位置: 道路由一系列连接起来的点表示,两点之间形成了一个SEGMENT。而车的位置,由车距离SEGMENT起始点的偏移量offset表示。
2. 除了MLP最有可能的路径外,还有多条备选的路径,作为扩展可选功能。
ADASIS v2定义了三种数据类型:
1. 汽车位置
2. 汽车环境信息,包括MLP可能路径的属性。
3. 元数据,定义本协议的一些信息,包括接口版本、地图版本及国家代码等。
以下是v2制定的重要的数据结构,及其应该包含的内容:
位置信息(POSITION)的主要内容包括:路径编号、偏移量offset、速度、与道路的相对方向、当前所在车道、置信度及时间timestamp(相对于上一个GPS信息的时间)。
道路(SEGMENT)的主要内容包括:路径编号、公路等级、类型(如大路、转盘、停车场等)、道路组成(如高速、单双车道等)、限速、车道数目、方向、(隧道、桥梁、分岔路、紧急车道、计算路径、服务区及复杂交叉路口的标志)。
STUB信息(类似SEGMENT之间交点):路径编号、子路径的编号、转角(与下一路段的夹角)、是交叉路口的概率、道路类型及组成、正反向的车道数目、转弯点(转弯到另外一条路上)、是否复杂的交叉路口。
道路形状(PROFILE)的主要内容:路径编号、轮廓类型、轮廓序列点(用于本路段内位置的插值计算)、曲率(高阶插值)。
元数据(META-DATA)的主要内容包括:国家代码、区域(州县)代码、驾驶位(左、右)、速度单位、协议大小版本、硬件版本、地图提供商、地图版本、Horizon Provider兼容和模式信息。
应用范例:
ASR(Adaptive Speed Recommendation)是ADAS中地图数据的典型应用。
ASR要考虑以下因素:曲率、法定限速、十字路口、转盘。
ASR在减速的区域,会提前50-300米提醒用户减速,提前提醒的距离会依据目前车速、汽车刹车速度及司机反映时间。 在有转弯(curve)的路段,要考虑路宽、车道数目、整个路况等,ASR会综合以上因素计算合理的汽车速度。不过,目前地图中道路的曲率的精度不是一直都很精确,所以,一般需要估计和矫正模型进行计算,即ASR要有一定的学习能力。

微信截图_20190527111824.png

在该系统结构中可以看到mapdata 是通过 adas horizon provider 来获取并组织和发送到总线上的,然后由 adas horizon reconstructor进行重构,这个类似于点云的slam构建。

在实际项目中我们完成了adasHP 和adasHR 的开发。我们使用四维的地图,在linux下开发了adasHP,因为四维地图上G所以放到emmc了。通过该程序获取输出数据

下面是截取的报文

(20190319 12:02:17.254)             gpsMain[ 271]<DEBUG>:  read line:$GPRMC,070337.00,A,3228.45295,N,11113.40996,E,45.672,299.86,090918,,,D*59
  
**************//该部分是从gps模块中获取的GPS经纬度信息

//下面是解析的经纬信息
GPRMC,070337.00,A,3228.45295,N,11113.40996,E,45.672,299.86,090918,,,D*59
(20190319 12:02:17.254)      parseGpsBuffer[  58]<DEBUG>:  utctime:070337.00 
(20190319 12:02:17.254)      parseGpsBuffer[  66]<DEBUG>:  speed:45.672 
(20190319 12:02:17.254)      parseGpsBuffer[  69]<DEBUG>:  head:299.86090918 
(20190319 12:02:17.255)      parseGpsBuffer[  72]<DEBUG>:  UTCDate:090918 
1536447817
(20190319 12:02:17.255)             gpsMain[ 301]<DEBUG>:  Convert  to GPSinfo struct :
***************************************=>
[GPS fix type:1
2018-9-9  7 :3 :37 
WGS:0 
lon:111.223499 
lat:32.474216 
orient:299.860909 
speed:23.493677
***************************************<=
[2019.03.19 20:02:17.329][info][msg]  long    ,pathIndex,0,offset,8191cyclicCnt,3retransmission,0update,0,hex:FFFFFFFF48C0FFBF
(20190319 12:02:17.329) av2hp_messageNotify[ 120]<DEBUG>:  av2hp: LONG received
(20190319 12:02:17.329) av2hp_messageNotify[ 131]<DEBUG>:  can message:  ff  ff  ff  ff  48  c0  ff  bf 
[2019.03.19 20:02:17.431][info][msg]  position,PathIndex,8,Offset,488,cyclicCnt,2,positionIndex,0,positionAge,100,speed,88.40,relHeadingAngle,293.39,positionProb,0,positionConfidence,1,currentLane,6,hex:CFFA1D140088E821
(20190319 12:02:17.431) av2hp_messageNotify[ 108]<DEBUG>:  av2hp: POSITION is received
(20190319 12:02:17.431) av2hp_messageNotify[ 131]<DEBUG>:  can message:  cf  fa  1d  14  0  88  e8  21 
[2019.03.19 20:02:17.532][info][msg]  short   ,pathIndex,8,offset,2368,curvature,value0,409,value1,409,distance1,25,curvature0,-0.001400,curvature1,-0.001400,cyclicCnt,3,retransmission,0,update,0,hex:9965960108C84089
(20190319 12:02:17.532) av2hp_messageNotify[ 117]<DEBUG>:  av2hp: SHORT received
(20190319 12:02:17.532) av2hp_messageNotify[ 131]<DEBUG>:  can message:  99  65  96  1  8  c8  40  89 
[2019.03.19 20:02:17.633][info][msg]  short   ,pathIndex,8,offset,2401,curvature,value0,417,value1,417,distance1,25,curvature0,-0.001240,curvature1,-0.001240,cyclicCnt,0,retransmission,0,update,0,hex:A185960108086189
(20190319 12:02:17.633) av2hp_messageNotify[ 117]<DEBUG>:  av2hp: SHORT received
(20190319 12:02:17.633) av2hp_messageNotify[ 131]<DEBUG>:  can message:  a1  85  96  1  8  8  61  89 
[2019.03.19 20:02:17.734][info][msg]  short   ,pathIndex,8,offset,2451,slope,value0,542,value1,542,distance1,23,slope0,3.100000,slope1,3.100000,cyclicCnt,1,retransmission,0,update,0,hex:1E7A780120489389
(20190319 12:02:17.734) av2hp_messageNotify[ 117]<DEBUG>:  av2hp: SHORT received
(20190319 12:02:17.734) av2hp_messageNotify[ 131]<DEBUG>:  can message:  1e  7a  78  1  20  48  93  89 
[2019.03.19 20:02:17.836][info][msg]  short   ,pathIndex,8,offset,2451,curvature,value0,417,value1,432,distance1,23,curvature0,-0.001240,curvature1,-0.000940,cyclicCnt,2,retransmission,0,update,0,hex:B085760108889389
(20190319 12:02:17.836) av2hp_messageNotify[ 117]<DEBUG>:  av2hp: SHORT received
(20190319 12:02:17.836) av2hp_messageNotify[ 131]<DEBUG>:  can message:  b0  85  76  1  8  88  93  89 
[2019.03.19 20:02:17.937][info][msg]  short   ,pathIndex,8,offset,2499,slope,value0,542,value1,542,distance1,25,slope0,3.100000,slope1,3.100000,cyclicCnt,3,retransmission,0,update,0,hex:1E7A980120C8C389
(20190319 12:02:17.937) av2hp_messageNotify[ 117]<DEBUG>:  av2hp: SHORT received
(20190319 12:02:17.937) av2hp_messageNotify[ 131]<DEBUG>:  can message:  1e  7a  98  1  20  c8  c3  89 
[2019.03.19 20:02:18.039][info][msg]  short   ,pathIndex,8,offset,2499,curvature,value0,432,value1,432,distance1,25,curvature0,-0.000940,curvature1,-0.000940,cyclicCnt,0,retransmission,0,update,0,hex:B0C196010808C389
(20190319 12:02:18.039) av2hp_messageNotify[ 117]<DEBUG>:  av2hp: SHORT received
(20190319 12:02:18.039) av2hp_messageNotify[ 131]<DEBUG>:  can message:  b0  c1  96  1  8  8  c3  89 
[2019.03.19 20:02:18.140][info][msg]  short   ,pathIndex,8,offset,2549,slope,value0,542,value1,541,distance1,1,slope0,3.100000,slope1,3.000000,cyclicCnt,1,retransmission,0,update,0,hex:1D7A18002048F589
(20190319 12:02:18.140) av2hp_messageNotify[ 117]<DEBUG>:  av2hp: SHORT received
(20190319 12:02:18.140) av2hp_messageNotify[ 131]<DEBUG>:  can message:  1d  7a  18  0  20  48  f5  89 
[2019.03.19 20:02:18.242][info][msg]  short   ,pathIndex,8,offset,2549,curvature,value0,432,value1,443,distance1,1,curvature0,-0.000940,curvature1,-0.000720,cyclicCnt,2,retransmission,0,update,0,hex:BBC116000888F589
(20190319 12:02:18.242) av2hp_messageNotify[ 117]<DEBUG>:  av2hp: SHORT received
(20190319 12:02:18.242) av2hp_messageNotify[ 131]<DEBUG>:  can message:  bb  c1  16  0  8  88  f5  89 
红色是每间隔100ms吐出的can 报文,参数包含segment的基础信息。

sitemap