OpenVINS學習1——數據集配置與運行

前言

OpenVINS是基于MSCKF的開源VIO算法,有非常詳細的官網文檔可以學習使用,將來一段時間的主要實踐工作,就是深度掌握這份開源代碼。

https://docs.openvins.com/

一、環境配置與Euroc數據集運行

我的環境是Ubuntu20.04,ROS1,參看https://docs.openvins.com/gs-installing.html進行配置下載就行,Euroc數據集從OpenVINS支持數據集那里能夠直接下載。

https://docs.openvins.com/gs-datasets.html#gs-data-euroc

關于Euroc的運行,我下載的最新版本OpenVINS好像沒有pgeneva_ros_eth.launch ,網上很多博客可能沒辦法直接運行。不過參考這個博客就行。

https://blog.csdn.net/PG__13/article/details/123323802

在這里插入圖片描述

關于運行配置,主要都在subscribe.launch里面,通過配置不同參數,進行運行選項的選擇。

<launch><!-- what config we are going to run (should match folder name) --><arg name="verbosity"   default="INFO" /> <!-- ALL, DEBUG, INFO, WARNING, ERROR, SILENT --><arg name="config"      default="euroc_mav" /> <!-- euroc_mav, tum_vi, rpng_aruco --><arg name="config_path" default="$(find ov_msckf)/../config/$(arg config)/estimator_config.yaml" /><!-- mono or stereo and what ros bag to play --><arg name="max_cameras" default="2" /><arg name="use_stereo"  default="true" /><arg name="bag_start"   default="0" /> <!-- v1-2: 0, mh1: 40, mh2: 35, mh3: 17.5, mh4-5: 15 --><arg name="bag_rate"    default="1" /><arg name="dataset"     default="V1_01_easy" /> <!-- V1_01_easy, V1_02_medium, V2_02_medium --><arg name="dobag"       default="false" /> <!-- if we should play back the bag --><arg name="bag"         default="/media/patrick/RPNG\ FLASH\ 3/$(arg config)/$(arg dataset).bag" />
<!--    <arg name="bag"         default="/home/patrick/datasets/$(arg config)/$(arg dataset).bag" />-->
<!--    <arg name="bag"         default="/datasets/$(arg config)/$(arg dataset).bag" />--><!-- saving trajectory path and timing information --><arg name="dosave"      default="false" /><arg name="dotime"      default="false" /><arg name="path_est"    default="/tmp/traj_estimate.txt" /><arg name="path_time"   default="/tmp/traj_timing.txt" /><!-- if we should viz the groundtruth --><arg name="dolivetraj"  default="false" /><arg name="path_gt"     default="$(find ov_data)/$(arg config)/$(arg dataset).txt" /><!-- MASTER NODE! -->
<!--    <node name="ov_msckf" pkg="ov_msckf" type="run_subscribe_msckf" output="screen" clear_params="true" required="true" launch-prefix="gdb -ex run &#45;&#45;args">--><node name="ov_msckf" pkg="ov_msckf" type="run_subscribe_msckf" output="screen" clear_params="true" required="true"><!-- master configuration object --><param name="verbosity"              type="string" value="$(arg verbosity)" /><param name="config_path"            type="string" value="$(arg config_path)" /><!-- world/filter parameters --><param name="use_stereo"             type="bool"   value="$(arg use_stereo)" /><param name="max_cameras"            type="int"    value="$(arg max_cameras)" /><!-- timing statistics recording --><param name="record_timing_information"   type="bool"   value="$(arg dotime)" /><param name="record_timing_filepath"      type="string" value="$(arg path_time)" /></node><!-- play the dataset --><group if="$(arg dobag)"><node pkg="rosbag" type="play" name="rosbag" args="-d 1 -r $(arg bag_rate) -s $(arg bag_start) $(arg bag)" required="true"/></group><!-- record the trajectory if enabled --><group if="$(arg dosave)"><node name="recorder_estimate" pkg="ov_eval" type="pose_to_file" output="screen" required="true"><param name="topic"      type="str" value="/ov_msckf/poseimu" /><param name="topic_type" type="str" value="PoseWithCovarianceStamped" /><param name="output"     type="str" value="$(arg path_est)" /></node></group><!-- path viz of aligned gt --><group if="$(arg dolivetraj)"><node name="live_align_trajectory" pkg="ov_eval" type="live_align_trajectory" output="log" clear_params="true"><param name="alignment_type" type="str" value="posyaw" /><param name="path_gt"        type="str" value="$(arg path_gt)" /></node></group></launch>

二、TUM數據集運行測試

TUM數據集也可以從OpenVINS支持數據集那里下載,運行命令主要也是參照subscribe.launch進行配置,因為OpenVINS原生支持TUM數據集,所以比較容易跑通。運行命令如下:

