速腾RS-16激光雷达实战:Ubuntu18.04+ROS Melodic下LeGO-LOAM实时建图避坑全记录
最近在机器人项目里折腾3D建图,手头正好有台速腾聚创的RS-16激光雷达,想着用经典的LeGO-LOAM算法来跑实时建图。本以为照着GitHub的README一步步来就行,结果在Ubuntu 18.04和ROS Melodic这个“经典”组合上,从驱动适配到话题转换,再到参数调优,踩的坑一个接一个。特别是那个经典的 Point cloud is not in dense format 报错,还有各种节点莫名挂掉的问题,着实让人头疼。这篇文章就是把我从环境搭建到成功建图的全过程,以及遇到的那些高频问题和解决方案,做个详细的梳理。目标读者是那些需要在机器人上快速部署一套可靠建图系统的开发者,尤其是当你手头是速腾雷达,环境是ROS Melodic,并且时间紧迫不想在无数个论坛帖子里大海捞针的时候。
1. 环境准备与依赖库安装
在开始编译任何代码之前,一个干净、版本匹配的底层环境是成功的基石。Ubuntu 18.04 LTS 和 ROS Melodic 是一个长期支持且稳定的组合,但一些必要的第三方库需要手动编译安装,以确保与LeGO-LOAM的兼容性。
1.1 系统与ROS基础环境
首先,确保你的系统已经安装了完整的ROS Melodic桌面版。如果尚未安装,可以通过以下命令进行:
sudo apt-get update
sudo apt-get install ros-melodic-desktop-full
安装完成后,别忘了初始化 rosdep 并设置环境变量,这些是ROS工作的基础。
sudo rosdep init
rosdep update
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
接下来,我们需要处理几个关键的依赖库:GTSAM 和 Ceres Solver。LeGO-LOAM严重依赖这两个库进行因子图优化和非线性优化。Ubuntu 18.04的默认软件源版本可能过旧,手动编译是更稳妥的选择。
1.2 编译安装GTSAM 4.0.0-alpha2
GTSAM是一个用于机器人感知和估计的因子图库。LeGO-LOAM的官方推荐版本是4.0.0-alpha2。直接从GitHub下载并编译:
# 下载指定版本的源码
wget -O ~/Downloads/gtsam.zip https://github.com/borglab/gtsam/archive/4.0.0-alpha2.zip
# 解压并进入目录
cd ~/Downloads/ && unzip gtsam.zip -d ~/Downloads/
cd ~/Downloads/gtsam-4.0.0-alpha2/
# 创建并进入构建目录
mkdir build && cd build
# 配置和编译安装
cmake ..
make -j$(nproc) # 使用多核编译加速
sudo make install
这个过程会花费一些时间。编译完成后,GTSAM的头文件和库文件会被安装到系统默认路径(如 /usr/local/include 和 /usr/local/lib),后续CMake能够自动找到它们。
1.3 处理PCL与Eigen版本
点云库(PCL)和线性代数库(Eigen)是ROS和雷达数据处理的核心。ROS Melodic桌面版通常会附带PCL 1.8.1和Eigen 3.3.4,这基本满足要求。但有时系统里可能存在多个版本导致冲突。一个检查方法是:
pcl_version -pcl
如果显示不是1.8.x系列,或者你遇到奇怪的PCL相关编译错误,可以考虑重新安装ROS版本的PCL:
sudo apt-get install libpcl-dev ros-melodic-pcl-ros ros-melodic-pcl-conversions
对于Eigen,确保你安装的是开发包:
sudo apt-get install libeigen3-dev
注意:除非万不得已,不要轻易卸载系统自带的PCL或Eigen,因为这可能破坏ROS本身的依赖。优先采用
apt-get install --reinstall来修复。
2. 速腾RS-16雷达驱动配置与编译
要让LeGO-LOAM认识你的速腾雷达,第一步是正确安装和配置官方驱动 rslidar_sdk。这一步的细节决定了后续数据流能否畅通。
2.1 获取正确的驱动源码包
速腾聚创提供了两种源码包:包含子模块的Release包和纯源码的Source Code包。这里有一个关键坑点:务必下载 rslidar_sdk.tar.gz 这种Release包,而不是GitHub页面上的“Source code”链接。因为Release包内已经集成了必需的 rs_driver 子模块,省去了额外下载和配置的麻烦。
- 前往 rslidar_sdk的Release页面。
- 找到最新稳定版,下载
rslidar_sdk.tar.gz文件。 - 将其解压到你的ROS工作空间的
src目录下。假设你的工作空间是~/catkin_ws:
cd ~/catkin_ws/src
tar -xzf /path/to/downloaded/rslidar_sdk.tar.gz
解压后,你会在 src 目


3105

被折叠的 条评论
为什么被折叠?



