环境说明
本教程基于 Ubuntu 22.04 操作系统,ROS2 Humble 发行版,搭配 RPLidar A1 激光雷达进行建图。
安装必要依赖
先更新系统源,确保能拉取到最新的 ROS2 包。
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
配置雷达驱动
为了让系统自动识别 USB 雷达,需要配置 udev 规则。将以下规则写入 /etc/udev/rules.d/rplidar.rules。
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
验证设备节点是否生成。
ls -l /dev | grep ttyUSB
若看到类似 rplidar -> ttyUSB0 的链接,说明驱动已就绪。
启动雷达节点
单独启动雷达驱动,确认数据流正常。
ros2 launch rplidar_ros rplidar_a1_launch.py
新开终端检查扫描数据。
ros2 topic echo /scan --no-arr | head -5
此时若有数据回传,即可关闭该终端继续后续步骤。
创建 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,配置雷达参数与 SLAM 模式。
import launch
launch_ros.actions 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=,
arguments=[, , , , , , , ]
)
static_tf_odom = Node(
package=,
executable=,
arguments=[, , , , , , , ]
)
launch.LaunchDescription([
DeclareLaunchArgument(, default_value=),
rplidar_node,
static_tf_laser,
static_tf_odom,
slam_toolbox_node,
])

