当前位置: 首页 > news >正文

保姆级教程:在Ubuntu 20.04上从零编译运行HKUST的GVINS(含gnss_comm依赖配置)

保姆级教程:Ubuntu 20.04下GVINS全流程编译与实战指南

在机器人定位与导航领域,多传感器融合技术正成为解决复杂环境定位问题的关键。香港科技大学团队开源的GVINS系统,通过GNSS、视觉和惯性测量的紧耦合优化,为开发者提供了一个高精度的6-DoF全局定位解决方案。本文将手把手带你完成从系统配置到实际运行的完整流程,即使你是ROS新手也能轻松上手。

1. 环境准备与依赖安装

在开始编译GVINS之前,我们需要确保系统环境满足所有依赖要求。Ubuntu 20.04 LTS作为长期支持版本,提供了稳定的基础环境。以下是详细的准备工作:

系统基础环境配置

sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential cmake git wget

ROS Noetic是官方推荐的ROS版本,与Ubuntu 20.04完美兼容。安装完整版ROS Noetic:

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 -y ros-noetic-desktop-full echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc

GVINS核心依赖包括:

  • Eigen3(≥3.3.7)
  • Ceres Solver(≥2.0.0)
  • gnss_comm(专用GNSS库)

安装Eigen和Ceres:

sudo apt install -y libeigen3-dev libceres-dev

提示:如果系统自带的Ceres版本低于2.0.0,建议从源码编译安装最新版。

2. 源码获取与工作空间配置

GVINS系统由多个组件构成,需要分别获取源码并合理组织工作空间结构。

创建标准ROS工作空间

mkdir -p ~/gvins_ws/src cd ~/gvins_ws/src

获取GVINS主仓库和数据集工具:

git clone https://github.com/HKUST-Aerial-Robotics/GVINS.git git clone https://github.com/HKUST-Aerial-Robotics/GVINS-Dataset.git

gnss_comm是GVINS的关键依赖,需要特别注意:

git clone https://github.com/HKUST-Aerial-Robotics/gnss_comm.git

正确的工作空间目录结构应如下:

gvins_ws/ └── src/ ├── GVINS/ ├── GVINS-Dataset/ └── gnss_comm/

3. 系统编译与常见问题解决

完成源码准备后,我们可以开始编译过程。这一阶段可能会遇到各种环境问题,下面提供详细的解决方案。

初始化工作空间依赖

cd ~/gvins_ws rosdep install --from-paths src --ignore-src -r -y

开始编译GVINS主体:

catkin_make -j$(nproc)

编译过程中常见错误及解决方法:

错误类型可能原因解决方案
Ceres版本不兼容系统自带版本过低源码编译安装最新版
Eigen头文件缺失路径配置错误检查Eigen安装路径
gnss_comm链接失败未正确放置确保在src目录下

注意:首次编译建议使用-j1参数单线程编译,便于定位错误,成功后再使用多线程加速。

编译成功后,工作空间应生成以下目录结构:

gvins_ws/ ├── build/ ├── devel/ └── src/

验证编译结果:

source devel/setup.bash roslaunch gvins visensor_f9p.launch

4. 数据集准备与系统运行

GVINS提供了标准数据集用于验证系统性能,正确配置数据集是测试的关键步骤。

数据集下载与配置

wget https://hkust-aerial-robotics.github.io/GVINS-Dataset/sports_field.bag

修改配置文件visensor_left_f9p_config.yaml中的关键参数:

output_path: "/your/output/path/" # 替换为实际输出目录

完整运行流程

  1. 启动GVINS主节点:
source devel/setup.bash roslaunch gvins visensor_f9p.launch
  1. 开启RVIZ可视化:
rviz -d src/GVINS/config/gvins_rviz_config.rviz
  1. 播放数据集:
rosbag play --clock sports_field.bag

运行时常见问题排查:

  • 时间同步问题:确保使用--clock参数播放bag文件
  • 话题不匹配:检查launch文件中的话题名称配置
  • 内存不足:大型数据集需要至少16GB内存

5. 结果评估与工具使用

GVINS提供了配套工具集用于结果分析和格式转换,这些工具对于实际应用开发非常有用。

