1. 环境准备:从零搭建ROS Noetic
第一次接触FAST-LIO2主从部署的朋友,往往会卡在环境配置这一步。我自己在树莓派4B上部署时,就遇到过内存不足导致编译崩溃的问题。这里分享几个关键技巧:首先建议使用Ubuntu 20.04 LTS系统,这是目前对ROS Noetic支持最稳定的版本。
配置软件源时,国内用户推荐使用阿里云镜像。不过要注意,有时候同一个镜像在不同网络环境下表现差异很大。我通常的做法是准备三个备用源:阿里云、清华和中科大。具体操作是编辑/etc/apt/sources.list文件:
sudo nano /etc/apt/sources.list替换为以下内容(以阿里云为例):
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse更新软件包列表后,建议先安装基础依赖:
sudo apt update && sudo apt upgrade -y sudo apt install build-essential cmake git -y2. 虚拟内存配置:小内存设备的救星
在树莓派这类资源受限的设备上,8GB内存经常不够用。特别是编译Livox驱动时,系统很容易崩溃。这时候就需要配置虚拟内存(swap space)。我建议至少设置4GB的swap空间,具体操作如下:
首先检查现有内存情况:
free -h然后创建swap文件(这里以4GB为例):
sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile为了让swap永久生效,需要编辑/etc/fstab文件:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab实测在树莓派4B上,这个配置可以将编译成功率从30%提升到90%以上。不过要注意,swap毕竟是用硬盘模拟内存,频繁使用会影响SSD寿命。
3. ROS Noetic完整安装指南
安装ROS时,我强烈推荐使用desktop-full版本。虽然体积大一些(约1.5GB),但包含了RViz、Gazebo等必备工具。以下是具体步骤:
首先添加ROS官方密钥:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654然后安装完整版ROS:
sudo apt update sudo apt install ros-noetic-desktop-full -y安装完成后,每次使用前都需要初始化环境:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc验证安装是否成功:
roscore如果看到类似下面的输出,说明ROS核心系统已经正常运行:
... logging to /home/pi/.ros/log/xxxxx started core service [/rosout]4. Livox Mid-360驱动深度配置
Livox Mid-360是FAST-LIO2常用的激光雷达,但它的驱动安装有几个坑需要注意。首先是SDK2的编译问题,很多人在make阶段会遇到内存不足的错误。
先安装编译工具链:
sudo apt install cmake g++ python3-colcon-common-extensions -y然后克隆并编译Livox-SDK2:
git clone https://github.com/Livox-SDK/Livox-SDK2.git cd Livox-SDK2 mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc --ignore=2) # 保留2个核心不参与编译 sudo make install测试SDK是否正常工作:
cd samples/livox_lidar_quick_start ./livox_lidar_quick_start ../../../samples/livox_lidar_quick_start/hap_config.json接下来安装ROS2驱动(注意这里需要切换到ROS2环境):
mkdir -p ws_livox/src cd ws_livox/src git clone https://github.com/Livox-SDK/livox_ros_driver2.git cd .. source /opt/ros/humble/setup.bash colcon build --symlink-install最后启动测试节点:
source install/setup.bash ros2 launch livox_ros_driver2 rviz_MID360_launch.py如果一切正常,你应该能在RViz中看到激光雷达的点云数据。我在实际项目中遇到过驱动版本不匹配的问题,建议定期检查GitHub上的最新release版本。