跳转至

N10 激光雷达 ROS2 功能包使用

Hint

操作环境及软硬件配置如下:

  • 雷达型号:镭神 N10 激光雷达
  • 操作系统:Ubuntu 22.04
  • ROS2 版本:Humble
  • ROS2 功能包:lslidar_driver + lslidar_msgs
  • 本文档只说明 N10

功能包/资料包下载链接:(可参考套件资料/资料链接下载)

场景说明

本文档用于说明如何在 ROS2 中启动 N10 激光雷达,并查看 /scanlslidar_point_cloud 等雷达数据。N10 启动后主要发布二维激光扫描数据,可用于机器人避障、SLAM、Nav2 导航等功能。

N10 相关文件如下:

用途 文件
N10 串口版参数 lslidar_driver/config/lslidar_n10_uart.yaml
N10 网口版参数 lslidar_driver/config/lslidar_n10_net.yaml
N10 串口版启动 lslidar_driver/launch/lsn10_launch.py
N10 网口版启动 lslidar_driver/launch/lsn10_net_launch.py
自定义消息/服务 lslidar_msgs

一、功能包准备

第一步:创建工作空间

mkdir -p ~/lslidar_ws/src
cd ~/lslidar_ws/src

第二步:解压功能包

将资料包中的以下两个压缩包解压到 src 目录:

lslidar_driver.zip
lslidar_msgs.zip

解压后目录结构建议如下:

~/lslidar_ws/src/
├── lslidar_driver/
└── lslidar_msgs/

如果还需要使用串口别名,可以把 wheeltec_udev.sh 一并放在工作空间中,或直接从资料包原目录执行。

第三步:安装依赖

安装 ROS2 编译工具:

sudo apt update
sudo apt install -y python3-colcon-common-extensions

安装驱动所需依赖:

sudo apt install -y \
  ros-$ROS_DISTRO-pcl-conversions \
  ros-$ROS_DISTRO-builtin-interfaces \
  ros-$ROS_DISTRO-rosidl-default-generators \
  libpcl-dev \
  libpcap-dev \
  libyaml-cpp-dev

如果编译时提示缺少 diagnostic_updater,可以补充安装:

sudo apt install -y ros-$ROS_DISTRO-diagnostic-updater

第四步:编译功能包

回到工作空间根目录:

cd ~/lslidar_ws
colcon build
source install/setup.bash

如果只想重新编译雷达驱动包,可以执行:

colcon build --packages-select lslidar_driver
source install/setup.bash
Attation

