6-无人驾驶教学平台—毫米波与激光雷达融合模块

项目:毫米波与激光雷达融合模块
1、预修内容
进行实验课程时,应先确保已学习本套课程中的:
➢毫米波雷达的数据解析实验;
➢16线激光雷达的障碍物检测实验;
➢16线激光雷达的点云聚类实验。
从以上三个实验中掌握毫米波雷达CAN数据的解析方法、基本的16线激光雷达障碍物提取方法和点云聚类算法,并了解多传感器融合的结构模型和常用方法。
2、实验目的
HYLARANA GUENTHERI
熟悉并掌握无人驾驶汽车环境感知系统中多传感器融合的必要性及常用算法。本实验以16线激光雷达和毫米波雷达两种传感器融合为例,采用目标级融合结构模型,首先分别对两种传感器的检测数据进行预处理,得到单个传感器对于前方目标的探测信息,如位置、速度等;然后将两种检测结果转换至车辆坐
标系下进行时空对齐,并将毫米波雷达的测速结果赋给对应的激光雷达检测目标,从而得到关于同一目标更加准确、完整的统一位置、大小和速度信息。
3、实验环境
软件环境:Ubuntu16.04系统,ros-kinetic,pyqt5。
硬件设备:小旋风第四代无人驾驶车,标配镭神16线激光雷达、大陆ARS408毫米波雷达、6通道超声波雷达、魔客仕单目相机、联适导航R60北斗/GNSS接收机。
4、实验内容
1)针对大陆ARS408毫米波雷达对其输出的CAN数据进行解析,获得极坐标系下的目标距离、方向、相对速度等信息,然后进行预处理,使其转换至平面直角坐标系下,得到毫米波雷达对检测目标的位置、速度信息。
2)针对镭神16线激光雷达对其输出的点云数据进行预处理,首先采用边长为0.1米的小立方体对解析后的原始点云进行降采样,使用小立方体的形心来表
示这个立方体的所有点,保留这些点作为降采样的输出;然后采用绝对高度算法滤除地平面,得到检测障碍物的点云图;最后利用自适应欧几里得聚类算法获得检测目标的位置、大小等信息。
3)将两种传感器得到的目标信息进行时空对齐,统一转换至车辆坐标系下进行目标级融合,得到关于同一目标更加准确、完整的统一位置、大小和速度信息。
4)DEMO示例软件的运用练习。
5、实验方式
每位同学独立完成实验内容,与指导教师讨论,并按计划上车实践。
6、实验开发步骤
掌中万维从内容上分析,可将本实验分为3部分:毫米波雷达数据预处理、激光雷达数据预处理和多传感器融合。毫米波雷达数据预处理是指对解析后的毫米波雷达检测数据进行坐标转换,得到平面直角坐标系下目标的位置、速度信息。激光雷达数据预处理是指对解析后的激光雷达点云数据进行降采样、地平面分割、点云聚类操作,得到其检测障碍物的位置、大小信息。多传感器融合模块是对两种传感器各自检测到的目标进行目标级融合,得到关于同一目标更加准确、完整的信息。总的系统框图如图1所示。
图1系统总体框图
6.1毫米波雷达数据预处理
小旋风第四代无人车采用的毫米波雷达为大陆ARS408毫米毫米波雷达,该雷达综合宽视角中距离(60米)和窄视角长距离(175米)于一体,可提供中距离宽覆盖范围和高分辨率长距离功能。中距离宽视角不仅可以发现邻近车道侧向切入的车辆,而且可以识别交叉在大车间的车辆和行人。长距离可提供精确的距离和速度数据,具有强大的目标区分能力,最多可识别64个目标。其扫描范围示意图如图2所示。
图2大陆ARS408毫米波雷达及扫描范围
1)数据解析。ARS408毫米波雷达的数据传输方式为:CAN 总线。解析毫米波雷达的CAN 数据需要按照正确的CAN 协议进行解析,其输出目标信息的数据格式如表1所示,地址为500~53F,共64个目标:
表1输出CAN 数据协议
具体代码实现如下:
if (uiID >=1280&&uiID <=1343){//地址为500~53F int i =uiID -1280;//共64个目标,id 为0~63//计算距离temp =0;
temp =(short)(pData[2]&0x07);temp <<=8;temp +=pData[3];
RadarRecData[i].Range =temp;//factor 0.1m //计算角度temp =0;
temp =(short)(pData[1]&0x1f);temp <<=5;temp +=(short)((pData[2]&0xf8)>>3);short angle =temp;//factor 0.1度//转成+/-有正负才会涉及到补码问题if (angle >511){
angle -=1024;//补码需要自己判断}
RadarRecData[i].Angle =angle;//计算速率temp =0;
temp =(short)(pData[6]&0x3f);temp <<=8;temp +=pData[7];//转成+/-if (temp >8191){temp -=16384;
Ident
Message
Start bit
Length Description Range Units Scali ng Defa ult Cycle Time 500-53F CAN_TX_TRACK_R ANGE 24
11
Range
(+)=away from sensor set at 204.7if>204.70to 204.7
m
0.1
50ms
500-53F CAN_TX_TRACK_R ANGE_RA TE 56
14
Range Rate
(+)=away from sensor set at 81.91if>81.91set at -81.92if<-81.92
-81.92to 81.91
m/s 0.01
81.91
50ms
500-53F CAN_TX
_TRACK _ANGLE
19
10
Azimuth 0=toward front of vehicle parallel to vehicle centerline (+)=clockwise set at 51.1if>51.1set at -51.2if<-51.2
-51.2to 51.1deg 0.1050ms
}
RadarRecData[i].RangeRate=temp;//cm/s16383
//目标的状态
RadarRecData[i].DetectStatus=(pData[1]&0xe0)>>5;
RadarRecData[i].IsUpdatedFlag=1;
}else{
switch(uiID){case0x4E0:
if((pData[1]>>6)&0x01){emErr_ESR=Err;
}else{
emErr_ESR=Err_NORMAL;
}
break;default:
break;
}
}
2)坐标转换。解析后得到的毫米波雷达检测目标信息有距离、角度、速度等,其数据格式为极坐标,需要转换到平面直角坐标系中,得到目标的位置、速度。具体代码实现如下:
double PI=3.1415926;
for(int k=0;k<MaxTarNum_64;++k){
//add calibration
double Angle_Rad=
(RadarRecData[k].Angle+m_RadarCaliInfo.DeltaAngle/10)*PI/1800;//0.1degree
RadarRecData[k].Distance=RadarRecData[k].Range*cos(Angle_Rad)
+m_RadarCaliInfo.DeltaY/10;//纵向距离,单位:dm
RadarRecData[k].LatPos=RadarRecData[k].Range*sin(Angle_Rad)
+m_RadarCaliInfo.DeltaX/10;//横向距离,单位:dm
RadarRecData[k].RelSpd=RadarRecData[k].RangeRate*cos(Angle_Rad);//速度,单位:cm/s
}
for(int i=0;i<64;++i)
里约欢迎你{
xfradar_parse::radarobject ob;memset(&ob,0,sizeof(ob));
float x=(data[i].LatPos);//x方向距离,单位:dm
float y=(data[i].Distance);//y方向距离,单位:dm
巴彬斯基征float speed=(data[i].RelSpd);//速度,单位:cm/s
ob.id=i;//ID值楸叶泡桐
ob.x=x*0.1;//x方向距离,单位:m
城市规划论坛
ob.y=y*0.1;//y方向距离,单位:m
}
6.2激光雷达数据预处理
小旋风第四代无人车采用的激光雷达为镭神16线激光雷达,如图3所示。

本文发布于:2024-09-22 14:30:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/20789.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:目标   实验   数据   进行   检测   得到
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议