最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

IMU預積分程序(PVIO)配置、運行的全過程記錄

2023-04-19 21:00 作者:前排瞌睡  | 我要投稿

0 前言

疊甲:本人不是導航、自動駕駛這類研究方向的,做的是點云三維重建,接觸到該項目的起因為了幫忙趕材料。下文中若有任何疏漏錯誤還請海涵,亦多謝您耐心指正。本文供記錄、整合和墊腳石之用。

使用的項目地址:

Publication聲明:

路過的大佬能否指點一下:PVIO的執(zhí)行命令中,有沒有僅以imu數據來進行解算并生成軌跡線的命令?(有累計誤差也ok,主要是有沒有這個功能)

imu預積分作用:網上很多理論的解析,參考

簡述下我認為預積分的作用:(1)提取每次迭代運算中的不變量,且只需線性運算便可校正測量值,減少運算時間;(2)通過融合傳感器數據來抑制累積誤差,估計imu的零偏bias值(存疑)。

好了,接下來便是PVIO程序配置與運行的過程記錄,希望對你有所幫助。

1硬件準備與系統(tǒng)安裝

(1)一臺硬盤容量80G以上的電腦。感謝同門暫借了我一臺老筆記本,這是它的配置:

筆記本的硬件配置查詢,終端命令:?lshw -short

(2)一塊16G的移動U盤。用于制作ubuntu系統(tǒng)啟動盤。

ubuntu系統(tǒng)為ubuntu-18.04.6-desktop-amd64,制作啟動盤參考:

【win11下用rufus安裝Ubuntu雙系統(tǒng)】 https://www.bilibili.com/video/BV1BP411577g/?share_source=copy_web&;vd_source=1e602e9eb283891156fa67e21d45244a

系統(tǒng)安裝參考:

【Windows 和 Ubuntu 雙系統(tǒng)的安裝和卸載】 https://www.bilibili.com/video/BV1554y1n7zv/?p=8&;share_source=copy_web&vd_source=1e602e9eb283891156fa67e21d45244a

其中使用的是GPT分區(qū)進行安裝,未使用MBR分區(qū)。

2依賴項安裝

2.1vim+gcc+gdb

參考https://blog.csdn.net/Nonpc123/article/details/90043490

打開ubuntu的終端,輸入命令:

2.2cmake

一開始用apt-get安裝的版本為3.10.2,比項目中要求的cmake版本低?,F版本為3.25.2,具體的更新步驟忘了...

可參考https://blog.csdn.net/qq_27350133/article/details/121994229

安裝好cmake后,其實就可以跳轉到3,嘗試編譯cmakeList文件來生成項目的工程文件,然后根據報告的錯誤信息去安裝相應的依賴項。比方說報錯“OpenCV_DIR does not exist”,那“_DIR”前面的為系統(tǒng)缺少的依賴項名稱。

2.3OpenCV

安裝的版本為4.7.0,參考https://blog.csdn.net/weixin_44698673/article/details/127082446

(1)安裝依賴環(huán)境。在終端中輸入命令:

(2)打開opencv官網https://opencv.org/releases/,點擊sources下載源碼并解壓。

(3)進入解壓后的源碼目錄,【右鍵】>【在終端打開】,輸入命令:

(4)配置環(huán)境變量。打開終端輸入命令:

在打開的ld.so.conf文件的末尾另起一行,輸入、保存:

回到終端并輸入:

在文件的末尾另起一行,輸入以下兩行命令、保存:

回到終端并輸入:

(5)使用pkg-config工具檢測OpenCV的版本,是否安裝成功

2.4yaml-cpp

一個使用C++語言的YAML解析器與發(fā)射器。參考https://blog.csdn.net/qq_43278899/article/details/128474075

(1)在https://github.com/jbeder/yaml-cpp下載源碼壓縮包并解壓。

(2)進入源碼目錄,【右鍵】>【在終端打開】,輸入命令:

2.5Eigen3

