基于LABVIEW的VELODYNE16线激光雷达驱动

基于LABVIEW的VELODYNE16线激光雷达驱动

使用UDP模块接收激光雷达发送的数据包
根据激光雷达数据包格式进行解包

VLP16_LABVIEW.rar https://download.csdn.net/download/rmrgjxeivt/64593253
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

具体协议如图
在这里插入图片描述
激光雷达采用UDP协议传输数据,获取激光雷达数据的方法:1、自编写代码获取雷达的数据,2、可通过Wireshark软件实时的获取激光雷达的数据,激光雷达每一帧的数据长度固定为1248字节,其中分别为前42字节的前数据包标识、12组数据包、4字节时间戳和最后两字节雷达型号参数。12组数据包中前两字节为数据包的开始标识(0xFFEE)、接下去两字节为的旋转角度(当前角度)值和连续32*(2字节的距离值+1字节的激光反射强度值)字节的距离信息,其中323字节分别为雷达两次获取探测信息,每个数据包开头所携带的旋转角度是指当前数据包前163字节对应的角度,而后16*3字节对应的旋转角度激光雷达没有直接给出,需要通过计算前后两次旋转角度然后求取平均值获得。其帧格式如下图所示:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
一部分

依据上图数据包的最左边为00000h表示行标识,左图第一行画红线部分FFEE为数据包的开头标识,E063十六进制两字节标识当前选择角度,B6072A三字节前两字节B607标识雷达激光的探测距离信息,2A表示激光反射强度。右图画红线部分最后面六个字节表示数据帧的时间戳和雷达信息参数,其中6D69940F表示时间戳而3722表示雷达的参数信息。

1、旋转角度值的计算

例如上图第一个数据包的旋转角度为0xE0、0x63

a、反转两个字节变成十六进制63E0

b、把63E0变成无符号的十进制为25568

c、再把25568处于100.0得到255.68,那么得到的值255.68就是当前的旋转角度值

2、16线激光分别测得的距离

例如上一个图第一个数据包第一个激光线的距离,其值为B6072A

a、B6072A其中B607为距离2A为反射强度,首先反转两个距离的字节变成07B6

b、把07B6变成无符号的十进制为1974

c、该型号雷达的分辨率为2.0mm,所以激光束测得的距离为1974 * 2mm = 3948mm

d、3948mm转化为米等于3.948m

3、获得帧的时间戳和雷达型号参数

例如上一个图最后六个字节的数据6D69940F3722

a、前四个字节的数据为时间戳为6D69940F,然后反转顺序0F94696D

b、0F94696D无符号十进制的值为261384557,单位为us

c、把261384557除以1000000可获得当前的时间(单位:秒)

d、后两个字节3722表示雷达的型号和参数,具体的意义如下图所示:

在这里插入图片描述

4、把角度和距离信息转化为三维坐标XYZ值,如下图所示:

在这里插入图片描述

其中R的值为激光雷达测得的与障碍物的直线距离,该值为上述第2点测得的值,其中垂直角度ω可通过查表方法获得,每个激光束对应的角度ω是固定的本文第一张图所示,而α则有第1点测得的旋转角度值。已知旋转角度α、垂直角度ω和R通过图中所述的公式即可求得XYZ值。
————————————————

协议部分参考资料:https://blog.csdn.net/qq_34911636/article/details/89946329

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值