VINS-Fusion 简介、安装、编译、数据集/相机实测

目录

VINS-Fusion 简介

安装

VINS-Fusion 源码安装

运行数据集

双目模式

单目+IMU 模式

双目+IMU 模式

D455 相机实际运行

双目+IMU 模式


VINS-Fusion 简介

VINS-Fusion 是继 VINS-Mono 和 VINS-Mobile(单目视觉惯导 SLAM 方案)后,香港科
技大学沈劭劼老师团队开源的双目视觉惯导 SLAM 方案,VINS-Fusion 是一种基于优化的
多传感器状态估计器,可实现自主应用(无人机,汽车和 AR / VR)的精确自定位。 VINS
Fusion 是 VINS-Mono 的扩展,支持多种视觉惯性传感器类型(单目摄像机+ IMU,双目摄
像机+ IMU,甚至仅限双目摄像机)。开源项目组还展示了将 VINS 与 GPS 融合的模组示例。

安装

安装好 Ubuntu 及其对应的 ROS 版本,这里我们使用的是 Ubuntu18.04,ROS melodic
ceres 安装
1、先安装所有的依赖项
# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev
2、再下载、安装 Ceres
建议下载稳定版本 ceres
不要追求下载最新版本,因为最新版对编译器要求较高。比如 Ceres Solver 2.2 需要 C++17
编译器。我这里使用的是 ceres-solver-1.14.0
tar zxf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0
mkdir build
cd build
cmake ..
make -j3
make test # 可选,用于测试
sudo make install
3、测试是否正常
Ceres 自带有测试数据,我们在 build 目录输入
bin/simple_bundle_adjuster ../data/problem-16-22106-pre.txt
功能是用 DENSE_SCHUR 线性优化器迭代优化
成功运行后,输出如下所示,表示成功安装 ceres

VINS-Fusion 源码安装

cd ~/vins_catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
cd ../
catkin_make
将工作空间添加到环境变量,这样就不用每次打开一个终端都要 source 一次了,可以一劳
永逸的解决环境问题
打开终端,执行
echo "source ~/vins_catkin_ws/devel/setup.bash" >> ~/.bashrc
#这样就不用每次打开一个新终端都要 source 一次了
相当于打开 gedit ~/.bashrc 在文件末尾添加
source ~/vins_catkin_ws/devel/setup.bash
然后在终端,输入 source ~/.bashrc

运行数据集

双目模式

ROS 模式运行双目数据集,以 EuROC 为例
# 启动
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_stereo_config.yaml
rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_stereo_config.yaml # 带闭环检测,可选
rosbag play ~/SLAM/DataSets/EuRoC/MH_03_medium.bag

单目+IMU 模式

ROS 模式运行单目数据集,以 EuROC 为例
# 启动
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_mono_imu_config.yaml
rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_mono_imu_config.yaml # 带闭环检测,可选
rosbag play ~/SLAM/DataSets/EuRoC/MH_03_medium.bag

双目+IMU 模式

ROS 模式运行单目数据集,以 EuROC 为例
# 启动
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_stereo_imu_config.yaml
rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS
Fusion/config/euroc/euroc_stereo_imu_config.yaml # 带闭环检测,可选
rosbag play ~/SLAM/DataSets/EuRoC/MH_03_medium.bag

D455 相机实际运行

首先需要利用前面介绍的相机-IMU 标定方法提前标定好相机。
VINS-Fusion/config 文件夹下面有作者提供的很多配置文件,包括 realsense_d435i,我们复
制后改名为 realsense_d455 并修改其中的配置文件
cam0:T_cam_imu 表示的是 IMU 到相机 0 的变换矩阵,
body_T_cam0 表示相机 0 到 IMU 矩阵,所以它的值应该是 T_cam_imu 矩阵取逆
可以使用在线计算矩阵的逆 http://www.yunsuan.info/cgi-bin/matrix_inverse.py
source ~/realsense_catkin_ws/devel/setup.bash
标定参数数字和逗号之间不要有空格,否则可能会报错误 OpenCV Error: Parsing
error
准备好标定文件,路径改好,topic 改好

双目+IMU 模式

启动相机
roslaunch realsense2_camera rs_camera.launch
#启动 rviz
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/vins_catkin_ws/src/VINS
Fusion/config/realsense_d455/realsense_stereo_imu_config.yaml
rosrun loop_fusion loop_fusion_node ~/vins_catkin_ws/src/VINS
Fusion/config/realsense_d455/realsense_stereo_imu_config.yaml # 带闭
环检测,可选
参考:https://blog.csdn.net/qq_40186909/article/details/113104595

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/84953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Developer 表复制

SQL Developer 表复制 此方法在数据量比较大时,比一条一条的insert要快得多;具体是会覆盖掉原数据,还是增量的处理,请自行创建demo表测试一下。 注意:原库版本要与目标库数据库版本一致,否则可能会报错的。…

影视剧学经典系列-梁祝-《吕氏春秋·应同》

1、背景 07版电视剧《梁山伯与祝英台》中,谢道韫作为先生,给学生讲了其中的句子。 2、名言 君为尊,以白为黑,臣不能从;父虽亲,以黑为白,子不能从”出自《吕氏春秋应同》 其意为,…

异步爬虫---

代码结构分析 这是一个同步新闻爬虫程序,主要包含以下几个部分: 们把爬虫设计为一个类,类在初始化时,连接数据库,初始化logger,创建网址池,加载hubs并设置到网址池。 爬虫开始运行的入口就是r…

微服务架构中的 Kafka:异步通信与服务解耦(二)

三、Kafka 基础入门 3.1 Kafka 是什么 Kafka 最初由 LinkedIn 公司开发,是一个开源的分布式事件流平台,后成为 Apache 基金会的顶级项目 。它不仅仅是一个简单的消息队列,更是一个分布式流处理平台,具备强大的消息队列、存储系统…

