rk3588跑通速腾雷达RS16的ros点云读取
常规驱动安装流程
正常使用电脑端来跑 RS16 的 ros 驱动,是没有太多问题的,直接跟着说明书来一步步操作即可,说明书链接:
https://github.com/RoboSense-LiDAR/rslidar_sdk/blob/main/README_CN.md
速腾的这个说明书写的还是很详细的。只是如果是跑在嵌入式端,例如我想使用 rk3588 来跑,就会遇到一些问题。
rk3588驱动安装遇到的问题及解决
我在rk3588上安装驱动主要遇到的问题就是 libpcap 的安装问题,因为直接使用说明书中的:
sudo apt-get install -y libpcap-dev
会提示找不到包(已经换源),这时候就需要使用源码安装的方式来安装,整个步骤就非常麻烦。
libpcap 会依赖两个包flex与bison,也是同样的使用 apt-get install 会报错,需要源码安装。
flex与bison安装
wget https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz
wget http://ftp.gnu.org/gnu/bison/bison-3.7.tar.xz
使用上述命令下载包,如果是 windows 的话,使用下面链接直接下载:
http://mirrors.ustc.edu.cn/gnu/bison/bison-3.1.tar.xz
https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz
下载后,将包拷贝到 rk3588 里面,运行下述指令安装:
tar -xzf flex-2.6.4.tar.gz
cd flex-2.6.4
./configure --prefix=/usr/local && make && sudo make install
tar -xf bison-3.7.tar.xz
cd bison-3.7
./configure --prefix=/usr/local && make && sudo make install
使用 version 指令验证是否安装成功:
flex --version
bison --version
libpcap安装
在安装完上述两个包后,就可以进行 libpcap 的安装,也是同样的下载包:
wget https://www.tcpdump.org/release/libpcap-1.10.4.tar.gz
tar -xzf libpcap-1.10.4.tar.gz
cd libpcap-1.10.4
sudo apt-get install -y build-essential flex bison # 如果系统缺编译链
./configure --prefix=/usr/local
make -j$(nproc)
sudo make install
$(nproc) 根据你自己的板子性能来,我的就 2 就行。
手动配置rk板的网络端口
按照上述说明书中的端口配置即可,不过需要写上网关,192.168.1.1:
能够 ping 通192.168.1.200 就表示能收到雷达数据了。
修改rs驱动代码中的参数文件
参数文件需要根据自己的雷达类型修改即可:
如果编译能成功但运行节点失败
如果 catkin_make 能够成功编译,但运行节点失败,报错,我的会报错,也是与 libpcap 库有关,报错信息为:
error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory
这是由于安装了 libpcap 动态库但是找不到的问题,我们把库的路径添加进去即可,使用以下命令查找库的路径:
sudo find / -name "libpcap.so*"
例如我的结果:
就把对应的路径添加到 ld.so.conf 中,就可以永久生效库的查找路径:
echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/libpcap.conf
sudo ldconfig # 立即刷新缓存
之后再运行,就可以正常运行 ros 节点,读取到点云: