🔧 一、雷达驱动安装与配置

# 创建工作空间
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 建图​
  1. ​启动 SLAM 节点​
    ros2 launch slam_toolbox online_async_launch.py \
         params_file:=/opt/ros/${ROS_DISTRO}/share/slam_toolbox/config/mapper_params_online_async.yaml

  2. ​配置雷达话题映射​
    修改 mapper_params_online_async.yaml
    
      
    scan_topic: /scan      # 确保与雷达输出话题一致
    max_laser_range: 25.0  # 匹配 S2 最大探测距离(25m)

​方案 2:使用 Cartographer 建图​
  1. ​创建配置文件 s2_2d.lua
    参考 cartographer_ros 示例,调整关键参数:
    
      
    TRAJECTORY_BUILDER_2D = {
      use_imu_data = false,   -- S2 无 IMU 需关闭
      min_range = 0.1,        -- S2 最小探测距离
      max_range = 25.0,       -- S2 最大探测距离
    }

  2. ​启动建图​
    
      
    ros2 launch cartographer_ros cartographer.launch.py \
         configuration_directory:=<your_config_path> \
         configuration_basename:=s2_2d.lua


🖥️ 四、可视化与地图保存

  1. ​实时监控​
    启动 Rviz2 查看建图效果:
    
      
    rviz2 -d $(ros2 pkg prefix cartographer_ros)/share/cartographer_ros/configuration_files/demo_2d.rviz

  2. ​保存地图​
    使用 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 提升匹配鲁棒性。
  • ​地图锯齿状边缘​
    降低雷达噪声:在驱动 launch 文件中设置 scan_mode: Standard(平衡精度与频率)。

💡 进阶建议

  1. ​多传感器融合​
    若设备含 IMU,在 Cartographer 中启用 use_imu_data = true 可显著提升旋转估计精度。
  2. ​性能优化​
    对资源受限设备(如树莓派),在 slam_toolbox 中设置 throttle_scans=1 降低计算负载。
Logo

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

更多推荐