D200 LiDAR Kit

来自Waveshare Wiki
跳转至: 导航搜索
Triangulation-D200-LiDAR-Kit
{{{name2}}}
{{{name3}}}
功能简介
特性 三角雷达
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 UART

说明

产品简介

LD14P主要由激光测距核心,无线传电单元,无线通讯单元,角度测量单元、电机驱动单元和机械外壳组成。 LD14P测距核心采用三角测量法技术,可进行每秒4000次的测距。每次测距时,LD14P从一个固定的角度发射出红外激光,激光遇到目标物体后被反射到接收单元。通过激光、目标物体、接收单元形成的三角关系,从而解算出距离。 获取到距离数据后,LD14P会融合角度测量单元测量到的角度值组成点云数据,然后通过无线通讯将点云数据发送到外部接口。同时电机驱动单元会驱动电机,通过PID算法闭环控制到指定的转速。

产品特点

  • 基于用三角测量法
  • 支持UART通信
  • 测量半径8m
  • 4000Hz测量频率
  • 360°扫描范围
  • 激光安全符合FDA Class 1标准
  • 紧凑型外观
  • 可通过串口通信来控制雷达启停

产品参数

测距范围
0.1 ~ 8.0m
测距均值精度*
白色靶面
测量距离D
±5mm (0.1≤D≤0.5m)
±10mm (0.5<D≤1m)
±1.0% (1<D≤6m)
±1.5% (6<D≤8m)
测距均值精度*

黑色靶面
测距量程 D

±7mm (0.1≤D≤0.5m)
±12mm (0.5<D≤1m)
±1.2% (1<D≤4m)
±1.5% (4<D≤6m)
NA (6<D≤8m)
扫描频率 默认 6Hz,2 ~ 8Hz 外部可控
扫描角度 360°
测距频率 4000 Hz
抗环境光 80000Lux (阳光内部测试标准)
激光波长 775 ~ 800nm (典型值 793)
通信接口 UART @ 230400
工作电压 DC 5V±10%
工作电流 ≤300mA
产品功耗 产品功耗
工作温度范围 -10℃~50℃
产品重量 101g
使用寿命 2200h
  • 说明:

1. 白色材质反射率为 80%;黑色材质反射率为 4.0%;(为 C84-III 反射率测试仪测试结果)
2. 测距精度:每个点距离采集挡板中心处水平 ±1° 内,连续 30 次数据计算的均值;

应用场景

  • 教育科研
  • 机器人避障
  • 测量与检测
  • 智能手势控制
  • 2维手势识别
  • 自主导航
  • 地图重建
  • 导航和定位

使用方式

【通信】

LD14P 使用 1.25mm 4PIN 连接器(卧式带卡扣)与外部系统连接,实现供电和数据接收,具体接口定义和 参数要求见下图/表:
LIDAR-LD14-02.jpg

No 功能 类型 描述 最小值 典型值 最大值
1 PWM/RX 输入 外部控速/雷达数据输入 3V 3.3V 3.6V
2 GND 供电 电源负极 - 0v -
3 TX 输出 雷达数据输出 3v 3.3V 3.6v
4 VCC 供电 电源正极 4.5V 5V 5.5V

LD14P的数据通讯采用标准异步串口(UART)双向通行,其传输参数如下表所示:

波特率 数据长度 停止位 奇偶校验位 流控制
230400 8 Bits 1 No NO

【坐标系定义】

LD14P使用左手坐标系,旋转中心为坐标原点,旋转中心与主动轮中心连线方向为零度方向,旋转角度沿着顺时针方向增大。具体如下图所示:
LIDAR-LD14-03.jpg

【光学窗和机械尺寸】

LD14P的测距单元中的激光发射与接收,需要一个光学窗口,在结构上需要露出。外部系统对该窗口的部分遮挡,将在一定程度上影响 LD14P的测距性能。下图为光学窗口尺寸(单位: mm)。外形尺寸公差是+0.3/-0.3mm。
LIDAR-LD14-04.jpg

其他安装尺寸见下图(单位:mm):
LIDAR-LD14-05.jpg

【连线方法】

硬件线材连接及说明

1) 产品、线材、USB 转接板,如下图所示:
屏幕截图 2023-05-04 105107.jpg

2) 连接示意,如下图所示:

企业微信截图 16831670296952.png

软件说明

解压 CP210x_Universal_Windows_Driver 驱动程序包后,执行驱动程序安装包目录下的 exe 文件,根据 Windows 系统版本,选择 X86(32 位)或者 X64(64 位)。

Rj.jpg

双击 exe 文件,按提示进行安装操作。

Tj1.jpg
安装完成后,将开发套件中 USB 转接板与电脑相连,可以右键点击【我的电脑】,选择【属性】,在打开的【系统】界面下,选择左边菜单中的【设备管理器】进入到设备管理器,展开【端口】,可看到识别到的 CP2102 USB 适配器所 对应的串口号,即驱动程序安装成功,下图为 COM3。

