在 ROS 2 (Humble/Foxy) 和 Ubuntu 22.04 环境中使用思岚 S2 激光雷达进行地图构建的完整指南,结合驱动配置、SLAM 算法部署及实践步骤:
2. 配置 USB 权限3. 启动雷达节点验证数据: 检查激光点云话题是否正常输出。🧩 二、SLAM 算法选型与部署根据需求选择适合的算法(推荐两种主流方案):5
·
🔧 一、雷达驱动安装与配置
# 创建工作空间
mkdir -p ~/s2_ws/src && cd ~/s2_ws/src
# 克隆思岚官方驱动
git clone https://github.com/Slamtec/rplidar_ros2.git
# 安装依赖
sudo apt install ros-${ROS_DISTRO}-serial-driver
# 编译
cd ~/s2_ws && colcon build
source install/setup.bash
2. 配置 USB 权限
echo 'KERNEL=="ttyUSB*", MODE="0666"' | sudo tee /etc/udev/rules.d/80-slamtec.rules
sudo udevadm control --reload && sudo udevadm trigger
3. 启动雷达节点
ros2 launch rplidar_ros s2_launch.py # S2 型号需确认 launch 文件命名[6](@ref)
- 验证数据:
ros2 topic echo /scan
检查激光点云话题是否正常输出。
🧩 二、SLAM 算法选型与部署
根据需求选择适合的算法(推荐两种主流方案):
算法 | 特点 | 安装命令 |
---|---|---|
slam_toolbox | 实时性强,兼容 2D 雷达,支持在线建图与保存 | sudo apt install ros-${ROS_DISTRO}-slam-toolbox |
Cartographer | 支持多传感器融合,闭环检测优化效果好,适合大场景
5 |
sudo apt install ros-${ROS_DISTRO}-cartographer-ros |
🗺️ 三、地图构建实战步骤
方案 1:使用 slam_toolbox 建图
- 启动 SLAM 节点
ros2 launch slam_toolbox online_async_launch.py \ params_file:=/opt/ros/${ROS_DISTRO}/share/slam_toolbox/config/mapper_params_online_async.yaml
- 配置雷达话题映射
修改mapper_params_online_async.yaml
:scan_topic: /scan # 确保与雷达输出话题一致 max_laser_range: 25.0 # 匹配 S2 最大探测距离(25m)
方案 2:使用 Cartographer 建图
- 创建配置文件
s2_2d.lua
参考cartographer_ros
示例,调整关键参数:TRAJECTORY_BUILDER_2D = { use_imu_data = false, -- S2 无 IMU 需关闭 min_range = 0.1, -- S2 最小探测距离 max_range = 25.0, -- S2 最大探测距离 }
- 启动建图
ros2 launch cartographer_ros cartographer.launch.py \ configuration_directory:=<your_config_path> \ configuration_basename:=s2_2d.lua
🖥️ 四、可视化与地图保存
- 实时监控
启动 Rviz2 查看建图效果:rviz2 -d $(ros2 pkg prefix cartographer_ros)/share/cartographer_ros/configuration_files/demo_2d.rviz
- 保存地图
使用nav2_map_saver
:ros2 run nav2_map_server map_saver_cli -f ~/s2_map
- 生成
s2_map.pgm
(地图图像)和s2_map.yaml
(元数据)
- 生成
⚠️ 五、常见问题解决
- 雷达数据无输出
- 检查设备权限:
ls -l /dev/ttyUSB*
,确认用户属于dialout
组。 - 测试串口通信:
minicom -D /dev/ttyUSB0 -b 115200
(波特率需匹配 S2 的 256000)。
- 检查设备权限:
- 建图漂移/失真
- slam_toolbox:增大
particles
参数(默认 30 → 增至 50)。 - Cartographer:启用
use_online_correlative_scan_matching = true
提升匹配鲁棒性。
- slam_toolbox:增大
- 地图锯齿状边缘
降低雷达噪声:在驱动 launch 文件中设置scan_mode: Standard
(平衡精度与频率)。
💡 进阶建议
- 多传感器融合
若设备含 IMU,在 Cartographer 中启用use_imu_data = true
可显著提升旋转估计精度。 - 性能优化
对资源受限设备(如树莓派),在 slam_toolbox 中设置throttle_scans=1
降低计算负载。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)