參考https://blog.csdn.net/qq_57061492/article/details/126163112

(1)在eigen官網http://eigen.tuxfamily.org/index.php?title=Main_Page中點擊“The?latest stable release..”后的鏈接,下載壓縮包并解壓。

(2)進入源碼目錄,【右鍵】>【在終端打開】,輸入命令:


(3)進入目錄/usr/local/include/eigen3,復制目錄下的文件“Eigen”到目錄/usr/local/include。該步驟是為了讓項目內.cpp文件中的#include <Eigen/Dense>能檢索到eigen依賴項。

2.6ceres-solver

一個非線性優(yōu)化庫,使用版本2.1.0。參考

注意最好使用官網提供的包或git,我第一次安裝的是github上其他源的,后續(xù)的編譯有較多報錯。

(1)進入ceres-solver官網http://ceres-solver.org/installation.html,在“獲取源碼”下方點擊鏈接“l(fā)atest stable release”下載壓縮包并解壓。

(2)進入源碼目錄,【右鍵】>【在終端打開】,輸入命令:

(3)進入目錄/usr/local/include查看是否存在ceres文件夾。

ceres-solver重裝成功截圖

2.7OpenGL

這個庫是臨時補充的依賴項。在cmake項目PVIO時報錯:

參考:https://blog.csdn.net/ei1990/article/details/84890005

在終端中輸入命令:

2.8FFMPEG

該依賴項可能不是必須的。參考https://blog.csdn.net/u011178262/article/details/120565605

在終端中輸入如下命令:

3安裝PVIO

終于,在配置好各種依賴項后(或者還在配置中),我們開始安裝PVIO程序。

(1)下載PVIO源碼并解壓。

(2)進入源碼目錄,【右鍵】>【在終端打開】,輸入命令:

(3)cmake、make過程中出現的問題:

有兩種解決方法:一是重新執(zhí)行命令“cmake?..”并祈禱連接到GitHub的網絡能穩(wěn)定通暢,是可行的但得多試幾次;

二是自己動手把庫下載下來:點擊子模組‘ext/nanogui’后提供的GitHub地址,下載源碼并解壓到程序提供的子模組路徑下,然后重新執(zhí)行命令“cmake?..”。

nanogui庫克隆失敗

解決方法:安裝OpenGL庫,見2.7部分,然后重新執(zhí)行命令“cmake?..”。若仍報相同錯誤,可能原因是程序未查詢到該庫的依賴項。參考https://blog.csdn.net/CCCDeric/article/details/129722580

在終端輸入如下命令:

解決方法:查看標紅代碼中函數的命名空間,或編譯該代碼所在的文件目錄,根據這些名稱重裝相應的依賴項。

可以看到error函數的命名空間為ceres,需重裝ceres-solver依賴項

PVIO?cmake、make成功的截圖:

4下載示例數據

(1)使用的是公開的EuRoC MAV 數據集,下載地址:

在“Downloads”下有數組數據集,點擊表格ASL Dataset Format下的link鏈接,下載相應數據的壓縮包。

(2)在PVIO源碼目錄創(chuàng)建文件夾Data(與文件夾build處在同一級目錄下),將壓縮包文件解壓至Data文件夾內。

5運行PVIO

(1)這里截取了PVIO源碼ReadMe中關于執(zhí)行的部分:

參考chatgpt的翻譯,PVIO的執(zhí)行命令分三部分:(1)運行文件pvio-pc,該文件位于源碼目錄/build/pvio-pc;(2)指定所使用的數據集[data_scheme]://和該數據集所在路徑[data_path];(3)數據集的配置文件[config_yaml_path],位于源碼目錄/config。

執(zhí)行命令的每部分前需要敲個空格。

(2)進入build文件夾目錄,【右鍵】>【在終端打開】,輸入命令:

終端會顯示相應的配置信息,并打開NanoVis可視化窗口。

config配置信息及NanoVis窗口

