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
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/84953.shtml
英文地址,請注明出處:http://en.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(先進先出)原則,但與普通隊列不同的是,循環隊列的最后一個元素連接回第一個元素,形成一個環形結構。這種設計有效解決了普通隊列的"假溢出"問題&…