014.png

LdsPointCloudViewer 软件使用

实时扫描的点云可视化软件 LdsPointCloudViewer,开发者可使用该软件直观地观察本产品的扫描效果图。在使用该软件前要确保本产品的 USB 转接板的驱动程序已安装成功,并将本产品与 Windows 系统 PC 的 USB口互连,然后双击 LdsPointCloudViewer.exe,选择对应的产品型号(如:LD14P)与端口号,点击启动点云刷新按钮,如下图所示。


屏幕截图 2023-05-04 095951.jpg

上图中,Speed 表示激光雷达扫描频率,单位:Hz;Rate 表示激光雷达数据包解析速率;Valid 表示激光雷达测量一圈的有效点。

控速功能介绍

内部控速

LD14P的 Rx 引脚下拉接地,LD14P 上电启动后,LD14P 将进入内部控速模式, 默认扫描频率为 6Hz。

外部控速

LD14P 的外部控速模式分为两种方式,分别是 PWM 控制和串口控制。
1) PWM 控制:
LD14P 的 Rx 引脚接入 PWM 信号,可通过 PWM 信号的占空比控制电机的启、停和转速,触发外部控速的条件:a、输入 PWM 频率 500Hz-5KHz,推荐 1KHz;b、占空比在(45%, 55%)区间内(不包含 45%和 55%),且最少 100ms 持续输入时间。触发外部控速后就一直处于外部控速状态,除非断电重启才会恢复内部控速;同时可以通过调节 PWM 占空比进行转速控制。由于每个产品电机的个体差异,占空比设置为典型值时实际转速可能会有差异,如要精确控制电机转速,需根据接收数据中的转速信息进行闭环控制。注:不使用外部控速时,必须将 PWM 引脚 接地。
2) 串口控制:
LD14P 的 Rx 引脚接入外部设备串口的 Tx 引脚,按照通信接口约定的波特率发送相关控制命令即可进入外部控速。
此功能暂不对外开放,开放后相关控制协议命令将在“通讯协议”章节中展开介绍。

通信协议

启停控制

启动(Mode=0xA0)

当指令中 Mode=0xA0时,指令功能为启动电机,指令中 DataBuffer 无实际意义,默认为0。
雷达应答内容中 BataBuffer 长度为 4Bytes,无实际意义。
参考指令发送: 0x54 A0 04 00 00 00 00 5E
参考应答内容: 0x54 A0 04 00 00 00 00 5E

停止(Mode=0xA1)

当指令中 Mode=0xA1 时,指令功能为停止电机,指令中 DataBuffer 无实际意义,默认为0。
雷达应答内容中 DataBuffer 长度为 4Bytes,无实际意义。
参考指令发送: 0x54 A1 04 00 00 00 00 4A
参考应答内容: 0x54 A1 04 00 00 00 00 4A

数据包格式

LD14P 上电稳定工作后,开始发送测量数据包,不需要发送任何指令。
测量数据包格式如下图所示。

起始符 VerLen 雷达转速 起始角度 数据 结束角度 时间戳 CRC 校验
54H 1 Byte LSB MSB LSB MSB …… LSB MSB LSB MSB 1 Byte
  • 起始符:长度 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 校验:前面所有数据的校验和;

数据结构参考如下:

#define POINT_PER_PACK 12
#define HEADER 0x54
typedef struct __attribute__((packed)) {
   uint16_t distance;
   uint8_t intensity;
} LidarPointStructDef;
typedef struct __attribute__((packed)) {
   uint8_t header;
   uint8_t ver_len;
   uint16_t speed;
   uint16_t start_angle;
   LidarPointStructDef point[POINT_PER_PACK];
   uint16_t end_angle;
   uint16_t timestamp;
   uint8_t crc8;
}LiDARFrameTypeDef;



CRC 校验计算方式如下:

