学习笔记20230318读取激光雷达数据

最近为了给机器人小车定位,开始考虑使用激光雷达,还没买,先来看看各位大神的文章,所谓兵马未行,粮草先动,在此囤积了三篇以供后续学习查询不时之需。

收获一:

激光雷达基本上长这个样子:

 

操作步骤

要生成激光雷达图像,首先就是获取串口数据了,所以第一步就是读取串口数据:

由于是帮朋友调试,开始朋友给了错误的SDK,导致调试半天没有任何结果,索性用串口助手查看一下这货返回些什么数据:

 

眼神要好,有一列FA,没错,就是250,看样子是帧头,查询一下这款雷达的数据格式:

<start> <index> <speed_l> <speed_h> [Data 0] [Data 1] [Data 2] [Data 3] <checksum_l> <checksum_h> 

<start>:0xFA是固定格式表明数据包开始,可用来从数据流中分割数据包

<index>:数据包的索引号,范围从0xA0 到 0xF9 (每个包4个数据)。

<speed>:有两个speedL和speedH ,它们各一个字节,共同组成转速信息。

<data>:[ Data 0] 到 [Data 3] 是四组测量数据,其中每组测量数据分别由4个字节组成,如下: 

byte 0 : <distance 7:0="">  # 距离信息的0-7位 

byte 1 : <“invalid data” flag> <“strength warning” flag> <distance 13:8=""> # 错误信息标志位 , 警告位, 距离信息13-8位

byte 2 : <signal strength="" 7:0="">  # 信号强度 0-7位 

byte 3 : <signal strength="" 15:8=""> # 讯号强度 8-15位

距离信息的单位是mm ,整个激光雷达的测量范围大概是15cm 到6m, 只需要把距离信息的两个字节组装成一个整数即可(注意判断无效数据位为0,如果为1意味是无效的数据,需丢弃)。 
< checksum>:由两个字节组成的校验码,用来校验整个数据包是否正确。

文章来源: 

(54条消息) C#串口通信 [实战] (读取激光雷达数据,生成图像)_newbie_xymt的博客-CSDN博客

收获二:

M10 系列雷达的点云数据输出和查询以及各种状态的配置都是通过串口来进行。点云 输出的协议为 90 个字节,包含了角度,转速和距离;

1 串口配置

波特率:460800 bps

校验位:NONE

数据位:8

停止位:1

数据格式:HEX

2 点云协议

A5 5A 为帧头

帧头后面就是角度和转速参数,从第 6 个字节开始,就是 42 个距离参数

数据字节说明 angle_CodedDisc: 角度参数,一共两个字节,高位在前,低位在后,为从 0 度(360 度) 开始每 15 度增加的角度信息。例如:0x8C 0xA0 即十进制 36000 表示角度为 360 度,也就 是 0 度; speed: 转速参数,一共两个字节,高位在前,低位在后,表示雷达从一个齿转到下一个 齿所需要的时间计数值,它和转速的计算公式为:转速=2500000/speed。例如:0x10 0x68 即十进制 4200 则转速为每分钟 595.239 转,也就是 10HZ; Distance: 距离参数,一共两个字节,高位在前,低位在后,表示 15 度差分 42 个点之 后对应角度的距离值,单位是毫米。例如:0x13 0x88 即十进制 5000 那么该角度对应的距 离值就是 5 米。

Lidar扫描1圈360°共24组数据,每组90个字节,共计1008个点。

如需下载源码,链接:百度网盘 请输入提取码 提取码:c6kj

如果你觉得还不错,请点个赞鼓励一下( + _ + )


版权声明:本文为CSDN博主「Dakhin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dakhin/article/details/126046225

收获三:

一、接线说明
激光雷达一共有 6 个引脚,其中 2 个 GND,2 个 5V,一对 RX 和 TX 引脚, 按照下表 1-1 的接线要求接在 STM32 单片机上。其中 2 个 5V 因为电流要求, 可以接在 TTL 转串口的 5V 引脚或者 ST Link 的 5V 引脚上。激光雷达的立贴座 端子不能直接与 STM32 连接,需将引脚用排线接出。

在这里插入图片描述


原文链接:https://blog.csdn.net/qq_51963216/article/details/125950816

收获四:获取LD14激光雷达数据

在这里插入图片描述

LD14 支持内部控速和外部控速。在 PWM 引脚接地或悬空时,默认为内部调速,默认转速为 6Hz。外部控速需要在 PWM 引脚接入方波信号,可通过 PWM信号占空比控制电机的启、停和转速。触发外部控速的条件:a、输入 PWM 频率 15-30K,推荐 24K;b、占空比在(45%, 55%)区间内(不包含 45%和 55%),且最少 100ms 持续输入时间。触发外部控速后就一直处于外部控速状态,除非断电重启才会恢复内部控速;同时可以通过调节 PWM 占空比进行转速控制。由于每个产品电机的个体差异,占空比设置为典型值时实际转速可能会有差异,如要精确控制电机转速,需根据接收数据中的转速信息进行闭环控制。注:不使用外部控速时,必须将 PWM 引脚接地或悬空。

通讯协议

一、数据包格式
LD14 采用单向通讯,稳定工作后,即开始发送测量数据包,不需要发送任
何指令。测量数据包格式如下图所示。

在这里插入图片描述

 ⚫ **起始符:**长度 1 Byte,值固定为 0x54,表示数据包的开始;
⚫ **VerLen:**长度 1 Byte,高三位表示帧类型,目前固定为 1,低五位表示
一个包的测量点数,目前固定为 12,故该字节值固定为 0x2C;
⚫ 雷达转速:长度 2 Byte,单位为度每秒;
⚫ 起始角度: 长度 2 Byte,单位为 0.01 度;
⚫ **数据:**一个测量数据长度为 3 个字节,详细解析请见下一小节;
⚫ 结束角度:长度 2 Byte,单位为 0.01 度;
⚫ **时间戳:**长度 2 Byte,单位为 ms,最大为 30000,到达 30000 会重新
计数;
⚫ **CRC 校验:**前面所有数据的校验和;二、测量数据分析


每个测量数据点由 2 个字节长度的距离值和 1 个字节长度的置信度值组
成,如下图所示。

在这里插入图片描述

 距离值的单位为 mm。信号强度值反映的是光反射强度,强度越高,信号强
度值越大;强度越低,信号强度值越小。
每个点的角度值是通过起始角度和结束角度线性插值得来,其角度计算方法

 step = (end_angle – start_angle)/(len – 1);
angle = start_angle + step*i;
其中 len 为一个数据包的测量点数,i 的取值范围为[0 , len )

版权声明:本文为CSDN博主「Deacde_ZY」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45935114/article/details/127379890

今天就先到这里吧,等买了激光雷达再来试试怎么提取数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值