復現YOLO_ORB_SLAM3_with_pointcloud_map項目記錄

文章目錄

  • 1.環境問題
  • 2.遇到的問題
    • 2.1編譯問題1 monotonic_clock
    • 2.2 associate.py
    • 2.3 associate.py問題
  • 3.運行問題


1.環境問題

首先環境大家就按照github上的指定環境安裝即可
在這里插入圖片描述
環境怎么安裝網上大把的資源,自己去找。

2.遇到的問題

2.1編譯問題1 monotonic_clock

在這里插入圖片描述
這是因為C++版本不同導致的系統計時函數編譯報錯
解決方案是 搜索COMPILEDWITHC11
然后把monotonic_clock 換成 steady_clock
例如:

/*
#ifdef COMPILEDWITHC11std::chrono::steady_clock::time_point t1 = std::chrono::steady_clock::now();
#elsestd::chrono::monotonic_clock::time_point t1 = std::chrono::monotonic_clock::now();
#endif
*/
// 替換成下面的:std::chrono::steady_clock::time_point t1 = std::chrono::steady_clock::now();//修改替換的代碼部分

這個問題會報很多次,至少十幾次吧,因為很多文件都有這個東西,他報錯了我們根據報錯位置去改就可以了,就是比較麻煩。

當然我看到有人說只需要把COMPILEDWITHC11改為COMPILEDWITHC14就可以了,這個我沒有嘗試,我只用了上面的方法,大家可以自己嘗試。

2.2 associate.py

數據集的下載地址:https://cvg.cit.tum.de/data/datasets/rgbd-dataset/download
在這里插入圖片描述

associate.py是個啥,這個東西怎么用
這個就是把數據集轉化成一個文件的東西
鏈接: 怎么用看這個

1.按照要求下載數據集,我下載的是rgbd_dataset_freiburg3_walking_xyz,將其解壓到你喜歡的目錄.我個人放在了evalution下

2.下載 associate.py.放在evalution目錄下面.
在這里插入圖片描述

3.打開終端,進入到associate.py所在目錄
在這里插入圖片描述

python associate.py rgb.txt depth.txt > associations.txt

4.命令解說

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE

PATH_TO_SEQUENCE_FOLDER文件夾即為數據庫所在文件夾,我的是在orbslam2工程下面,
ASSOCIATIONS_FILE即為第3步中生成的associations.txt,給出他的制定目錄位置
例子:大家可以參考我的目錄自行更改!

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml /home/lvslam/YOLO_ORB_SLAM3_with_pointcloud_map/evaluation/rgbd_dataset_freiburg3_walking_xyz /home/lvslam/YOLO_ORB_SLAM3_with_pointcloud_map/evaluation/rgbd_dataset_freiburg3_walking_xyz/associations.txt 

2.3 associate.py問題

問題1:報錯AttributeError: ‘dict_keys’ object has no attribute ‘remove’
由于Python2和python3語法的差別,需要將associate.py中第86行87行的

    first_keys = first_list.keys()second_keys = second_list.keys()

改為

    first_keys = list(first_list.keys())second_keys = list(second_list.keys())

問題2:TypeError: read_file_list() takes exactly 2 arguments (1 given)
所遇到的問題是因為read_file_list()函數需要兩個參數,而你在調用時只傳遞了一個參數。我們需要向read_file_list()傳遞兩個參數,即args.first_file和remove_bounds。從代碼來看,remove_bounds應該是一個布爾值,具體是True還是False,可以根據需求來設定。
我們需要修改associate.py
改為:

import argparse
import sys
import os
import numpydef read_file_list(filename, remove_bounds):"""Reads a trajectory from a text file. File format:The file format is "stamp d1 d2 d3 ...", where stamp denotes the time stamp (to be matched)and "d1 d2 d3.." is arbitary data (e.g., a 3D position and 3D orientation) associated to this timestamp. Input:filename -- File nameOutput:dict -- dictionary of (stamp,data) tuples"""file = open(filename)data = file.read()lines = data.replace(",", " ").replace("\t", " ").split("\n")if remove_bounds:lines = lines[100:-100]list = [[v.strip() for v in line.split(" ") if v.strip() != ""] for line in lines if len(line) > 0 and line[0] != "#"]list = [(float(l[0]), l[1:]) for l in list if len(l) > 1]return dict(list)def associate(first_list, second_list, offset, max_difference):"""Associate two dictionaries of (stamp,data). As the time stamps never match exactly, we aim to find the closest match for every input tuple.Input:first_list -- first dictionary of (stamp,data) tuplessecond_list -- second dictionary of (stamp,data) tuplesoffset -- time offset between both dictionaries (e.g., to model the delay between the sensors)max_difference -- search radius for candidate generationOutput:matches -- list of matched tuples ((stamp1,data1),(stamp2,data2))"""first_keys = list(first_list.keys())second_keys = list(second_list.keys())potential_matches = [(abs(a - (b + offset)), a, b)for a in first_keysfor b in second_keysif abs(a - (b + offset)) < max_difference]potential_matches.sort()matches = []for diff, a, b in potential_matches:if a in first_keys and b in second_keys:first_keys.remove(a)second_keys.remove(b)matches.append((a, b))matches.sort()return matchesif __name__ == '__main__':# parse command lineparser = argparse.ArgumentParser(description='''This script takes two data files with timestamps and associates them   ''')parser.add_argument('first_file', help='first text file (format: timestamp data)')parser.add_argument('second_file', help='second text file (format: timestamp data)')parser.add_argument('--first_only', help='only output associated lines from first file', action='store_true')parser.add_argument('--offset', help='time offset added to the timestamps of the second file (default: 0.0)', default=0.0)parser.add_argument('--max_difference', help='maximally allowed time difference for matching entries (default: 0.02)', default=0.02)parser.add_argument('--remove_bounds', help='remove first and last 100 entries', action='store_true')args = parser.parse_args()first_list = read_file_list(args.first_file, args.remove_bounds)second_list = read_file_list(args.second_file, args.remove_bounds)matches = associate(first_list, second_list, float(args.offset), float(args.max_difference))if args.first_only:for a, b in matches:print("%f %s" % (a, " ".join(first_list[a])))else:for a, b in matches:print("%f %s %f %s" % (a, " ".join(first_list[a]), b - float(args.offset), " ".join(second_list[b])))

3.運行問題

rgbd_tum: /tmp/llvm/lib/Support/BranchProbability.cpp:41:llvm::BranchProbability::BranchProbability(uint32_t, uint32_t): 假設 ‘Numerator <= Denominator && “Probability cannot be bigger than 1!”’ 失敗。
已放棄 (核心已轉儲)
在這里插入圖片描述
在這里插入圖片描述
運行出來兩秒就閃退的問題!
切換剛開始的libtorch版本
https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-2.3.1%2Bcpu.zip
這個時2.3.1版本的,我們只需要將上面的數字換掉,然后直接瀏覽器粘貼就可以下對對應的版本!!

