目录
一、环境
- ubuntu:20.04,jetpack:5.0.2,Ros1-Nooetic
二、安装ROS
看我另一篇文章:Jetson AGX Xaiver安装ROS-Noetic
三、本教程支持的雷达型号
- RS-LiDAR-16
- RS-LiDAR-32
- RS-Bpearl
- RS-Helios
- RS-Helios-16P
- RS-Ruby-128
- RS-Ruby-80
- RS-Ruby-48
- RS-Ruby-Plus-128
- RS-Ruby-Plus-80
- RS-Ruby-Plus-48
- RS-LiDAR-M1
- RS-LiDAR-M2
- RS-LiDAR-E1
四、下载rslidar_sdk项目
4.1 使用 git clone
- rslidar_sdk项目包含子模块驱动内核rs_driver。在执行git clone后,还需要执行相关指令,初始化并更新子模块。
git clone https://github.com/RoboSense-LiDAR/rslidar_sdk.git
cd rslidar_sdk
git submodule init
git submodule update
4.2 直接下载
-
用户可以直接访问 rslidar_sdk_release 下载最新版本的rslidar_sdk.
-
请下载 rslidar_sdk.tar.gz 压缩包,不要下载Source code。因为Source code压缩包内不包含子模块rs_driver的代码, 用户还需自行下载rs_driver的代码放入其中才行。
注:请查看rslidar_sdk\src\rs_driver目录下是否有无代码,若无请重新下载或自行下载rs_driver的代码
4.3 相关依赖下载
- 强烈建议安装ROS desktop-full版。这个过程会自动安装一些兼容版本的依赖库,如PCL库等。这样可以避免花大量时间,去逐个安装和配置它们
- 请不要在一台电脑上同时安装ROS和ROS2,以避免可能的版本冲突,和手工安装其他库(如Yaml)的麻烦。
4.3.1 Yaml (必需)
版本号: >= v0.5.2
若已安装ROS desktop-full, 可跳过
安装方法如下:
sudo apt-get update
sudo apt-get install -y libyaml-cpp-dev
4.3.2 libpcap (必需)
版本号: >= v1.7.4
安装方法如下:
sudo apt-get install -y libpcap-dev
五、编译、运行
5.1 打开工程内的CMakeLists.txt文件,将文件顶部的变量COMPILE_METHOD
改为ORIGINAL
#=======================================
# Compile setup (ORIGINAL,CATKIN,COLCON)
#=======================================
set(COMPILE_METHOD ORIGINAL)
5.2 配置电脑ubuntu IP
- 默认情况下,RSLIDAR雷达设备ip设置为192.168.1.200
- PC ip则设置为192.168.1.102;同时默认MSOP端口为6699,DIFOP端口为7788. 所以需将PC ip设置为静态ip 192.168.1.102才能和雷达通信。
- 激光雷达网线连接电脑并接入电源,进入ubuntu系统设置settings,配置有线网络参数,获取方式改为手动。
地址:192.168.1.102 掩码:255.255.255.0
网关:192.168.1.1 DNS:223.5.5.5
- 设置完成后,可以ping一下激光雷达的ip地址,比如我的激光雷达的地址是192.168.1.200
打开终端输入:ping 192.168.1.200
能够ping通,则说明网络连接正常。
5.3 在ROS1(不适用于ROS2)中,直接编译、运行程序。
请先启动roscore,再运行rslidar_sdk_node,最后运行rviz查看点云。
cd rslidar_sdk
mkdir build && cd build
cmake .. && make -j4
./rslidar_sdk_node
六、出现的问题
问题:For frame [XX]: Fixed Frame [map] does not exist
解决方法:重新打开一个终端输入:rosrun tf static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 map rslidar 100
参考博客:RVIZ中的fixed frame选项以及“For frame [XX]: Fixed Frame [map] does not exist”