報錯“段錯誤(核心已轉儲)”的解決方法:關閉NanoVis窗口,重新輸入命令。該報錯的原因未知,可能是電腦內存不夠。

(3)點擊NanoVis中的按鈕【Run】開始解算?!維tep】為逐幀解算,【ShutDown】為關閉程序。第一列數據為慣導系統(tǒng)三軸角速度和三軸加速度的靜態(tài)偏差值,第二列為逐幀影像及匹配的同名點(猜測),第三列為儀器的狀態(tài)參數。不清楚藍線與紫線哪條為糾正后的軌跡。

解決方法:嘗試再點一下【Run】;或者檢查下數據集的所在路徑是否有誤,重新在終端輸入PVIO執(zhí)行命令。

(4)在build文件夾下的trajectory.tum為生成的軌跡線文件,可用文本格式讀寫。有八列數據,沒有表頭不清楚各列含義。

軌跡線文件

6其他、后記

(1)有關PVIO的論文,在項目的ReadMe文件中有它的下載地址:

該文P290的頁腳處,有關于PVIO實驗補充材料的下載鏈接,其中有兩段視頻——記錄有多個數據集經預積分后生成的軌跡線;以及一份報告,PVIO與其他算法在多個數據集下的軌跡精度對比。

佷詳實,佩服。(汗,雖然看不太懂)

(2)從配置到運行成功大概花了一天半,如果同學你也有復現的需要,建議預留出兩天時間來習慣ubuntu的操作,并耐心配置這繁多的依賴項。

ok,至此有關PVIO的記錄已基本完畢,余下的為吐槽時間。

PVIO后續(xù)若要納為己用,肯定是要涉及源碼優(yōu)化和數據集的制作,自己應該是不會繼續(xù)向下推進了,淺嘗輒止。弄好當天就找老師做了個簡短匯報——從輸入數據上看得有相機+慣導的數據,沒法僅處理imu數據,不然估計要大改程序,還得摸索著找各個功能的入口,不是個短時間的任務。估計老師聽著也有些懵,但好在已pass掉我這塊的內容了,因為這看著也不像是純imu解算能到的精度和結果。這幾天的精力和時間就這么棄掉也挺可惜的,于是,這篇記錄被攢出來了(笑)。

以及關于引言部分的求指點,我猜,PVIO的程序里,imu預積分功能大概是沒法這樣弄,哪怕實現了,這種通過遞推得到的精度,在未知靜態(tài)偏差值的情況下,應該也好不到哪去。純imu應該是沒法算bias值的,得有其他源的數據來進行標定,按《預積分總結與公式推導》中所說:

對于理解 IMU 預積分理論所需的慣導知識...的更多復雜內容,比如對地球自轉的處理,以及地速與絕對速度等概念就不做展開了。

IMU 和視覺這兩種不同源的測量,也使得 IMU 的 bias 可觀,從而可以在優(yōu)化中被有效估計。

只能說...我也沒做好功課,傻乎乎地撲上去弄這個imu預積分了。若要達到老師的要求,其實該去摸索下傳統(tǒng)的捷聯導航算法,至少也能憋出點實在的內容。

那么,感謝你耐心看到這里,承蒙厚愛,有緣再見。


以上。

IMU預積分程序(PVIO)配置、運行的全過程記錄的評論 (共 條)

分享到微博請遵守國家法律
平阳县| 亚东县| 隆林| 封丘县| 苏尼特左旗| 万盛区| 炎陵县| 华池县| 安龙县| 广汉市| 涞水县| 屏山县| 江山市| 徐闻县| 兴仁县| 长子县| 宣汉县| 曲周县| 砚山县| 郁南县| 临安市| 三明市| 灯塔市| 涡阳县| 玉树县| 巴青县| 揭西县| 镇平县| 天气| 阜康市| 军事| 湘潭市| 深水埗区| 连州市| 芦山县| 陇川县| 汪清县| 南溪县| 东乡县| 岫岩| 盐源县|