經過測試使用1.7.1版本的libtorch可以解決這個問題
也就是
https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-1.7.1%2Bcpu.zip
重新安裝號新的1.7.1版本的libtorch后重新編譯,./build.sh
又會遇到下面的問題:
version `GOMP_4.5’ not found (required by /lib/x86_64-linux-gnu/libpcl_common.so.1.10)

在這里插入圖片描述
我們需要鏈接動態庫解決這個問題:

ln -sf /usr/lib/x86_64-linux-gnu/libgomp.so.1 /YOLO_ORB_SLAM3_with_pointcloud_map/Thirdparty/libtorch/lib/libgomp-75eea7e8.so.1

之后應該就是可以運行了,不過有可能有人會碰到別的問題
之后如果報錯:libORB_SLAM3.so: undefined symbol: _ZN5DBoW24FORB1LE,查看下面的博客就可以
https://blog.csdn.net/qq_41035283/article/details/128301376

然后我們就成功復現這個項目了!!!!
在這里插入圖片描述

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

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

相關文章

ASP.NET Core----基礎學習01----HelloWorld---創建Blank空項目

文章目錄 1. 創建新項目--方式一&#xff1a; blank2. 程序各文件介紹&#xff08;Project name &#xff1a;ASP.Net_Blank&#xff09;&#xff08;1&#xff09;launchSettings.json 啟動方式的配置文件&#xff08;2&#xff09;appsettings.json 基礎配置file參數的讀取&a…

ChatGPT:SpringBoot解決跨域問題方法-手動設置請求頭

ChatGPT&#xff1a;SpringBoot解決跨域問題方法-手動設置請求頭 這里的設置響應頭是為了發送請求方還是接收請求方 設置響應頭是為了發送請求方。具體來說&#xff0c;添加 Access-Control-Allow-Origin 頭部是為了告訴瀏覽器&#xff0c;哪些域名可以訪問資源。當設置為 * 時…

Java求自然常數e的近似值(課堂實例1)

??引言&#x1f383;&#x1f383; ?點關注編程夢想家&#xff08;大學生版&#xff09;-CSDN博客不迷路~~~~~~? 自然常數 &#x1d452;e 是數學中一個非常重要的常數&#xff0c;約等于 2.71828&#xff0c;它在自然對數、復合利息計算等領域有著廣泛的應用。本文將介紹如…

自動批量將阿里云盤文件發布成WordPress文章腳本源碼(以RiPro主題為例含付費信息下載地址SEO等自動設置)源碼

背景 很多資源下載站&#xff0c;付費資源下載站&#xff0c;付費內容查看等都可以用WordPress站點發布內容&#xff0c;這些站點一般會基于一個主題&#xff0c;付費信息作為文章附屬的信息發布&#xff0c;底層存儲在WP表里&#xff0c;比如日主題&#xff0c;子比主題等。 …

掌握IPython的`%%debug`:深入交互式調試的藝術

IPython是一個功能豐富的交互式Python解釋器&#xff0c;它為Python開發者提供了許多便捷的功能&#xff0c;其中之一就是%%debug魔法命令。%%debug是IPython提供的一種快速進入調試模式的方法&#xff0c;它允許用戶在代碼執行出錯時立即開始調試&#xff0c;而無需單獨啟動調…

Apache Seata tcc 模塊源碼分析

本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 本文來自 Apache Seata官方文檔&#xff0c;歡迎訪問官網&#xff0c;查看更多深度文章。 一 .導讀 spring 模塊分析中講到&#xff0c;Seata 的 spring 模塊會對涉及到分布式業務的 b…

《夢醒蝶飛:釋放Excel函數與公式的力量》9.2 FV函數

9.2 FV函數 FV函數是Excel中用于計算投資或貸款在若干期后的未來值的函數。它是一個非常實用的財務函數&#xff0c;能夠幫助我們快速計算投資的最終價值或貸款的期末余額。 9.2.1 函數簡介 FV函數用于計算基于定期固定支付和固定利率的投資或貸款的未來值。未來值是指在一定…

cs224n作業3 代碼及運行結果

代碼里要求用pytorch1.0.0版本&#xff0c;其實不用也可以的。 【刪掉run.py里的assert(torch.version “1.0.0”)即可】 代碼里面也有提示讓你實現什么&#xff0c;弄懂代碼什么意思基本就可以了&#xff0c;看多了感覺大框架都大差不差。多看多練慢慢來&#xff0c;加油&am…

中英雙語介紹美國的州:阿肯色州(Arkansas)

中文版 阿肯色州簡介 阿肯色州&#xff08;Arkansas&#xff09;位于美國南部&#xff0c;以其多樣的自然景觀、豐富的文化遺產和不斷發展的經濟而聞名。以下是對阿肯色州的詳細介紹&#xff0c;包括其地理位置、人口、經濟、教育、文化和主要城市。 地理位置 阿肯色州東臨…

文件、文本閱讀與重定向、路徑與理解指令——linux指令學習(一)

前言&#xff1a;本節內容標題雖然為指令&#xff0c;但是并不只是講指令&#xff0c; 更多的是和指令相關的一些原理性的東西。 如果友友只想要查一查某個指令的用法&#xff0c; 很抱歉&#xff0c; 本節不是那種帶有字典性質的文章。但是如果友友是想要來學習的&#xff0c;…

PD虛擬機怎么聯網?PD虛擬機安裝Win11無法上網 pd虛擬機連不上網怎么解決 mac安裝windows虛擬機教程

PD虛擬機既可以聯網使用&#xff0c;也可以單機使用。如需將PD虛擬機聯網&#xff0c;可以共享Mac原生系統的網絡&#xff0c;其使用體驗與真實系統無異。本文會詳細講解PD虛擬機如何聯網&#xff0c;并會進一步解決PD虛擬機安裝Win10無法上網的問題。 如果有網絡相關問題的小伙…

游戲服務器搭建選VPS還是專用服務器?

游戲服務器搭建選VPS&#xff0c;VPS能夠提供控制、性能和穩定性。它不僅僅是讓游戲保持活力。它有助于減少延遲問題&#xff0c;增強您的游戲體驗。 想象一下&#xff1a;你正沉浸在一場游戲中。 勝利在望。突然&#xff0c;屏幕卡住——服務器延遲。 很崩潰&#xff0c;對…

C語言實現【程序設計與實踐】實驗三:自動售貨機

聲明&#xff1a;著作權歸作者所有。商業轉載請聯系作者獲得授權&#xff0c;非商業轉載請注明出處。 附上c版http://t.csdnimg.cn/BbDSL https://blog.csdn.net/As_sBomb/article/details/105485940 實驗三&#xff1a;自動售貨機 題目&#xff1a; 圖所示為簡易自動售貨…

1493. 刪掉一個元素以后全為 1 的最長子數組

1493. 刪掉一個元素以后全為 1 的最長子數組 題目鏈接&#xff1a;1493. 刪掉一個元素以后全為 1 的最長子數組 代碼如下&#xff1a; class Solution { public://滑動窗口int longestSubarray(vector<int>& nums){int res 0;int count 0;//記錄碰到0的個數int …

【MYSQL】事務隔離級別以及InnerDB底層實現

事務隔離級別 讀未提交&#xff08;Read Uncommitted&#xff09; 允許事務讀取其他事務未提交的數據&#xff0c;可能會導致臟讀。 讀已提交&#xff08;Read Committed&#xff09; 一個事務只能看見已經提交的事務所做的更改&#xff0c;可以避免臟讀&#xff0c;但可能…

win7系統快速安裝python

下載安裝包 建議選擇python3.8左右的&#xff0c;我下載的是3.7.8&#xff0c;最新版本的pythonwin7可能不支持 python網址 下拉尋找 安裝python 1.雙擊安裝包 更換完地址選擇安裝(install) 安裝完成后點擊close即可 測試是否安裝成功 1.winr快捷鍵打開黑窗口輸入cmd …

idea創建的maven項目pom文件引入的坐標報紅原因

如下所示 我們在引入某些依賴坐標的時候&#xff0c;即使點擊了右上角的mavne刷新之后還是報紅。 其實這是正常現象&#xff0c;實際上是我們的本地倉庫當中沒有這些依賴坐標&#xff0c;而idea就會通過報紅來標記這些依賴來說明在我們的本地倉庫是不存在的。 那有的同學就會…

【HICE】dns正向解析

1.編輯倉庫 2.掛載 3.下載軟件包 4.編輯named.conf 5.編輯named.haha 6.重啟服務 7.驗證本地域名是否解析

1116. 打印零與奇偶數

題目描述 現有函數 printNumber 可以用一個整數參數調用&#xff0c;并輸出該整數到控制臺。 例如&#xff0c;調用 printNumber(7) 將會輸出 7 到控制臺。 給你類 ZeroEvenOdd 的一個實例&#xff0c;該類中有三個函數&#xff1a;zero、even 和 odd 。ZeroEvenOdd 的相同實…

六、快速啟動框架:SpringBoot3實戰-個人版

六、快速啟動框架&#xff1a;SpringBoot3實戰 文章目錄 六、快速啟動框架&#xff1a;SpringBoot3實戰一、SpringBoot3介紹1.1 SpringBoot3簡介1.2 系統要求1.3 快速入門1.4 入門總結回顧復習 二、SpringBoot3配置文件2.1 統一配置管理概述2.2 屬性配置文件使用2.3 YAML配置文…