FAST-LIVO2(手持设备)教程1:Ubunut20.04 下的环境安装

2025/12/12

Ubuntu 20.04 下 ROS Noetic 安装与 FAST-LIVO2 配置指南

本教程将引导你在 Ubuntu 20.04 环境下安装 ROS Noetic,并从零开始配置和运行 FAST-LIVO2。


零、终端环境配置 (Zsh + Oh My Zsh)

在开始安装 ROS 之前,强烈建议先配置 Zsh。相比默认的 Bash,Zsh 拥有更强大的自动补全、命令高亮和历史记录查找功能,能极大提高后续开发的效率。

1. 网络环境设置

如果你有已经设置好的代理,请在终端中设置环境变量(IP和端口请根据实际情况修改):

export http_proxy="http://192.168.31.2:7897"
export https_proxy="http://192.168.31.2:7897"
export all_proxy="socks5://192.168.31.2:7897"

2. 安装基础工具

sudo apt update
sudo apt install vim zsh git -y

3. 安装 Oh My Zsh

Oh My Zsh 是最流行的 Zsh 配置管理框架。(如果遇到网络问题连接不上 GitHub,可以使用国内镜像或代理)。

sudo apt install curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

注意:安装过程中如果提示 Do you want to change your default shell to zsh? [Y/n],输入 Y 并回车,输入密码确认。

4. 安装效率插件 (核心步骤)

这是 Zsh 的灵魂所在:命令自动补全和语法高亮。

下载自动补全插件 (zsh-autosuggestions):

git clone (https://github.com/zsh-users/zsh-autosuggestions) ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

下载语法高亮插件 (zsh-syntax-highlighting):

git clone (https://github.com/zsh-users/zsh-syntax-highlighting.git) ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

5. 修改配置文件

我们需要启用刚才下载的插件。

打开配置文件:

vim ~/.zshrc

修改 1:设置主题 (可选) 找到 ZSH_THEME="robbyrussell",你可以保持默认,或者修改为更直观的 ys (显示路径和用户名) 或 agnoster (需要安装 Powerline 字体)。

ZSH_THEME="ys"

修改 2:启用插件 向下找到 plugins=(git) 这一行,将其修改为:

plugins=(
  git
  zsh-autosuggestions
  zsh-syntax-highlighting
)

Vim 操作提示:按 i 进入编辑模式修改,修改完成后按 Esc,输入 :wq 或按 Ctrl+O 回车保存,按 Ctrl+X 退出。

6. 应用配置

source ~/.zshrc

现在你的终端应该已经变了模样,尝试输入命令时会有灰色的自动补全建议(按 键采纳)。


一、ROS Noetic 的安装

我们将使用国内的中科大(USTC)镜像源以加快下载速度。

1. 添加软件源

将 ROS 的源添加到系统源列表中:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

2. 添加密钥

导入官方的密钥以验证软件包的安全性:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3. 更新并安装 ROS

更新本地包索引并安装桌面完整版(包含仿真器和 2D/3D 感知包):

sudo apt update
sudo apt install ros-noetic-desktop-full

4. 初始化 rosdep

rosdep 用于安装源码编译所需的系统依赖。 注意:由于网络原因,国内用户直接使用 sudo rosdep init 极大概率失败。强烈推荐使用 rosdepc(小鱼的一键工具)。

方案 A:使用 rosdepc(推荐,成功率高)

sudo apt install python3-pip
sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update

方案 B:使用官方 rosdep(可能需要科学上网)

sudo apt install python3-rosdep
sudo rosdep init
rosdep update

如果遇到 ERROR: default sources list file already exist,请先执行 sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 再重试。

5. 配置环境变量

将 ROS 环境脚本添加到终端配置文件中,这样每次打开终端都会自动加载 ROS。

如果你使用的是 Zsh (推荐):

echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc
source ~/.zshrc

如果你使用的是 Bash:

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6. 安装构建依赖

安装常用的构建工具和 ROS 依赖管理工具:

sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

7. 测试安装

打开一个新终端,启动 ROS 核心:

roscore

如果看到 started roslaunch server 且没有报错,说明安装成功。

可选:运行小乌龟测试 打开三个不同的终端,分别运行:

  1. roscore
  2. rosrun turtlesim turtlesim_node (出现小乌龟窗口)
  3. rosrun turtlesim turtle_teleop_key (在终端通过键盘控制移动)

二、环境依赖检查

FAST-LIVO2 需要 PCL >= 1.8, Eigen >= 3.3.4, OpenCV >= 4.2。 安装 ROS Noetic 时通常会自动安装符合要求的版本。可以通过以下命令检查:

# 检查 PCL (预期输出 Version: 1.10.0...)
apt-cache show libpcl-dev | grep Version

# 检查 Eigen (预期输出 3.3.7)
pkg-config --modversion eigen3

# 检查 OpenCV (预期输出 4.2.0)
pkg-config --modversion opencv4

三、编译安装第三方库 (Sophus)

FAST-LIVO2 依赖 Sophus 库。由于新版 Eigen 的兼容性问题,我们需要手动修正源码。

1. 下载源码

建议先创建一个临时目录存放第三方库,或者直接在 Home 目录下:

cd ~
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff

2. 修正源码报错 (关键步骤)

由于 Eigen 版本更新,直接编译会报错。我们需要修改 sophus/so2.cpp 文件。

使用编辑器打开文件:

vim sophus/so2.cpp

找到第 32-33 行(构造函数 SO2::SO2() 部分),进行如下修改:

原代码:

unit_complex_.real() = 1.;
unit_complex_.imag() = 0.;

修改为:

unit_complex_.real(1.);
unit_complex_.imag(0.);

保存并关闭文件。

3. 编译与安装

mkdir build && cd build
cmake ..
make
sudo make install

四、编译 FAST-LIVO2

1. 创建 Catkin 工作空间

这是存放工程代码的地方:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src

2. 下载项目源码

下载 rpg_vikitFAST-LIVO2 到 src 目录下:

# 确保在 src 目录下
cd ~/catkin_ws/src

# 下载 rpg_vikit
git clone https://github.com/xuankuzcr/rpg_vikit.git

# 下载 FAST-LIVO2
git clone https://github.com/hku-mars/FAST-LIVO2

3. 编译工作空间

cd ~/catkin_ws
catkin_make

提示:如果你的电脑内存较小(<8GB),建议使用 catkin_make -j2 限制线程数,防止编译卡死。

4. 刷新环境

编译完成后,需要刷新环境变量才能让系统找到新编译的包:

source devel/setup.zsh

(建议将此 source 命令也加入 bashrc/zshrc 中方便以后使用)


五、运行演示

1. 准备数据包

请提前下载好作者提供的示例 Rosbag 数据包,或使用自己的 AVIA 雷达数据: FAST-LIVO2 GitHub

2. 启动算法

roslaunch fast_livo mapping_avia.launch

Rviz 窗口将会自动打开。

3. 播放数据

新建一个终端,播放数据包:

rosbag play YOUR_DOWNLOADED.bag

此时你应该能在 Rviz 中看到构建的点云地图和轨迹。

bilibili:重建世界LAB

FAST-LIVO2(手持设备)教程1:Ubunut20.04 下的环境安装 | 博客