背景:本文介绍思岚RPLIDAR C1激光雷达的基础使用, 后续再介绍激光雷达的常用玩法,比如SLAM建图、避障等。之所以入手RPLIDAR C1,一是因为便宜,二是因为是新款。对于初学者,性能参数上的差异并不会给学习带来什么障碍。
测试环境:树莓派4B + Ubuntu22.04 Desktop 64bit + 思岚RPLIDAR C1激光雷达
1. 思岚RPLIDAR C1激光雷达介绍
不同品牌激光雷达参数对比及思岚各型号激光雷达参数对比
从官网把相关资料下载下来:
https://www.slamtec.com/cn/Support#rplidar-c1
下载的文件就以下这些。
资料简单浏览,先把SDK中demo跑起来
2. SDK编译与测试
2.1 测试demo介绍
SDK中提供几个简单demo,ultra_simple和simple_grabber, 此外frame_grabber只支持Win32,ubuntu跑不了。
ultra_simple:
该示例程序演示 PC 通过串口与 RPLIDAR 进行连接,并不断的将 RPLIDAR 扫描数据输出的最简单过程
simple_grabber:
该示例程序演示了 PC 通过串口与 RPLIDAR 进行连接,并获取 RPLIDAR 序列号、固件版本以及自身健康状况等信息。随后示例程序将采集 2 周的 360 度扫描数据,并采用柱状图的形式在命令行模式下将 0-360 度环境下的测距信息显示出来。用户可以根据需要获取完整的扫描数据。
frame_grabber:
该示例程序演示 PC 通过串口与 RPLIDAR 进行连接,实时采集雷达扫描数据,并在 GUI 界面上将 0-360 度环境下的测距信息以平面图的方式显示出来。注意,此示例程序只有 Win32 版本。
2.2 Rplidar SDK下载
ssh登录树莓派,下载sdk:
git clone git@github.com:Slamtec/rplidar_sdk.git
2.3 Rplidar SDK编译
编译我们是直接是在树莓派+ubuntu 64bit上进行,所以也不用配置交叉编译工具链了, 切到SDK目录并编译(这里设置aarch64-linux-gnu编译64bit程序,官方指导是编译32bit,注意替换下)
cd rplidar_sdk
chmod +x cross_compile.sh
CROSS_COMPILE_PREFIX=aarch64-linux-gnu ./cross_compile.sh
官方文档给的步骤编译出来的是32bit程序,编译后执行程序会提示文件不存在,主要原因就是编译出来的工具是32bit,可以安装32位库解决(sudo apt-get install ia32-libs),但是没必要。直接按上述步骤编译64bit程序即可
sudo apt install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
cd rplidar_sdk
chmod+x cross_compile.sh
CROSS_COMPILE_PREFIX=arm-linux-gnueabihf ./cross_compile.sh
2.4 跑测试demo
编译完成后,跑下demo程序
ultra_simple:
sudo ./output/Linux/Release/ultra_simple --channel --serial /dev/ttyUSB0 460800
simple_grabber:
sudo ./output/Linux/Release/simple_grabber --channel --serial /dev/ttyUSB0 460800