数据集工具编译

mkdir -p ~/data_tools_ws/src cd ~/data_tools_ws/src cp -r ~/gvins_ws/src/GVINS-Dataset/* . cp -r ~/gvins_ws/src/gnss_comm . cd .. catkin_make

常用工具命令

  • ROS bag转RINEX格式:
source devel/setup.bash rosrun gvins_dataset_toolkit bag2rinex
  • ROS bag转RTK解算结果:
rosrun gvins_dataset_toolkit bag2rtk_solution

性能评估指标

评估GVINS性能时,可以关注以下几个关键指标:

  • 定位精度(与RTK参考轨迹对比)
  • 计算耗时(单帧处理时间)
  • 内存占用(运行时系统资源消耗)

在实际项目中,GVINS的配置需要根据具体传感器和场景进行调整。建议从默认参数开始,逐步优化以下关键参数:

  • 视觉特征点数量
  • IMU噪声参数
  • GNSS权重系数
http://www.jsqmd.com/news/809019/

相关文章:

  • 济南实木全屋定制工厂实力排行榜:设计师经验丰富15564131221 - 新闻快传
  • 开源任务管理工具 veyra-tasks:纯文本驱动的开发者工作流实践
  • 惠州阳台防水补漏哪家靠谱:地址及联系方式24小时上门维修 17520202737 - 新闻快传
  • 利用Taotoken模型广场为网站不同功能模块选型合适模型
  • 终极指南:如何在foobar2000中使用OpenLyrics实现完美歌词显示
  • 打造新锐本地战略品牌排名推荐杰明环保蓄热式热力氧化(RTO焚烧炉)生产源头厂家 - 新闻快传
  • Obsidian Homepage终极指南:如何在5分钟内打造你的个性化知识管理中心
  • OpenClaw低调更新重磅版本,龙虾长手长脚了
  • 你的呼吸灯卡顿吗?深入STM32 HAL库PWM驱动,用DMA+定时器实现丝滑调光
  • 滚球系统画圆不圆?试试用查找表法优化正弦计算,解放MCU算力
  • 2026惠州屋顶防水补漏师傅哪个靠谱:免砸砖防水补漏维修 17520202737 - 新闻快传
  • 黄岛区欧兰德门窗:即墨专业的百叶帘安装公司 - LYL仔仔
  • 2026 普通人靠谱轻创业|格行随身 WiFi 3.0 轻资产代理全解析 - 新闻快传
  • Mac上让VSCode和Skim成为LaTeX写作黄金搭档:一键编译、反向搜索全搞定
  • 上海AI Lab新研究:SFT能泛化,只要满足这三个条件
  • 沧州泊头排名推荐品牌防爆可移动危废暂存间(贮存间)性价比的生产源头厂家-万联环保 - 新闻快传
  • TCP 网络编程
  • 独立开发者工具箱:模块化架构与全栈实践指南
  • C# Chart控件进阶:从静态折线到动态数据监控面板的实现
  • 泊头市同辉会展服务:北京专业的门头搭建怎么联系 - LYL仔仔
  • 2026国内难燃橡塑管十大排名全解析 - 资讯焦点
  • 2026年5月13日头部标杆新疆旅行社最新排行榜!新疆靠谱旅行社小包跟团定制旅游地接社46载国企底蕴口碑见证!全国百强企业! - 奋斗者888
  • 2026免费在线考试系统测评对比:优考试、考试云、考试星、轻速云、问卷星 - 资讯焦点
  • MCP服务器集中管理工具mcp-manager:架构解析与生产实践
  • 做OA选型5年,今天说清楚什么叫真正的私有化部署
  • 赣味特色烤肉技术剖析:品质门店的核心判定维度 - 资讯焦点
  • 3分钟掌握GeoJSON.io:零代码地理数据可视化的革命性工具
  • 风水培训比较准的老师推荐排行榜 TOP1:正统传承实战为王13165318585 - 新闻快传
  • 2026医院诊室门品牌推荐:气密门、防辐射门、诊室门、卫生间门口碑之选 - 资讯焦点
  • OpenClaw用户如何配置Taotoken作为自定义模型提供商