OriginBot 适配笔记之乐动14雷达
前言
在机器人系统中,激光雷达通常被用于环境感知和导航。然而,由于不同激光雷达的性能和功能存在差异,当需要升级或更换激光雷达时,需要进行一系列的操作。在本文中,我们以OriginBot小车为例,介绍如何OriginBot小车搭载的搭载了EAI YDLIDAR X3雷达换成乐动14的步骤和注意事项。
硬件选型
在选择激光雷达时,我们通常会考虑到几个因素,测量半径、扫描频率、测量频率、扫描角度以及它的价格。
首先来介绍这几个参数的含义。
测量半径:激光雷达的测量半径是指它能够测量到的最远距离。测量半径取决于激光雷达发射的激光束的功率和接收器的灵敏度。同时,测量半径还受到测量环境的影响,如光照强度、气体浓度等。
扫描频率:激光雷达的扫描频率是指它每秒钟扫描的次数。扫描频率越高,激光雷达测量数据的更新速度就越快,扫描频率的提高会增加激光雷达的功耗和成本。
测量频率:激光雷达的测量频率是指它每秒钟发射的激光束的数量。测频率决定了激光雷达在单位时间内测量的点云数据量。测量频率的提高会增加激光雷达的功耗和成本。
扫描角度:激光雷达的扫描角度是指它每次扫描的范围。扫描角度的大小取决于激光雷达的设计和应用场景。通常,扫描角度在几度到360度之间。扫描角度的增加会增加激光雷达的扫描时间和功耗。
接下来,来看一下这两款激光雷达的这几个参数。

从这几项参数来看,LD14较EXI X3 在各项指标上可调空间小一些,但是不影响我们的适配。
硬件替换
硬件的替换时很简单的,两款激光雷达采用的接口是一致的,所以我们选择把线路替换到另外一台上面,有时候也要考虑一下功率问题。

软件适配
在软件适配上,先来看OriginBot小车是如何实现雷达驱动的。
在originbot_bringup/launch/ydlidar.launch.py中实现有关雷达实现方式,内容如下:
可以看到直接调用了ydlidar_ros2_driver_node这个节点并作了一次tf变换。再来看这个节点的实现,originbot_driver\ydlidar_ros2_driver中便实现了ydlidar的驱动代码。如此一想,是不是我只需要将LD14的驱动SDK拉出来就可以了。
不妨试试。
拉下来后,需要做这几步
第一步,通过板载串口或者USB转串口模块(例如,cp2102模块)的方式使雷达连接到你的系统主板.
第二步,设置雷达在系统中挂载的串口设备-x权限(以/dev/ttyUSB0为例)
实际使用时,根据雷达在你的系统中的实际挂载情况来设置,可以使用ls -l /dev命令查看.
第三步,修改launch/目录下雷达产品型号对应的lanuch文件中的port_name值,以 ld14.launch.py 为例,如下所示.
接下来,编译它。
最后测试一下它是否能够采集到数据。
效果如下:


采集到数据后,我们还需要做一些TF的变换,因为在OriginBot上,雷达TF为laser_link,所以launch文件直接改为:
这样就大功告成了!
功能运行示例
运行导航示例:
SSH连接OriginBot成功后,在终端中输入如下指令,启动机器人底盘和激光雷达:
为了便于发布导航的目标点,在同一网络下的PC端,启动上位机可视化软件:
通过SSH连接OriginBot,在终端中输入如下指令,启动NAV2导航功能包:
最终效果如下:
