系统环境
系统:Ubuntu 22.04 ROS2 版本:Humble 雷达设备:RPLidar A1
一、安装必要的软件包
# 更新系统
sudo apt update
# 安装 slam_toolbox
sudo apt install ros-humble-slam-toolbox
# 安装 RPLidar 驱动
sudo apt install ros-humble-rplidar-ros
# 安装导航相关包
sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup
二、配置 RPLidar A1
创建 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
三、启动雷达
# 启动 RPLidar A1
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
nano ~/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,
])

