TOF Laser Range Sensor
| |||||||||||||||||||||
| |||||||||||||||||||||
说明
产品简介
TOF Laser Range Sensor是一款基于TOF (飞行时间) 技术的激光测距传感器,内置控制器和测距算法。 测距范围可达5m,精度高达±1.5cm,分辨率可到1mm。支持UART和CAN通信,支持主动与查询输出数据,支持级联测距。 可以作为测距工具进行距离检测,也可作为机器人避障/路线规划,还可用于无人机定高/天花板检测等领域。
产品特点
- 基于TOF (飞行时间) 激光测距技术
- 支持UART、CAN通信 (UART、CAN共用接口)
- 支持短、中、长三种距离测量模式
- 支持多种FOV角度设置,可以满足多种场景需求
- 支持输出距离测量值dis、距离状态dis status、信号强度signal strength等信息
- 支持两种输出方式:主动输出与查询输出
- 支持多模块级联
- 支持升级固件
- 3.7 ~ 5.2V供电,防反接保护
- 功耗约290mW
- 940nm激光符合IEC 60825-1:2014第3版规定的Class1标准
产品参数
典型测距范围 (0.01~5.00m) |
短距:0.012~2.16m |
---|---|
中矩:0.012~3.60m | |
长距:0.01~5.00m | |
典型测距精度 | 短距:精度±1.0cm,标准差<0.3cm |
中距:精度±1.0cm,标准差<1.5cm | |
长距:精度±1.5cm,标准差<0.5cm@0.01~3m, 标准差<8cm@3~5m | |
测量分辨率 | 1mm |
波长 | 940nm (符合Class1标准) |
视场角 (FOV) | 15°~27° (多档位可调) |
通信接口 (UART/CAN) |
UART (2个接口可同时作为UART接口,TTL信号线电平3.3V) |
CAN (2个接口可同时作为CAN接口) | |
通信波特率 | UART:115200~3000000bps (默认921600bps) |
CAN:100000~3000000bps (默认100000bps) | |
主动输出速率 | 10Hz |
级联数量 | UART接口支持级联多达8个,CAN接口支持级联多达7个 |
供电电压 | 3.7~5.2V |
产品功耗 | 290mW (UART主动输出,长距模式供电电压5.0V,电流58mA) |
产品重量 | 2.7g |
产品尺寸 | 35.58 × 12 × 8.05mm (长 × 宽 × 高) |
应用场景
- 无人机定高、天花板检测
- 机器人避障
- 测量与检测
- 智能手势控制
- 1维手势识别
工作原理
TOF是一种绝对距离检测技术,即传感器发出经过调试的近红外光,遇物体后反射,传感器通过计算光线发射和反射时差或相位差,来换算被拍摄景物的距离,以产生深度信息。相比于双目方案与3D结构光方案,TOF具有工作距离远,适用场景广,较远距离精度高等优点。因此常被应用于人员接近检测、机器人避障、照相机自动对焦等场合。室外环境中有来自太阳光的近红外光,会对模块的测量效果产生影响。
功能描述
【ID | 身份标识】
- ID是用于区分不同传感器而设定的一个变量,在级联连接时用于识别各个传感器。
【Interface & Baudrate | 接口与波特率】
TOFSense支持配置为UART与CAN两种通信方式:
- UART串口通信波特率设置范围如下:
UART串口波特率 | 说明 |
---|---|
115200,230400,460800,921600,1000000,1200000,2000000,3000000 | 默认波特率为921600 |
- CAN通信波特率设置范围如下:
CAN波特率 | 说明 |
---|---|
100000,250000,500000,1000000,2000000,3000000 | 默认波特率为100000 |
接口数据输出模式设置:
【Distance Status | 距离状态指示】
模块可以输出当前距离状态,用户可结合距离状态进行数据处理,距离状态含义如下:
数值 | 说明 |
---|---|
0 | 测量距离有效 |
1 | 标准差大于15mm |
2 | 信号强度低于1Mcps |
4 | 相位超出界限 |
5 | HW或VCSEL出现故障 |
7 | 相位不匹配 |
8 | 内部算法下溢 |
14 | 测量距离无效 |
【Signal Strength | 信号强度】
- 指示当前返回信号的强度,该值越大表明返回信号越强。
【FOV | 视场角】
- FOV视场角的大小决定了TOFSense的视野范围,模块可以更改X方向视场角fov.x、Y方向视场角fov.y、X方向偏移fov.x_offset、Y方向偏移fov.y_offset。
X、Y方向视场角设置范围15°~27°,X、Y方向视场角偏移设置范围-6°~ 6°。可通过上位机软件进行设置。
- 模块初始视场角参数fov.x=27°、fov.y=27°、fov.x_offset=0°、fov.y_offset=0°。
通过设置X方向视场角25°、Y方向视场角15°、X方向偏移1°、Y方向偏移-1°。
可以将模块感兴趣区域变为下图所示:
说明:较小的FOV 可以提高模块狭小空间以及小物体的探测性能,但是FOV视场角的改变也会对模块的最远测距距离产生影响,视场角越小,最远测距距离越小。
【Indicator Light | 指示灯】
- 指示灯共两种闪烁状态,快速闪烁0.1S闪烁一次,慢速闪烁1S闪烁一次。LED状态与含义如下:
状态 | 说明 |
---|---|
快速闪烁(间隔0.1S) | 模块启动阶段 |
快速闪烁(间隔0.1S) | 模块固件更新 |
慢速闪烁(间隔1S) | 模块正常工作 |
【Function Key | 功能按键】
- 用于在CAN通信模式下进行参数配置。按住按键上电直到指示灯慢速闪烁,则强制进入UART输出模式。
【CascadeRanging | 级联测距】
说明:级联测距下,适合UART查询、CAN查询、CAN主动输出三种方式。
协议解析
- 协议由 Frame Header(帧头)、Function Mark(功能字)、Data(数据)、Sum Check(校验和)组成。
- 其中 Frame Header、Function Mark 为固定不变的数值;
- Data 为传输的数据内容;
- Sum Check 为 Frame Header、Function Mark、Data 相加求和(即前面所有字节相加)后的最低字节。
- 协议组成:
Frame Header + Function Mark + Data + Sum Check
说明:协议包遵循小端模式原则,即低字节在前,高字节在后。
- TOFSense _UART_Frame:
- 数据来源: 将模块连接上位机,配置UART为主动输出模式。
- 原始数据:
57 00 ff 00 9e 8f 00 00 ad 08 00 00 03 00 ff 3a
- 解析表:
- 解析表:
Data | Type | Length (Bytes) | Hex | Result |
---|---|---|---|---|
Frame Header | uint8 | 1 | 57 | 0x57 |
Function Mark | uint8 | 1 | 00 | 0x00 |
reserved | uint8 | 1 | ff | * |
id | uint8 | 1 | 00 | 0 |
System_time | uint32 | 4 | 9e 8f 00 00 | 36766ms |
dis*1000 | uint24 | 3 | ad 08 00 | 2.221m |
dis_status | uint8 | 1 | 00 | 0 |
signal_strength | uint16 | 2 | 03 00 | 3 |
reserved | * | 1 | ... | * |
Sum Check | uint8 | 1 | 3a | 0x3a |
- TOFSense _UART_Read_Frame:
- 数据来源: 将模块连接上位机,配置为UART查询输出模式,id为0,通过上位机发送下列数据实现数据查询。
- 原始数据:
57 10 FF FF 00 FF FF 63
- 解析表:
- 解析表:
Data | Type | Length (Bytes) | Hex | Result |
---|---|---|---|---|
Frame Header | uint8 | 1 | 57 | 0x57 |
Function Mark | uint8 | 1 | 10 | 0x10 |
reserved | uint8 | 2 | ff | * |
id | uint8 | 1 | 00 | 0 |
reserved | uint8 | 2 | ff | * |
Sum Check | uint8 | 1 | 63 | 0x63 |
- TOFSense _CAN_Frame:
- 数据来源: 模块配置为CAN主动输出模式,id为1,连接CAN接收设备。
- 原始数据:
AD 08 00 00 03 00 FF FF
- 解析表:
- 解析表:
Field name | Part | Level | Type | Length(bits) | Hex | Result |
---|---|---|---|---|---|---|
Start Of Frame | SOF | * | 1 | * | * | |
Arbitration Field | ID | * | 11 | 0x200+id | 0x201 | |
Arbitration Field | RTR | * | 1 | * | * | |
Control Field | IDE | * | 1 | * | * | |
Control Field | r0 | * | 1 | * | * | |
Control Field | DLC | * | 4 | * | * | |
Data Field | dis*1000 | uint24 | 24 | ad 08 00 | 2.221m | |
Data Field | dis_status | uint8 | 8 | 00 | 0 | |
Data Field | signal_strength | uint16 | 16 | 03 00 | 3 | |
Data Field | reserved | * | 16 | * | * | |
CRC Field | CRC | * | 15 | * | * | |
CRC Field | CRC_delimiter | * | 1 | * | * | |
ACK Field | ACK Slot | * | 1 | * | * | |
ACK Field | ACK_delimiter | * | 1 | * | * | |
End Of Frame | EOF | * | 7 | * | * |
- TOFSense _CAN_Read_Frame:
- 数据来源: 模块配置为CAN查询输出模式,id为1,连接CAN查询设备,配置id_s为2。
- 原始数据:
FF FF FF 01 FF FF FF FF
- 解析表:
- 解析表:
Field name | Part | Level | Type | Length(bits) | Hex | Result |
---|---|---|---|---|---|---|
Start Of Frame | SOF | * | 1 | * | * | |
Arbitration Field | ID | * | 11 | 0x400+id_s | 0x402 | |
Arbitration Field | RTR | * | 1 | * | * | |
Control Field | IDE | * | 1 | * | * | |
Control Field | r0 | * | 1 | * | * | |
Control Field | DLC | * | 4 | * | * | |
Data Field | reserved | uint24 | * | * | * | |
Data Field | id | uint8 | 8 | 01 | id = 1 | |
Data Field | reserved | uint16 | * | * | * | |
CRC Field | CRC | * | 15 | * | * | |
CRC Field | CRC_delimiter | * | 1 | * | * | |
ACK Field | ACK Slot | * | 1 | * | * | |
ACK Field | ACK_delimiter | * | 1 | * | * | |
End Of Frame | EOF | * | 7 | * | * |
- TOFSense _Setting_Frame(Length:32 Bytes) —— RW:
- 解析表:
- 解析表:
软件说明
TOF Assistant是TOF激光测距模块配套的调试软件,主要作用为:配置调试、状态显示、功能应用、固件升级:
- 配置调试:用于配置节点相关参数,如ID、工作模式、波特率等。
- 功能应用:用于应用开发,如数据导入导出、运动轨迹存储、历史轨迹回放等。
- 固件升级:用于给产品进行有线固件升级。
产品尺寸
树莓派使用
树莓派环境配置
- 树莓派串口配置
由于树莓派串口默认用于终端调试,如需使用串口,则需要修改树莓派设置。执行如下命令进入树莓派配置:
sudo raspi-config
选择Interfacing Options ->Serial ->no -> yes,关闭串口调试功能。
需要重启
sudo reboot
打开/boot/config.txt文件,找到如下配置语句使能串口,如果没有,可添加在文件最后面:
enable_uart=1
重启生效
模组参数设置
TOF Laser Range Sensor模块UART波特率需要通过上位机设置成:115200;
树莓派使用TOF Laser Range Sensor模块的效果如下:
硬件连接
Jetson Nano使用
硬件连接
软件设置
TOF Laser Range Sensor模块UART波特率需要通过上位机设置成:115200;
Jetson nano使用TOF Laser Range Sensor模块的效果如下:
Arduino使用
硬件连接
软件设置
TOF Laser Range Sensor模块UART波特率需要通过上位机设置成:115200;
FAQ
Q1. 室外(强光)条件下可以用吗?
模块受自然光影响。一般来说自然光越强,受影响越大,表现为测距距离变短、精度变差、波动变大。强光情况下(如太阳光)一般推荐在近距离检测场景使用。
Q2. 多个模块是否有干扰?
没有干扰。当多个模块同时工作时,即使相互之间的红外光线交叉或打到同一个位置,也不会影响实际测量。
Q3. 为什么TOFSense没有数据输出?
各个模块均经过严格的测试后发货,没有数据时请先自行检查模式、接线、波特率等配置是否正确;对于CAN输出模式,请检查是否含有终端电阻(一般为120Ω)。
Q4. 安装时需要注意什么?
安装时需避免FOV角度内有遮挡。另外需要注意与地面高度,应避免FOV内出现地面遮挡等类似反射面。
Q5. 模块的UART与CAN是同一个接口吗?
模块的UART接口与CAN接口公用相同的物理接口,针对不同的通讯模式转换对应线序即可。
Q6. 如何配置模块为UART或CAN通信模式?
在UART通讯模式下,通过上位机即可将模块配置为CAN通讯模式;在CAN通讯模式下,需按住按键并后将模块上电,当指示灯变为慢速闪烁后松开按键,此时模块强制进入UART模式,再通过上位机写入UART配置即可。
Q7. 模块输出的是最近距离、最远距离还是平均距离?
模块单次测试量会得到FOV内的多组距离值,并由内部处理器处理得到占比最大的距离输出
Q8. 模块是否支持输出点云信息?
模块单次只能输出一个距离,暂时不支持点云信息的输出。
Q9. 模块I/O口工作电平?
固定为3.3V
Q10. 模块怎么控制关机?
不支持关机,目前主动输出和查询输出两种模式,功耗约290mW。
Q11. 打开软件报错“由于找不到 MSVC***.dll 文件……”,可能是电脑缺少微软相应运行时组件,选择系统对应位数下载安装通常即可解决?
Visual C++ Redistributable for Visual Studio 2017,若上述安装失败或者 显示成功但打开NAssistant程序仍提示缺少dll文件,则尝试安装 KB2999226 补丁程序,注意,请选择电脑系统对应版本补丁程序,详细请参考博客关于 api-ms-win-crt-runtimel1-1-0.dll 缺失的解决方案
Q12. 打开软件报错“由于找不到Qt***.dll……”?
请检查安装文件是否被360等安全软件无声拦截,请退出安全软件后,重新安装。另外以管理员权限运行