第二章 环境搭建: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
但光启动还不够,你得配置一下显示内容。我一般这样配:
- 在左侧面板点击 Add,选择 By topic
- 找到
/livox/lidar或/velodyne_points话题 - 选择 PointCloud2 类型
- 调整 Size 到 0.05,颜色选 Intensity
嗯,这里要注意:如果你用的是Livox,话题名可能是 /livox/lidar;Velodyne则是 /velodyne_points。别搞混了。
避坑指南: 我曾经在rviz2里看不到点云,折腾了半天发现是 Fixed Frame 没设对。默认是 map,但雷达数据通常是在 livox_frame 或 velodyne 坐标系下。记得在rviz2左上角把 Fixed Frame 改成对应的坐标系。
2.7 知识体系总览
这一章的内容其实就围绕一个核心:让激光雷达的数据流到你的电脑里,并且能看见它。下面这张图帮你理清整个流程:
你看,整个流程其实很清晰。硬件采集原始数据,驱动把它转成ROS2能理解的消息格式,然后rviz2订阅这个话题,把点云渲染出来。
2.8 验证你的环境
装完所有东西后,我建议你做一个完整的测试:
- 插上激光雷达,确认灯亮了
- 启动驱动节点
- 打开rviz2,添加PointCloud2显示
- 看看能不能看到点云
如果能看到点云,恭喜你,环境搭好了。如果看不到,别慌。先检查这几个地方:
ros2 topic list看看有没有点云话题ros2 topic echo /livox/lidar看看有没有数据- 确认网线插好了,IP配对了
说实话,环境搭建这一步最磨人。但一旦过了这个坎,后面的算法实现反而轻松很多。你想想看,能看到点云了,心里就有底了,对吧?
我的建议: 把这一步的配置过程写成脚本,下次重装系统时直接跑一遍。我就是这么干的,省了不知道多少时间。
好了,环境搭好了,下一章咱们就开始真正处理点云数据了。到时候你会看到,原始点云其实挺乱的,但经过滤波、分割之后,障碍物就一个个现出原形了。
可可精品资料库