保姆级教程:在Ubuntu 20.04 + ROS Noetic上从源码编译运行GVINS(含Eigen/Ceres版本避坑指南)
港科大GVINS作为VINS-Mono的GNSS增强版本,为无人机和机器人开发者提供了全局无漂移的6-DoF定位方案。但在Ubuntu 20.04和ROS Noetic环境下,官方基于Kinetic的配置指南往往会让开发者陷入依赖库版本冲突的泥潭。本文将手把手带你穿越编译雷区,特别针对Eigen 3.3.3和Ceres 1.12.0的版本控制提供独家解决方案。
1. 环境准备与依赖管理
1.1 系统基础配置
首先确认你的Ubuntu 20.04已安装ROS Noetic完整版。如果尚未安装,执行以下命令:
bash复制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
sudo apt update
sudo apt install ros-noetic-desktop-full
安装完成后,初始化rosdep并配置环境变量:
bash复制sudo rosdep init
rosdep update
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
1.2 关键依赖版本锁定
GVINS对特定版本的依赖库极其敏感,以下是必须严格控制的版本矩阵:
| 依赖库 | 要求版本 | 默认apt版本 | 冲突风险 |
|---|---|---|---|
| Eigen | 3.3.3 | 3.3.7 | 高 |
| Ceres Solve |