static const uint8_t CrcTable[256] ={
0x00, 0x4d, 0x9a, 0xd7, 0x79, 0x34, 0xe3,
0xae, 0xf2, 0xbf, 0x68, 0x25, 0x8b, 0xc6, 0x11, 0x5c, 0xa9, 0xe4, 0x33,
0x7e, 0xd0, 0x9d, 0x4a, 0x07, 0x5b, 0x16, 0xc1, 0x8c, 0x22, 0x6f, 0xb8,
0xf5, 0x1f, 0x52, 0x85, 0xc8, 0x66, 0x2b, 0xfc, 0xb1, 0xed, 0xa0, 0x77,
0x3a, 0x94, 0xd9, 0x0e, 0x43, 0xb6, 0xfb, 0x2c, 0x61, 0xcf, 0x82, 0x55,
0x18, 0x44, 0x09, 0xde, 0x93, 0x3d, 0x70, 0xa7, 0xea, 0x3e, 0x73, 0xa4,
0xe9, 0x47, 0x0a, 0xdd, 0x90, 0xcc, 0x81, 0x56, 0x1b, 0xb5, 0xf8, 0x2f,
0x62, 0x97, 0xda, 0x0d, 0x40, 0xee, 0xa3, 0x74, 0x39, 0x65, 0x28, 0xff,
0xb2, 0x1c, 0x51, 0x86, 0xcb, 0x21, 0x6c, 0xbb, 0xf6, 0x58, 0x15, 0xc2,
0x8f, 0xd3, 0x9e, 0x49, 0x04, 0xaa, 0xe7, 0x30, 0x7d, 0x88, 0xc5, 0x12,
0x5f, 0xf1, 0xbc, 0x6b, 0x26, 0x7a, 0x37, 0xe0, 0xad, 0x03, 0x4e, 0x99,
0xd4, 0x7c, 0x31, 0xe6, 0xab, 0x05, 0x48, 0x9f, 0xd2, 0x8e, 0xc3, 0x14,
0x59, 0xf7, 0xba, 0x6d, 0x20, 0xd5, 0x98, 0x4f, 0x02, 0xac, 0xe1, 0x36,
0x7b, 0x27, 0x6a, 0xbd, 0xf0, 0x5e, 0x13, 0xc4, 0x89, 0x63, 0x2e, 0xf9,
0xb4, 0x1a, 0x57, 0x80, 0xcd, 0x91, 0xdc, 0x0b, 0x46, 0xe8, 0xa5, 0x72,
0x3f, 0xca, 0x87, 0x50, 0x1d, 0xb3, 0xfe, 0x29, 0x64, 0x38, 0x75, 0xa2,
0xef, 0x41, 0x0c, 0xdb, 0x96, 0x42, 0x0f, 0xd8, 0x95, 0x3b, 0x76, 0xa1,
0xec, 0xb0, 0xfd, 0x2a, 0x67, 0xc9, 0x84, 0x53, 0x1e, 0xeb, 0xa6, 0x71,
0x3c, 0x92, 0xdf, 0x08, 0x45, 0x19, 0x54, 0x83, 0xce, 0x60, 0x2d, 0xfa,
0xb7, 0x5d, 0x10, 0xc7, 0x8a, 0x24, 0x69, 0xbe, 0xf3, 0xaf, 0xe2, 0x35,
0x78, 0xd6, 0x9b, 0x4c, 0x01, 0xf4, 0xb9, 0x6e, 0x23, 0x8d, 0xc0, 0x17,
0x5a, 0x06, 0x4b, 0x9c, 0xd1, 0x7f, 0x32, 0xe5, 0xa8
};
uint8_t CalCRC8(uint8_t *p, uint8_t len){
uint8_t crc = 0;
uint16_t i;
for (i = 0; i < len; i++){
crc = CrcTable[(crc ^ *p++) & 0xff];
}
return crc;
}


测量数据解析

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

起始符 VerLen 雷达转速 起始角度 数据 结束角度 时间戳 CRC 校验
54H 2CH LSB MSB LSB MSB …… LSB MSB LSB MSB 1 Byte
测量点 1 测量点 2 ... 测量点 n
距离值 信号强度 距离值 信号强度 距离值 信号强度
LSB MSB 1 Byte LSB MSB 1 Byte LSB MSB 1 Byte

距离值的单位为 mm。信号强度值反映的是光反射强度,强度越高,信号强度值越大;强度越低,信号强度值越小

每个点的角度值是通过起始角度和结束角度线性插值得来,其角度计算方法如下:

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

参考示例

假设我们收到了如下所示的一段数据

54 2C 68 08 AB 7E E0 00 E4 DC 00 E2 D9 00 E5 D5 00 E3 D3 00 E4 D0 00 E9 CD

00 E4 CA 00 E2 C7 00 E9 C5 00 E5 C2 00 E5 C0 00 E5 BE 82 3A 1A 50
我们对其解析如下:

起始符 VerLen 雷达转速 起始角度 数据 结束角度 时间戳 CRC 校验
54H 2CH 68H 08H ABH 7EH ...... BEH 82H 3AH 1AH 50H
测量点 1 测量点 2 ... 测量点 12
距离值 信号强度 距离值 信号强度 距离值 信号强度
E0H 00H E4H DCH 00H E2H B0H 00H EAH
字段信息 解析
雷达转速 0868H = 2152 度/s;
起始角度 7EABH = 32427,即 324.27 度
结束角度 82BEH = 33470,即 334.7 度
测量点 1-距离值 00E0H = 224mm
测量点 1-信号强度 E4H = 228
测量点 2-距离值 00DCH = 200mm
测量点 2-信号强度 00E2H = 226
测量点 12-距离值 00B0H = 176mm
测量点 12-信号强度 EAH = 234

由于三角测距原理, 上述角度值是未修正的, 具体修订处理过程详见 SDK 源码 transform.cpp 中的 Transform() 函数。

资料

SDK

软件

三维模型


技术支持


联系人:刘工
EMAIL:3005296252@qq.com
QQ:3005296252
微信:扫下方二维码添加
QRCode WeiLiu.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证