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 且没有报错,说明安装成功。
可选:运行小乌龟测试 打开三个不同的终端,分别运行:
roscorerosrun turtlesim turtlesim_node(出现小乌龟窗口)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_vikit 和 FAST-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 中看到构建的点云地图和轨迹。
