第二章 环境搭建:Ubuntu + ROS2环境配置、安装Livox/velodyne驱动、点云可视化工具(rviz2)

说实话,做激光雷达障碍物检测,第一步不是写算法,而是把环境搭好。我见过太多同学代码写了一半,发现驱动没装对,点云死活刷不出来——那种挫败感,真的很打击人。

这一章,咱们就把地基打牢。我会带着你一步步配好Ubuntu、装好ROS2、搞定Livox和Velodyne的驱动,最后用rviz2看一眼真正的点云长什么样。

2.1 为什么选Ubuntu + ROS2?

你可能要问:Windows不行吗?嗯,也不是不行,但你会很痛苦。激光雷达的驱动、ROS的生态、实时性要求,这些东西在Linux下天然就顺滑。

我个人习惯用Ubuntu 22.04 + ROS2 Humble。为什么是这个组合?因为稳定。我在项目里踩过20.04的坑,也试过24.04的预览版,最后发现22.04是当前最省心的选择。

核心原则:ROS2版本必须和Ubuntu版本严格对应。别想着混搭,那是给自己找麻烦。

2.2 安装Ubuntu 22.04

这一步其实没什么好说的,但有几个细节我提醒一下:

  • 双系统还是虚拟机? 如果你有独立显卡,建议双系统。虚拟机在点云可视化时会有性能瓶颈。我刚开始学的时候用的虚拟机,rviz2卡成PPT,后来换了双系统才舒服。
  • 磁盘分区: 至少留50GB给Ubuntu。激光雷达的bag文件动辄几十GB,别到时候装不下。
  • 换源: 装完系统第一件事,换国内源。阿里云、清华、中科大都可以。不然apt update能等到你怀疑人生。

2.3 安装ROS2 Humble

ROS2的安装其实就几条命令,但顺序很重要。我直接给你整理好了:

# 1. 设置locale
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

# 2. 添加ROS2源
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

# 3. 安装ROS2 Humble
sudo apt update
sudo apt install ros-humble-desktop

# 4. 设置环境变量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

小技巧: 装完记得跑一下 ros2 run demo_nodes_cpp talker 测试。如果能听到"Hello World",说明ROS2装好了。

2.4 安装Livox驱动

Livox的驱动和ROS2的接口是分开的。你需要装两个东西:livox_ros_driver2 和 livox_sdk2。

我曾经在装Livox驱动时卡了一整天,原因是没注意ROS2的工作空间路径。这里我直接给你一个能用的脚本:

# 创建工作空间
mkdir -p ~/livox_ws/src
cd ~/livox_ws/src

# 克隆驱动
git clone https://github.com/Livox-SDK/livox_ros_driver2.git

# 编译
cd ~/livox_ws
colcon build --symlink-install

# 设置环境
echo "source ~/livox_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc

装完之后,记得修改 livox_ros_driver2/config 下的配置文件。把里面的IP地址改成你雷达的实际IP。Livox默认是 192.168.1.100,但不同批次可能不一样。

注意: Livox雷达需要网线直连电脑,并且电脑的IP要设置在同一个网段。比如雷达是192.168.1.100,那电脑就设成192.168.1.101。这个坑我踩过两次,第一次以为是驱动坏了,折腾半天才发现是IP没配对。

2.5 安装Velodyne驱动

Velodyne的驱动比Livox简单一些。官方提供了 velodyne 包,直接apt就能装:

sudo apt install ros-humble-velodyne
sudo apt install ros-humble-velodyne-driver
sudo apt install ros-humble-velodyne-pointcloud

装完之后,启动驱动:

ros2 launch velodyne_driver velodyne_driver_node.py

Velodyne的默认端口是2368,数据包是UDP格式。如果你发现收不到数据,先检查一下防火墙:

sudo ufw allow 2368/udp

2.6 点云可视化工具:rviz2

rviz2是ROS2自带的3D可视化工具。说白了,它就是让你"看到"传感器数据的窗口。

启动rviz2很简单:

ros2 run rviz2 rviz2

但光启动还不够,你得配置一下显示内容。我一般这样配:

  1. 在左侧面板点击 Add,选择 By topic
  2. 找到 /livox/lidar 或 /velodyne_points 话题
  3. 选择 PointCloud2 类型
  4. 调整 Size 到 0.05,颜色选 Intensity

嗯,这里要注意:如果你用的是Livox,话题名可能是 /livox/lidar;Velodyne则是 /velodyne_points。别搞混了。

避坑指南: 我曾经在rviz2里看不到点云,折腾了半天发现是 Fixed Frame 没设对。默认是 map,但雷达数据通常是在 livox_frame 或 velodyne 坐标系下。记得在rviz2左上角把 Fixed Frame 改成对应的坐标系。

2.7 知识体系总览

这一章的内容其实就围绕一个核心:让激光雷达的数据流到你的电脑里,并且能看见它。下面这张图帮你理清整个流程:

激光雷达环境搭建知识体系 激光雷达硬件 驱动层 ROS2中间件 rviz2可视化 Livox / Velodyne livox_ros_driver2 / velodyne_driver 话题发布 / 订阅 PointCloud2 数据流 数据流向:硬件 → 驱动 → ROS2 → rviz2

你看,整个流程其实很清晰。硬件采集原始数据,驱动把它转成ROS2能理解的消息格式,然后rviz2订阅这个话题,把点云渲染出来。

2.8 验证你的环境

装完所有东西后,我建议你做一个完整的测试:

  1. 插上激光雷达,确认灯亮了
  2. 启动驱动节点
  3. 打开rviz2,添加PointCloud2显示
  4. 看看能不能看到点云

如果能看到点云,恭喜你,环境搭好了。如果看不到,别慌。先检查这几个地方:

  • ros2 topic list 看看有没有点云话题
  • ros2 topic echo /livox/lidar 看看有没有数据
  • 确认网线插好了,IP配对了

说实话,环境搭建这一步最磨人。但一旦过了这个坎,后面的算法实现反而轻松很多。你想想看,能看到点云了,心里就有底了,对吧?

我的建议: 把这一步的配置过程写成脚本,下次重装系统时直接跑一遍。我就是这么干的,省了不知道多少时间。

好了,环境搭好了,下一章咱们就开始真正处理点云数据了。到时候你会看到,原始点云其实挺乱的,但经过滤波、分割之后,障碍物就一个个现出原形了。

可可精品资料库