rplidar_ros launch文件全解:12个参数配置指南与scan_mode、angle_compensate实战技巧
【免费下载链接】rplidar_ros项目地址: https://gitcode.com/gh_mirrors/rp/rplidar_ros
一、rplidar_ros 是什么?launch 文件起什么作用 📡
rplidar_ros是 SLAMTEC(思岚科技)RPLIDAR 系列激光雷达官方的 ROS 驱动包,负责通过串口 / TCP / UDP 读取雷达数据,并发布标准的scan话题供导航、SLAM 使用。
launch 文件(位于 launch/ 目录)就是驱动节点的"启动说明书":它决定雷达走哪条通信链路、波特率多少、坐标系怎么命名、扫描模式是什么。项目为 11 款主流雷达型号(A1、A2、A3、C1、S1、S1_TCP、S2、S2E、S3、T1 等)都预置了 launch 文件,例如 launch/rplidar_a3.launch、launch/rplidar_s1.launch,开箱即用,也方便按需修改。
二、12 个 launch 参数一览表 📋
所有参数在驱动源码 src/node.cpp 中统一读取,共 12 个,按功能分为 4 组:
| 分组 | 参数 | 类型 | 默认值 | 作用 |
|---|---|---|---|---|
| 通信链路 | channel_type | string | serial | 通信方式:serial/tcp/udp |
| 通信链路 | serial_port | string | — | 串口号,如/dev/ttyUSB0 |
| 通信链路 | serial_baudrate | int | — | 串口波特率(A1/S1 为 115200) |
| 通信链路 | tcp_ip/tcp_port | string / int | — | TCP 模式下雷达 IP 与端口(如 20108) |
| 通信链路 | udp_ip | string | — | UDP 模式下雷达 IP |
| 扫描控制 | scan_mode | string | 典型模式 | 扫描模式,如Sensitivity、Standard |
| 扫描控制 | scan_frequency | double | 10.0 | 目标扫描频率(Hz) |
| 数据输出 | frame_id | string | laser | 发布点的 ROS 坐标系名 |
| 数据输出 | inverted | bool | false | 点云角度是否反转(0~360 取反) |
| 数据输出 | angle_compensate | bool | true | 角度补偿,按固定角度切帧 |
💡 简单记法:4 个通信参数 + 2 个扫描参数 + 4 个输出参数 = 12 个 launch 配置项。
各型号出厂预设对比
| 型号 | launch 文件 | 波特率 | 特色参数 |
|---|---|---|---|
| A1 / A2 / S1 | rplidar_a1.launch | 115200 | 最精简配置 |
| A3 / A2M7 / A2M12 | rplidar_a3.launch | 256000 | scan_mode: Sensitivity |
| C1 | rplidar_c1.launch | 460800 | scan_mode: Standard+ 10Hz |
| S2 / S3 | rplidar_s2.launch | 1000000 | 1MHz 高波特率 |
| S2E | rplidar_s2e.launch | UDP | scan_frequency: 10 |
| S1_TCP / T1 | rplidar_s1_tcp.launch | TCP / UDP | IP + 端口直连 |
三、scan_mode 设置技巧:怎么选扫描模式 🎯
scan_mode只被支持该特性的型号使用(A3、C1、S2E 等),在 src/node.cpp 中,若参数留空则自动选择"典型扫描模式";指定后驱动会核对雷达实际支持的列表,不支持的取值会直接报错并打印可用模式。
常用取值
Sensitivity:高采样率,适合低速小范围场景,数据更稠密(A3 系列默认,见 launch/rplidar_a3.launch)。Standard:均衡模式,C1 官方预设(见 launch/rplidar_c1.launch)。
配置建议
- 不确定时留空,让驱动自动选典型模式,最稳妥;
- 需要更远探测距离 → 选低采样率/长距模式;需要更精细障碍物轮廓 → 选高灵敏度模式;
- 修改后若终端提示
scan mode 'xxx' is not supported,以报错列出的模式为准。
四、angle_compensate 设置技巧:点云"补帧"的艺术 🧮
默认雷达按"转一圈发布一帧"工作,转速快时两帧间隔大、轨迹不平滑。开启angle_compensate: true后,驱动会按固定角度间隔(约 2°)重组并发布扫描帧,等效提升帧率,RViz 里扫描线更连贯。
什么时候该关掉?
- 机器人高速运动且 CPU 吃紧 → 关闭可降低计算与话题负载;
- 下游算法对原始帧率敏感(如某些里程计融合)→ 建议关闭,使用原始圈帧;
- 常规导航、建图、可视化 →保持
true(所有官方 launch 文件的默认值)。
⚠️ 开启角度补偿后,一帧内的点数是补偿出来的,单帧点数会少于完整一圈的原始点数,做 360° 覆盖判断时需注意。
五、最快上手:三步跑通任意雷达 🚀
- 选对应型号的 launch 文件(型号见上方对比表),确认
serial_port与frame_id; - 运行
roslaunch rplidar_ros rplidar_a3.launch(按型号替换); - 用可视化 launch 文件一键调出 RViz,例如 launch/view_rplidar_s1.launch,它会自动 include 驱动 launch 并加载 rviz/rplidar.rviz 配置;也可用 launch/test_rplidar.launch 同时启动客户端节点自测。
串口权限不足时,可用 scripts/create_udev_rules.sh 一键添加 udev 规则(规则文件 scripts/rplidar.rules)。
六、常见问题快速排查 🔍
| 现象 | 优先检查 |
|---|---|
| 连接失败 | serial_port是否正确、波特率是否匹配型号、udev 权限 |
| TCP/UDP 不通 | channel_type必须显式设为tcp/udp,IP/端口与雷达网口配置一致(参考 launch/rplidar_s1_tcp.launch 与 launch/rplidar_s2e.launch) |
| 扫描模式报错 | 按终端提示的可用列表修改scan_mode |
| 点云不平滑 | 确认angle_compensate: true,并适当调低scan_frequency |
七、相关文件速查
- 全部 launch 文件:launch/
- 驱动主节点源码:src/node.cpp
- 客户端节点源码:src/client.cpp
- 雷达 SDK 头文件:sdk/include/
- RViz 显示配置:rviz/rplidar.rviz
【免费下载链接】rplidar_ros项目地址: https://gitcode.com/gh_mirrors/rp/rplidar_ros
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考