修改 config/*.yaml 参数后,建议重新编译并重新 source 环境,避免启动时仍读取旧安装目录中的参数文件。

二、N10 串口版启动

第一步:确认串口参数

打开 N10 串口版配置文件:

gedit ~/lslidar_ws/src/lslidar_driver/config/lslidar_n10_uart.yaml

重点确认:

x10:
  lslidar_driver_node:
    ros__parameters:
      lidar_type: "X10"
      lidar_model: "N10"
      serial_port: "/dev/wheeltec_lidar"
      frame_id: "laser"
      pointcloud_topic: "lslidar_point_cloud"
      laserscan_topic: "/scan"
      publish_scan: true

如果不使用固定别名,而实际串口为 /dev/ttyUSB0,则修改为:

serial_port: "/dev/ttyUSB0"

第二步:启动 N10 串口版雷达

source ~/lslidar_ws/install/setup.bash
ros2 launch lslidar_driver lsn10_launch.py

启动成功后,驱动节点会读取 lslidar_n10_uart.yaml 参数,并开始发布雷达数据。

三、查看 ROS2 话题

启动 N10 后,打开新终端并 source 工作空间:

source ~/lslidar_ws/install/setup.bash
ros2 topic list

正常情况下,应能看到类似话题:

/scan
/lslidar_point_cloud

其中:

话题 类型 说明
/scan sensor_msgs/msg/LaserScan 二维激光扫描数据,导航和避障常用
lslidar_point_cloud sensor_msgs/msg/PointCloud2 点云数据,可用于 RViz 显示

查看 /scan 数据:

ros2 topic echo /scan

查看发布频率:

ros2 topic hz /scan

查看点云数据频率:

ros2 topic hz /lslidar_point_cloud

四、RViz2 可视化显示

第一步:启动 RViz2

rviz2

如果使用功能包自带 RViz 配置,可以执行:

rviz2 -d ~/lslidar_ws/install/lslidar_driver/share/lslidar_driver/rviz/lslidar_x10.rviz

第二步:设置 Fixed Frame

在 RViz2 左侧 Global Options 中,将 Fixed Frame 设置为:

laser

该值对应 N10 参数文件中的:

frame_id: "laser"

第三步:添加 LaserScan 显示

点击 Add,选择:

By topic -> /scan -> LaserScan

如果 /scan 正常发布,RViz2 中应能看到一圈二维激光点。

第四步:添加 PointCloud2 显示

点击 Add,选择:

By topic -> /lslidar_point_cloud -> PointCloud2

如果点云话题正常发布,RViz2 中可以看到雷达点云。

五、N10 常用参数说明

N10 参数主要在以下两个文件中修改:

lslidar_driver/config/lslidar_n10_uart.yaml

1. 基本参数

参数 默认值 说明
lidar_type X10 N10 所属驱动类型,不建议修改
lidar_model N10 雷达型号,本文档只使用 N10
serial_port /dev/wheeltec_lidar 或空 串口版填写串口,网口版保持空
device_ip 192.168.1.200 网口版雷达 IP
msop_port 2368 雷达数据端口
difop_port 2369 雷达设备端口
frame_id laser 雷达坐标系名称
laserscan_topic /scan LaserScan 话题名
pointcloud_topic lslidar_point_cloud 点云话题名

2. 数据发布参数

参数 默认值 说明
publish_scan true 是否发布 /scan
use_high_precision false LaserScan 高精度模式,N10 可按需求开启
min_range 0.15 最小有效距离,单位 m
max_range 50.0 最大有效距离,单位 m

如果需要更高角度精度,可以尝试:

use_high_precision: true
Attation

高精度模式会增加 LaserScan 数据量。如果上位机或机器人算力较弱,建议先保持默认值,确认数据稳定后再开启。

3. 角度屏蔽参数

默认不屏蔽角度:

angle_disable_min: [0]
angle_disable_max: [0]

如果需要屏蔽 0° 到 90°:

angle_disable_min: [0]
angle_disable_max: [9000]

如果需要屏蔽两个区域,例如 0° 到 90°、180° 到 270°:

angle_disable_min: [0, 18000]
angle_disable_max: [9000, 27000]

角度单位为 0.01°,因此 9000 表示 90°

4. 坐标变换参数

如果只需要普通 /scan 数据,一般不需要修改以下参数:

is_pretreatment: false
x_offset: 0.0
y_offset: 0.0
z_offset: 0.0
roll: 0.0
pitch: 0.0
yaw: 0.0

如果要对点云进行平移或旋转,可开启:

is_pretreatment: true

然后根据雷达安装位置修改 x_offsety_offsetyaw 等参数。

如果 N10 用于 Nav2 避障或建图,通常使用 /scan 作为激光输入。

Nav2 或 SLAM 配置中常见设置如下:

scan_topic: /scan

同时需要保证 TF 中存在从机器人底盘坐标系到雷达坐标系的变换,例如:

base_link -> laser

如果没有雷达 TF,可以临时发布静态 TF:

ros2 run tf2_ros static_transform_publisher 0 0 0.15 0 0 0 base_link laser

其中 0 0 0.15 需要根据雷达实际安装高度和位置修改。

八、N10 最小启动流程

串口版最小流程

mkdir -p ~/lslidar_ws/src
# 将 lslidar_driver 和 lslidar_msgs 放入 src
cd ~/lslidar_ws
sudo apt install -y python3-colcon-common-extensions libpcap-dev libpcl-dev libyaml-cpp-dev
colcon build
source install/setup.bash
ros2 launch lslidar_driver lsn10_launch.py

图片1