Lighthouse与首屏优化

之前提到首屏优化,想到的就是Vue项目首页打开很慢需要优化。一般都是肉眼看看,对当前的加载速度并没有一个准确的衡量标准,也没有很清晰的解决思路。 前两天我想给自己的网站申请谷歌广告,听说审核对网站的性能要求很高。于是网上…

Maven 之 打包项目时没有使用本地仓库依赖问题

背景 pom 中使用了第三方jar包,远程仓库设置的是阿里云,之前运行很好,今天不知道怎么的,打包总是报错,阿里云仓库无法找到依赖包(本来也没有),按理来说,编译打包时会优先选择本地仓库的包才对&a…

Mysql基础入门\期末速成

DDL 操作数据库语句 创建&删除数据库语句 创建数据库 create database 数据库名称; -- 直接创建 create database if not exists 数据库名称; -- 如果不存在,则创建 create database 数据库名称 default charset utf8mb4; -- 创建编译类型utf8的数据类型 cre…

SCADA|KingSCADA4.0中历史趋势控件与之前版本的差异

哈喽,你好啊,我是雷工! 最近用到KingSCADA4.0信创版本,也算尝鲜使用。 在使用的过程中发现有些功能或多或少存在一些差异, 这里将遇到的一些不同总结一下,便于后期更好的使用。 01 历史趋势控件 在KingSCADA中有一个历史趋势曲线控件KSHTrend。 该控件既可以连接King…

ubuntu 拒绝ssh连接,连不上ssh,无法远程登录: Connection failed.

目录 问题描述视窗 可视化桌面命令行 问题描述 [C:\~]$ Connecting to 192.166.8.85:22... Could not connect to 192.166.8.85 (port 22): Connection failed.Type help to learn how to use Xshell prompt. [C:\~]$ Connecting to 192.166.8.85:22... Could not connect to …

【大模型应用开发】向量数据库向量检索方法存在问题及优化

一、检索结果重复 1. 问题分析 在构建向量数据库时,对文档分割会存在重复块(chunk_overlap:指两个块之间共享的字符数量,用于保持上下文的连贯性,避免分割丢失上下文信息),如下图所示&#xf…

MySQL常用函数详解之数值函数

MySQL常用函数详解之数值函数 一、数值函数概述1.1 数值函数的作用1.2 数值函数分类 二、算术运算函数2.1 加法运算()2.2 减法运算(-)2.3 乘法运算(*)2.4 除法运算(/ 或 DIV)2.5 取模…

13、Redis进阶二之Redis数据安全性分析

⼀ 、Redis性能压测脚本介绍 Redis的所有数据是保存在内存当中的, 得益于内存⾼效的读写性能, Redis的性能是⾮常强悍的 。但 是,内存的缺点是断电即丢失,所以 ,在实际项⽬中, Redis—旦需要保存—些重要的…

【系统分析师】2011年真题:综合知识-答案及详解

文章目录 【第1题】【第2~3题】【第4~5题】【第6题】【第7~8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19~20题】【第21题】【第22题】【第23题】【第24~25题】【第26题】【第27题】【第28题】【第29题】【…

FastAPI-MCP构建自定义MCP工具实操指南

一、简介 • FastAPI-MCP是一个基于python FastAPI框架开发的开源项目,可以自动识别并暴露FastAPI接口为MCP工具 • 拥有FastAPI框架的所有优点,如异步高并发、独立远程部署、OpenAPI文档 • 提供SSE、mcp-remote接入方式,支持设置授权访问…

LLMs之Memory:《LLMs Do Not Have Human-Like Working Memory》翻译与解读

LLMs之Memory:《LLMs Do Not Have Human-Like Working Memory》翻译与解读 导读:该论文通过三个精心设计的实验,证明了当前的大型语言模型(LLMs)缺乏类似人类的工作记忆。实验结果表明,LLMs无法在没有明确外…

Node.js验证码:从生成到验证的趣味之旅

文章目录 Node.js验证码:从生成到验证的趣味之旅📜 引言:为什么需要验证码?1. 验证码的基本原理 🧠验证码工作流程示意图 2. 技术栈准备 🛠️3. 验证码生成详解 🎨3.1 生成SVG验证码3.2 转换为P…

芯科科技携最新Matter演示和参考应用精彩亮相Matter开放日和开发者大会

全面展示赋能Matter设备实现跨协议和跨海内外生态的技术能力 作为Matter标准创始厂商之一和其解决方案的领先供应商,Silicon Labs(亦称“芯科科技”)于6月12至13日参加由连接标准联盟中国成员组(CMGC)主办的Matter年度…

AndroidStudio下载的SDK没有tool目录,或者想要使用uiautomatorviewer工具

1.如果没有tool目录可以使用下面的地址进行下载 https://dl.google.com/android/repository/tools_r25.2.5-windows.zip 2.并且把下载的文件解压到放在AndroidStudio的目录中 3.如果使用uiautomatorviewer.bat出现下面的错误 Unable to connect to adb.Check if adb is instal…

FastJSON等工具序列化特殊字符时会加转义字符\

在Java中JSON数据格式用String接收时,此时在FastJSON层面看来该JSON只是普通字符串,所以对原字符串序列化会得到转义字符\ 得到转义后字符串,再反序列化转义后字符串会得到原字符串 String json"{\"name\": \"张三\&quo…

数据结构 学习 队列 2025年6月14日 11点22分

循环队列 循环队列是一种线性数据结构,它遵循FIFO(先进先出)原则,但与普通队列不同的是,循环队列的最后一个元素连接回第一个元素,形成一个环形结构。这种设计有效解决了普通队列的"假溢出"问题&…