//開啟一個終端
roscore//開啟一個終端
rviz
//打開rviz后,再點擊左上角,open config,添加workspace/catkin_ws_ov/src/open_vins/ov_msckf/launch/display.rviz配置文件//開啟一個終端
source devel/setup.bash
roslaunch ov_msckf subscribe.launch config:=tum_vi dataset:=dataset-room1_512_16//在存放數據bag的文件夾內開啟一個終端
rosbag play dataset-room1_512_16.bag

有個真值的問題沒解決,運行Euroc的時候就發現了,RVIZ中沒有顯示真實軌跡,這里以TUM為例演示一下怎么顯示真實軌跡,Euroc數據集是同理的。將dolivetraj參數配置為true就行,因為OpenVINS里自帶了真實軌跡數據,會自動找到,但是如果使用其他數據集,則還需要改動真值路徑等參數。

roslaunch ov_msckf subscribe.launch config:=tum_vi dataset:=dataset-room1_512_16 dolivetraj:=true

在這里插入圖片描述
此外,ov_eval中還有很多評估工具,需要單獨運行來使用,之后出一期專門學習一下這個。

3、VIRAL數據集配置運行

這是今天的重點部分,原生OpenVINS并不支持VIRAL數據集,但是VIRAL數據集作者曾經就在OpenVINS運行出過一個改動好的代碼,但是現在OpenVINS中launch文件經過改動了,因此也需要重新配置一番。

VIRAL支持的OpenVINS:https://github.com/brytsknguyen/open_vins.git

主要需要修改的地方有:配置文件添加,真實軌跡文件添加,數據集添加測試。
直接去VIRAL支持的OpenVINS里把ntuviral.rviz、run_ntuviral.launch粘貼到自己的OpenVINS中的open_vins/ov_msckf/launch文件夾下就行了。VIRAL作者已經將配置參數都寫到了run_ntuviral.launch里面。
在這里插入圖片描述

運行命令

//打開一個終端
roscore//打開一個終端
roslaunch ov_msckf run_ntuviral.launch bagfile:=/home/merlincs/workspace/dataset/VIRAL/eee_01
//后面是bag的路徑

這一塊還是有問題,明天再搞了。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207891.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207891.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207891.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue3中實現el-tree通過ctrl或shift批量選擇節點并高亮展示

一、看效果&#xff1a; 按住ctrl鍵實現單個多選 按住shift實現區間范圍多選 二、代碼&#xff1a; vue頁面 <template><el-treeclass"w100%":data"$.treeData"ref"treeTab…

Unity中Batching優化的靜態合批

文章目錄 前言一、靜態合批的規則1、模型使用同一個材質2、勾選靜態合批3、對于靜態合批后的Mesh頂點總數&#xff0c;不超過2^16^即可以使用同一批次&#xff0c;超過則會開啟一個新的批次4、對與使用同一材質的不同模型間&#xff0c;紋理貼圖的問題&#xff0c;我們可以通過…

數據可視化工具選擇:功能、易用性與安全性

作為一名數據可視化大屏設計師&#xff0c;我深知選擇一款合適的數據可視化工具對于提高工作效率和呈現效果的重要性。下面&#xff0c;我將從真正對我們數據可視化大屏設計師有用的角度為大家介紹選擇數據可視化工具的一些必要條件和要求。 1. 功能強大與靈活定制 首先&…

高并發場景下的httpClient使用優化技巧

1. 背景 我們有個業務&#xff0c;會調用其他部門提供的一個基于http的服務&#xff0c;日調用量在千萬級別。使用了httpclient來完成業務。之前因為qps上不去&#xff0c;就看了一下業務代碼&#xff0c;并做了一些優化&#xff0c;記錄在這里。 先對比前后&#xff1a;優化…

如何做好口譯服務,同傳和交傳哪個服務好

隨著中國經濟的蓬勃發展和綜合實力的不斷增強&#xff0c;中國與世界各國的交流也日益頻繁。口譯作為對外交流的橋梁與紐帶&#xff0c;需求量與日俱增&#xff0c;其重要性不言而喻。那么&#xff0c;如何做好口譯服務呢&#xff1f;是同傳還是交傳更好呢&#xff1f; 業內專家…

滲透測試工具AWVS的全面解析

在當今的數字化時代&#xff0c;網絡安全已經成為了企業和個人必須關注的重要問題。為了確保網絡的安全&#xff0c;我們需要使用各種工具和技術進行檢測和防護。其中&#xff0c;滲透測試是一種非常重要的方法&#xff0c;它可以幫助我們發現網絡中的安全漏洞&#xff0c;并采…

機器人純阻抗控制接觸剛性環境

問題描述 在機器人學中&#xff0c;阻抗控制是一種常用的控制策略&#xff0c;用于管理機器人在與環境交互時的運動和力。阻抗控制背后的關鍵概念是將環境視為導納&#xff0c;而將機器人視為阻抗。 純阻抗控制接觸剛性環境時&#xff0c;機器人的行為方式主要受其阻抗參數的…

表單小程序作用體現在哪

