系统环境基于 Ubuntu 22.04,ROS2 版本选用 Humble,雷达设备为 RPLidar A1。下面直接开始配置流程。
安装必要的软件包
先更新系统并安装核心依赖。这里需要 slam_toolbox、RPLidar 驱动以及导航相关的基础包。
sudo apt update
sudo apt install ros-humble-slam-toolbox
sudo apt install ros-humble-rplidar-ros
sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup
配置 RPLidar A1
为了让系统能正确识别 USB 雷达,需要创建 udev 规则。这步很关键,否则后续可能找不到设备。
echo 'KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666", GROUP:="dialout", SYMLINK+="rplidar"' | sudo tee /etc/udev/rules.d/rplidar.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
重新插拔雷达 USB 线后,检查设备节点是否生成:
ls -l /dev | grep ttyUSB
# 预期看到类似:lrwxrwxrwx 1 root root 7 Nov 6 10:20 rplidar -> ttyUSB0
启动雷达测试
单独启动雷达节点,确认激光数据正常输出。
ros2 launch rplidar_ros rplidar_a1_launch.py
新开一个终端查看 /scan 话题是否有数据:
ros2 topic echo /scan --no-arr | head -5
这一步偶尔报错很正常,主要是验证前几行数据格式即可。
创建 SLAM 功能包与启动文件
接下来创建工作空间并编写自定义的 Launch 文件,将雷达和 SLAM 节点整合在一起。
mkdir -p ~/slam_ws/src
cd ~/slam_ws/src
ros2 pkg create my_slam --build-type ament_cmake --dependencies rclcpp slam_toolbox nav2_msgs
mkdir -p ~/slam_ws/src/my_slam/launch
编辑启动文件 slam_with_rplidar.launch.py:
import launch
from launch_ros.actions import Node
launch.actions DeclareLaunchArgument
launch.substitutions LaunchConfiguration
():
use_sim_time = LaunchConfiguration(, default=)
rplidar_node = Node(
package=,
executable=,
name=,
parameters=[{
: ,
: ,
: ,
: ,
: ,
:
}],
output=
)
slam_toolbox_node = Node(
package=,
executable=,
name=,
output=,
parameters=[{
: use_sim_time,
: ,
: ,
: ,
: ,
: ,
: ,
:
}]
)
static_tf_laser = Node(
package=,
executable=,
name=,
arguments=[, , , , , , , ]
)
static_tf_odom = Node(
package=,
executable=,
name=,
arguments=[, , , , , , , ]
)
launch.LaunchDescription([
DeclareLaunchArgument(, default_value=),
rplidar_node,
static_tf_laser,
static_tf_odom,
slam_toolbox_node,
])

