这是一款用于扫地机器人的激光雷达,从老兰家购入。
特性如下:
- 单线
- ToF(信号折返时间算出距离)
- 机械旋转式
到手后分析,一共引出三条线,根据 PCB 上的标识,确认为 +5V,TX(串口),GND。但没法确定通信协议。
之前有接触过采用串口的激光雷达,一般会使用固定包头作为分界符。用串口助手抓包,大概分析了一下,包头是 55 AA 03 08
。这里有一个 Tips:就是用 LLM 来辅助分析,这次的例子:https://chatglm.cn/share/FWGdl。
得到包头之后,直接在 Github 上以代码搜索,整理出相关 Repo:
- Vidicon/camsense-X1:图纸、电路、通信协议逆向
- IljaRukin/camsense_X1_lidar:Python 程序,用 matplotlib 实时展示点云,方便快速验证雷达是否可用。
- anhui1995/Camsense_X1:STM32 驱动(在这里才发现之前卖 25 元)
- Vidicon/camsense_driver:ROS1 驱动
- rossihwang/ros2_camsense_x1:ROS2 驱动
题外话
一开始找激光雷达的资料,在淘宝上按以图搜图找了一款相似的,叫 YDLIDAR X2,后面找资料发现 YDLIDAR X3 更为相似,X2 和 X3 的 SDK 是相同的,看通信协议文档是 55 AA
开头。但后面根据数据包定义没法完全匹配。后面才使用 55 AA 03 08
去搜索。
在 Github 查找这类常量还是比较方便的,比如逆向 BLE 设备,把 Service UUID 放到 Github 上搜索即可。