Rplidar扫描测距传感器测试说明.docx
- 文档编号:14574423
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:18
- 大小:600.17KB
Rplidar扫描测距传感器测试说明.docx
《Rplidar扫描测距传感器测试说明.docx》由会员分享,可在线阅读,更多相关《Rplidar扫描测距传感器测试说明.docx(18页珍藏版)》请在冰点文库上搜索。
Rplidar扫描测距传感器测试说明
Rplidar360度二维激光扫描测距传感器测试说明
目录
1.测距原理2
2.性能参数2
3.通讯与接口3
4.请求命令与数据获取3
4.1请求命令总览3
4.2停止扫描(STOP)命令请求4
4.3测距核心软重启(RESET)命令请求4
4.4开始扫描采样(SCAN)命令请求与回应数据格式5
4.5强制扫描采样(FORCE_SCAN)命令请求与回应数据格式7
4.6设备信息获取(GET_INFO)命令请求7
4.7设备健康状态获取(GET_HEALTH)命令请求9
4.8总结10
5.测试说明11
5.1供电与功耗情况11
5.2测试时外围接线11
5.3数据接收12
5.4曲线拟合13
Rplidar360度二维激光扫描测距传感器是指:
RoboPeak开发的二维激光雷达(LIDAR)
解决方案,下文简称RPLIDAR
1.测距原理
RPLIDAR采用了激光三角测距技术,配合RoboPeak研发的高速的视觉采集处理机构,
可进行每秒高达2000次以上的测距动作。
每次测距过程中,RPLIDAR将发射经过调制的红
外激光信号,该激光信号在照射到目标物体后产生的反光将被RPLIDAR的视觉采集系统接
受。
经过嵌入在RPLIDAR内部的DSP处理器实时解算,被照射到的目标物体与RPLIDAR的
距离值以及当前的夹角信息将从通讯接口中输出。
图1RPLIDAR测距工作原理
2•性能参数
RPLIDAR主要技术参数如下表所示:
项目
单位
量小值
典型值
量大值
备桂
米〔m)
0.1S-6
持定
基于白色髙反光物体测得
扫描角度
®(Deg)
不适用
Ck360
不适用
测距分辨車
毫素
不适用
<0.5
不适用
测量物体在L弓狀以内
(mm)
垃实际距离的1%
■全剖量程范围内.
轴度分辨率
度|D翊
不适用
不适用
5.5hz扫描时
单次测距时厠
不适用
05
不适用
测■频率
赫
不适用
^2000
2010
扫描360的频瘵*典型値
扫描频率
赫兹(Hz)
1
55
10
为一次打播恰好360个采
样点的惜况
图2RPLIDAR测试性能
3.通讯与接口
4.
RPLIDAR标准配置采用3.3V电平的串口(UART)作为通讯接口,并且可以随着客户需求采用USB等其他接口。
图3RPLIDAR通讯接口和通讯参数
5.请求命令与数据获取
4.1请求命令总览
下表列出了被RPLIDAR支持的请求命令,他们的具体使用与RPLIDAR的回应数据格式
将在后文分别介绍。
命令名
值
员載雌
应答模戒
RPUDAR执行操作
STOP
0x25
无
无应答
离幵扫描采祥模式.谱人空闲狀态
RESET
0x40
无
测距核心软崖启
SCAN
0x20
无
多次应答
请求进入扫描乘需状态
FQRCE_SCAN
0x21
无
请求进人扫播采样狀态,强制数据输出
GET_INFO
0x50
无
单次应答
获取设备序列号等信息
GET_HEALTH
0x51
无
获取设备傩康狀态
图4请求命令总览
4.2停止扫描(STOP)命令请求
请求报文:
A525
在外部系统发送了请求命令字段为停止扫描(STOP,0x25)的请求报文后,RPLIDAR将退出正在进行的扫描采样状态,关闭测距系统和激光器,进入空闲模式。
如果RPLIDAR先
前已经工作在空闲状态或者保护停机状态下,则该命令则会被忽略。
RPLIDAR不会为该请求发送回应报文。
建议外部系统需要在发送该请求命令后,延迟1ms以上时间后发送下一次请求。
图5STOP请求的通讯时序
4.3测距核心软重启(RESET)命令请求
在外部系统发送了RESET请求后,测距核心将进行软重启操作。
软重启将测距系统恢复到与通电后一样的状态下。
当RPLIDAR因为故障进入了保护性停机后,外部系统就可以
尝试发送RESET命令尝试将RPLIDAR恢复至正常工作状态。
RPLIDAR不会为该请求发送回应报文。
建议外部系统需要在发送该请求命令后,延迟2ms以上时间后发送下一次请求。
请求报文:
A540
外部系统
A5
…
A5
40
RP
图6RESET请求的通讯时序
4.4开始扫描采样(SCAN)命令请求与回应数据格式
请求报文:
A520
A5
5A
05
00
00
40
81
数据应答类型:
多次数据应答长度:
5bytes
RPLIDAR工作在空闲状态时,在外部系统发送了该请求后,将开始进入测距采样。
每个测距采样点将使用数据应答报文发送至外部系统。
如果RPLIDAR先前已经工作在测距采样
状态,则RPLIDAR首先将停止正在进行的测距采样功能,并重新开始新一轮的测距采样操作。
当RPLIDAR进入保护性停机后,该命令请求将被忽略。
RPLIDAR会在接受该请求后立刻发送起始应答报文,表示RPLIDAR接受了进入扫描采
样状态的请求。
扫描采样的数据应答报文将在RPLIDAR的扫描电机稳定旋转后不断的发送
给外部系统,直到外部系统发送新的请求而停止扫描采样或者RPLIDAR出现故障为止。
数据应答报文格式:
RPLIDAR使用如下的数据应答报文结构:
图7扫描测距输出的数据应答报文
RPLIDAR在扫描测据中会将每个采样点通过上述结构的数据应答报文发送至外部系统。
其中各字段定义如下:
字段名
描述
举例催注
s
扫描起始标志位.
S=1表示新的一闕360度扫描的幵始©
s
扫描起始标志位的取反,始终有
可用于数据应答报文起始字
节的判断和数据校验
c
校验位・永远为1
可用干数据应答报文起始字节的判断和数据校验
quality
采样点信号质崖
与澈光接收信号底鼠相关
angle_q6
测距点相对于RPLIDAR朝向夹博(角度表示,[0-360),使用定点小数表示
具体定义见示菠圈。
冥际角度
=angle_q6/64.0Deg
distance,q2
测距点相对于RPUDAR的距离(毫米单位).使用定点小数表示
当采集到无效点时.该字段为零。
具体定义见示意图*
实际距离
=distanceq2/4,0mm
图8SCAN请求的通讯时序
4.5强制扫描采样(FORCE_SCAN)命令请求与回应数据格式
请求报文:
A5
21
起始应答:
A5
5A
05
00
00
40
81
数据应答类型:
多次数据应答长度:
5bytes
强制扫描采样(FORCE_SCA使得RPLIDAR忽略当前扫描电机的工作状态而强行进行扫描测距并发送数据应答。
该请求可以用于设备测试。
RPLIDAR采用与开始扫描采样(SCAN)命令类似的处理逻辑来响应强制扫描采样请求。
起
始应答报文与数据应答报文均与针对SCAN的应答报文一致。
4.6设备信息获取(GET_INFO)命令请求
请求报文:
A5
50
起始应答:
A5
5A
14
00
00
00
04
数据应答类型:
单次数据应答长度:
20bytes
为应彳
RPLIDAR在收到外部系统发送该请求后,将自身诸如序列号、固件鬻詈硬件版本譲信息作答发送回外部系统。
数据应答报文格武:
a
0
字节偏移:
+0
model
8
0
+1
firmware_minor
1
J
0
+2
firmwaremajor
80
+3
hardware
S
0
+4
serialnumber[O]
各字段定义:
字段名
描述
举例曲
model
RPLIDAR型号
正在使用的RPLIDAR型号
firmwaneuninor
固件版本号,次版本号
固件版本中的小数部分
flrmwareLmajor
固件版本号,主版本号
固件版本中的整数部分
hardware
硬件版本号
serialnumber[16]
16字节的晦一序列号
文本表示上,低字节数据在前’高字节部分在后
AS
5A
14
00
00
00
04
图11GET_INF请求的通讯时序
4.7设备健康状态获取(GET_HEALTH)命令请求
起始应答:
A55A300000006
数据应答类型:
单次数据应答长度:
3bytes
外部系统可以通过发送该请求了解RPLIDAR测距核心的工作状态。
如果RPLIDAR因为
内部故障进入了保护性停机模式,则会在该请求的应答中发送对应的错误代号。
数据应答报文格式:
图;设备健康状态请求对应的数据应答报文
上述报文中各字段的含义见下表:
图12GET_HEALTH请求报文
当外部系统检测到RPLIDAR进入保护性停机模式后,可以尝试发送重启(RESET)命令尝试重启RPLIDAR解决问题。
如果RPLIDAR多次进入保护性停机模式,则表示内部系统可能
出现了不可恢复性损伤。
4.8总结
上文只是对RPLIDAR的请求、应答报文做简要的说明,具体内容参照:
360度二维激光
扫描测距传感器\rplidar360激光扫描测距传感器资料\rplidar_sdk_v1.4.5\doc\zh-cn\rplidar_inteface_protocol_cn.pdf。
6.测试说明
5.1供电与功耗情况
RPLIDAR采用测距逻辑系统与电机系统分别供电的模式。
外部系统需要单独为这两个部
分供应电能以确保扫描测距数据的精确性。
下图展示了推荐的供电模式。
具体的规格信息
请参考下文表格。
a.evfivoc低纨波
3.6V-6VDC大电禎i
•仅针对型号Al閘1
珈目
单位
量小值
共型値
最大惶
备注
测量系统电压
伏特俚)
1.6
S
6
推荐侵用低统跛屯晾
测量系蛟电瀧
時定
40
70
5"供电.休概时
(mA)
130
200
5V供业・工作中
电机系鞍电圧
伏特世>
36
5
6
用户呵能需姿按照宾际M描蓟速调益电圧
电机系统电流
(mA)
持定
100
持定
5V供电时测御
图13RPLIDAR供电与功耗
5.2测试时外围接线
测试时使用的为HLP的UART4作为与RPLIDAR的通讯口,设置波特率为115200,8位数据位,1位停止位,无校验位。
由于HLP板没有引出定时器引脚,无法直接使用定时器产生PWM因此采样PA0口模拟PWM波,PA0经过光耦隔离后控制RPLIDAR的MOTOCTL脚来控制电机的旋转。
图14测试时外围接线
5.3数据接收
在rplidar_test中创建了两个任务YY_Task和A1M1_Task,在YY_Task中,主要对
RPLIDAF进行连续的开启10s,关断5s的控制,用来测试对RPLIDAR勺控制是否正常。
RPLIDAR在接收到开始扫描采样(SCAN)命令请求后,首先发送起始报文,接着不断的发送报文,将扫描采样的数据发送出来。
为了获取RPLIDAR发送的数据,在程序中开启UART4接收中断,
在即p_vect.c中编写UART4中断函数voidBSP_IntHandlerUSART4(void),并在中断处
理函数中对接收的数据进行简单处理。
UART4中断处理程序中不断的将接收的数据存入
A1M1_RXbuffer数组中,当接收的数据中连续出现A55A0500004081时说明RPLIDAR
准备输出采样数据,在紧接的5个字节在一个方向所测得距离值。
以下为扫描采样后返回的
+3
+4
80
distance_q^[7:
oj
8O
distanceq2(lS;81
为了方便处理接收到的数据,定义以下结构体:
typedefstruct
{
floatsync_quality;//信号强度floatangle_q6_checkbit;//角度floatdistance_q2;//距离
}rplidar_response_measurement_node_t;
typedefstruct
{
u8model;//传感器型号
u16firmware_version;//固件版本号u8hardware_version;//硬件版本号
u8serialnum[16];//16字节的产品序列号
}rplidar_response_device_info_t;/***************设备状态结构体
typedefstruct
{
u8status;//A1M1状态
u16error_code;//错误代码}rplidar_response_device_health_t;
在数据处理时根据RPLIDAR回应的数据格式,对接收到的数据进行相应的移位、组合
等处理后,赋值给结构体内的变量。
以扫描采样的数据处理为例:
A1M1_measurement_Data[pos].angle_q6_checkbit=((px[1]|(px[2]<<8))>>
RPLIDAR_RESP_MEASUREMENT_ANGLE_SHIFT)/64.0;//角度
A1M1_measurement_Data[pos].distance_q2=((px[3]|(px[4]<<8)))/4.0;//距离
A1M1_measurement_Data[pos].sync_quality=px[0]>>
RPLIDAR_RESP_MEASUREMENT_QUALITY_SHIFT;//信号强度
RPLIDAR在距离超出测量范围(0.15〜6米)或者反射光较强时会出现信号强度弱的情
况,在程序中对采样点的信号强度进行判断,当出现信号强度小于一定值(10)时,认为本
次采样的数据无效,用以减小采样过程中出现的偏差。
5.4曲线拟合
由于采样的角度不连续,采样角度之间有一定的间隔,为了获取没有采样到的角度所对应的距离,在程序中添加多项式拟合、拉格朗日插值、最小二乘法程序,根据所得到的角度、距离,输入角度来获取在该角度所对应的距离。
编写了如下的函数实现曲线拟合:
voidPolynomial_Curve_Fitting(doublex[],doubley[],intn,intM,doublec[]);为多项式曲
线拟合,根据数组x,y中的数据,n为已知点的个数,M为多项式的项数,将计算出的多项式的系数保存到数组c中,然后根据数组c中的系数得出多项式,再利用floatGet_Center_Offset(floatangle1,floatangle2)函数得出对应角度的距离,再算出两个角度的中心点以及偏移量。
intSmooth(doublex[12],doubley[12],doublea[4],intn,intm);为最小二乘法拟合曲线,根据数组x、y,已知点个数n,多项式项数m,得出多项式系数,并保存到数组a中。
CPU_FP32Lagrange_exra(CPU_FP32xx,doubleLagrange_x[],doubleLagrange_y[],
CPU_INT08Un)为插值算法,根据的数组x、y,插值次数n,直接算出xx角度所对应的
距离。
具体的工程为60度二维激光扫描测距传感器\Rplidar_Test\Rplidar_Test.eww。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Rplidar 扫描 测距 传感器 测试 说明