3、激光雷达驱动与数据读取:安装驱动、启动节点、可视化点云

好,咱们进入第三章。这一章很实在——就是让激光雷达转起来,把数据拿到手,再在屏幕上看到点云。

说实话,我刚开始搞无人机避障那会儿,光装驱动就折腾了一整天。后来发现,很多坑其实是可以提前避开的。今天我把这些经验都摊开来讲。

3.1 选对驱动,少走弯路

市面上常见的激光雷达,驱动方式不太一样。我主要接触过两类:

  • RPLIDAR(思岚系列):便宜、轻量,适合小型无人机
  • Velodyne(如VLP-16):贵、精度高,适合工业级应用

它们的驱动包在ROS里都有现成的。你不需要自己写底层通信代码,但得知道怎么装、怎么配。

核心思路:驱动包本质上是一个ROS节点,负责把雷达的串口或网络数据转换成ROS的消息。

3.2 安装RPLIDAR驱动

我个人习惯用源码编译,因为能随时看代码、改参数。当然,apt安装也行,但有时候版本太旧。

# 创建工作空间(如果还没有)
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src

# 克隆rplidar驱动
git clone https://github.com/Slamtec/rplidar_ros.git

# 编译
cd ~/catkin_ws
catkin_make

# 设置环境变量
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

嗯,这里要注意:记得给串口权限。我遇到过好几次,驱动节点启动不了,一看日志——权限不足。

避坑指南:我曾经因为忘记加串口权限,排查了半小时。执行这条命令:

sudo chmod 666 /dev/ttyUSB0

或者更稳妥的做法,把用户加到dialout组:

sudo usermod -a -G dialout $USER

3.3 安装Velodyne驱动

Velodyne的驱动稍微复杂一点,因为它走的是网络UDP协议。你需要设置好本机IP,确保和雷达在同一个网段。

# 同样用源码编译
cd ~/catkin_ws/src
git clone https://github.com/ros-drivers/velodyne.git

# 编译
cd ~/catkin_ws
catkin_make

配置网络时,我建议把雷达的IP设为静态。不然每次重启都要重新找IP,很烦。

雷达型号 默认IP 本机IP建议
VLP-16 192.168.1.201 192.168.1.100
HDL-32E 192.168.3.10 192.168.3.100

3.4 启动驱动节点

驱动装好了,怎么启动?说白了就是运行一个launch文件。

RPLIDAR启动示例:

roslaunch rplidar_ros rplidar.launch

这个launch文件里,默认会启动rplidarNode节点,发布/scan话题。你可以用rostopic echo /scan看看数据长什么样。

Velodyne启动示例:

roslaunch velodyne_pointcloud VLP16_points.launch

它会发布/velodyne_points话题,数据类型是PointCloud2。你想想看,16线雷达的数据量比单线大得多,所以处理起来要更小心。

我的小技巧:启动节点后,先用rostopic list看看有哪些话题。再用rostopic hz /scan检查发布频率。如果频率不对,八成是驱动配置有问题。

3.5 用RViz可视化点云

数据拿到了,但光看数字没感觉。RViz就是让你“看见”点云的工具。

启动RViz很简单:

rosrun rviz rviz

然后手动添加显示组件:

  1. 点击左下角“Add”按钮
  2. 选择“By topic”标签
  3. 找到/scan或/velodyne_points
  4. 点击“OK”

嗯,这里有个常见问题:点云显示不出来。别慌,检查两件事:

  • Fixed Frame是否设置正确?RPLIDAR一般设为laser_frame,Velodyne设为velodyne
  • 话题是否真的在发布?用rostopic echo确认一下

经验之谈:我习惯在RViz里同时显示多个视角。比如一个俯视图看整体,一个侧视图看细节。这样调试避障算法时,能快速定位问题。

3.6 本章知识体系

下面这张图,是我自己梳理的驱动与数据读取流程。你看一眼,心里就有数了。

激光雷达驱动与数据读取流程 激光雷达硬件 RPLIDAR / Velodyne ROS驱动节点 rplidarNode / velodyne_node ROS话题 /scan /velodyne_points RViz可视化 点云显示 / 调试 配置与权限 串口权限 / 网络设置 关键点:驱动节点负责硬件→ROS消息的转换 RViz是调试利器,务必熟练掌握

3.7 常见问题与解决

最后,我把这些年踩过的坑整理一下。你遇到了,直接对照着查。

问题现象 可能原因 解决方法
驱动节点启动失败 串口权限不足 chmod 666 /dev/ttyUSB0
RViz看不到点云 Fixed Frame未设置 设置为laser_frame或velodyne
点云数据不更新 话题频率异常 检查雷达连接线、供电
Velodyne无数据 IP不在同一网段 修改本机IP为192.168.1.x

最后说一句:驱动装好、数据能看,这只是第一步。下一章我们会真正开始处理这些点云数据,做避障判断。但今天的内容,是后面所有工作的基础。别急,慢慢来。

专注资料整理