表單的用途非常廣泛&#xff0c;它是線上收集信息或用戶預約/需求服務的重要方式&#xff0c;對商家來說如今線上平臺非常多&#xff0c;生意開展的形式也越來越多&#xff0c;比如常見的預約、報名、收款、產品支付等都可以通過表單實現。 接下來啊讓我們看看通過【雨科】平臺…

家用智能門鎖——智能指紋鎖方案

智能指紋鎖產品功能&#xff1a; 1&#xff1a;指紋識別技術&#xff1a;光學傳感器、半導體傳感器或超聲波傳感器等。 2&#xff1a;指紋容量&#xff1a;智能指紋鎖可以存儲的指紋數量&#xff0c;通常在幾十到幾百個指紋之間。 3&#xff1a;解鎖時間&#xff1a;指紋識別和…

【力扣100】8.找到字符串中所有字母異位詞

添加鏈接描述 class Solution:def findAnagrams(self, s: str, p: str) -> List[int]:sildingstrresult[]p.join(sorted(p))for i in range(len(s)):if len(sildingstr)<len(p):sildingstrsildingstrs[i]# print(sildingstr)if len(sildingstr)len(p):sort_sildingstr.j…

Android開發常用工具類集合

目錄 DownloadGradleAPIsActivity 相關 -> ActivityUtils.java -> DemoAdaptScreen 相關 -> AdaptScreenUtils.java -> DemoApp 相關 -> AppUtils.java -> Demo欄相關 -> BarUtils.java -> Demo亮度相關 -> BrightnessUtils.java -> DemoBus 相關…

身份認證技術

身份認證是對系統的用戶進行有效性、真實性驗證。 1&#xff0e;口令認證方式 使用口令認證方式&#xff0c;用戶必須具有一個唯一的系統標識&#xff0c;并且保證口令在系統的使用和存儲過程中是安全的&#xff0c;同時口令在傳輸過程中不能被竊取、替換。另外特別要注意的是在…

解決:During handling of the above exception, another exception occurred

解決&#xff1a;During handling of the above exception, another exception occurred 文章目錄 解決&#xff1a;During handling of the above exception, another exception occurred背景報錯問題報錯翻譯報錯位置代碼報錯原因解決方法參考內容&#xff1a;今天的分享就到…

numpy數據讀取保存及速度測試

目錄 數據保存及讀取 速度比對測試 數據保存及讀取 代碼示例&#xff1a; # 導入必要的庫 import numpy as np # 生成測試數據 arr_disk np.arange(8) # 打印生成能的數據 print(arr_disk) # numpy保存數據到本地 np.save("arr_disk", arr_disk) # 加載本地數據…

排序算法-插入/希爾排序

1 插入排序 1.1基本思想&#xff1a; 直接插入排序是一種簡單的插入排序法&#xff0c;其基本思想是&#xff1a;把待排序的記錄按其關鍵碼值的大小逐個插入到一個已經排好序的有序序列中&#xff0c;直到所有的記錄插入完為止&#xff0c;得到一個新的有序序列 。 1.2直…

CentOS7.0 下rpm安裝MySQL5.5.60

下載 下載路徑: MySQL :: Download MySQL Community Server -->looking for the latest GA version-->5.5.60 此壓縮包中有多個rpm包 有四個不是必須的,只需安裝這三個 MySQL-server-5.5.60-1.el6.x86_64 MySQL-devel-5.5.60-1.el6.x86_64 MySQL-client-5.5.60-1.el6.x8…

pymysql insert dataframe 遇到 nan 值

def get_db_conn():"""MYSQL連接"""host Config.MYSQL["host"]pwd Config.MYSQL["pwd"]user Config.MYSQL["user"]port Config.MYSQL["port"]database Config.MYSQL["database"]conn p…

智能淘客查券返利機器人與導購app:差異與優勢

智能淘客查券返利機器人與導購app&#xff1a;差異與優勢 在數字化購物的時代&#xff0c;我們發現越來越多的工具幫助我們省錢和賺錢。其中&#xff0c;智能淘客查券返利機器人和導購app是兩種非常受歡迎的工具。然而&#xff0c;這兩種工具在運作方式、功能以及效果上存在明…

代碼隨想Day 31 | 455.分發餅干、376. 擺動序列 、53. 最大子序和

455.分發餅干 這道題目我的思路就是&#xff0c;先滿足小胃口的小朋友&#xff0c;這樣能夠滿足更多人&#xff0c;首先把兩個數組排序&#xff0c;然后依次對比&#xff0c;不滿足某個胃口小的小朋友就一直給更大的餅干&#xff0c;詳細代碼如下&#xff1a; class Solution…

【js】js實現多個視頻連續播放:

文章目錄 一、效果&#xff1a;二、實現&#xff1a; 一、效果&#xff1a; 二、實現&#xff1a; <!DOCTYPE html> <html> <head><title>Video Player</title><style>#progressBar { width: 800px;height: 20px;background-color: #dd…