之前不管orb-slam3在windows 7,10或ubuntu 20,22,24怎麼裝都不行,這版本才成功,謝謝Dennis Liu,不過我跳過ROS2部份,只安裝orb-slam3
補充TUM魚眼部份
wget https://vision.in.tum.de/tumvi/exported/euroc/512_16/dataset-corridor4_512_16.tar
因為我沒有裝ROS2,所以我是下載tar檔,並解壓縮到自己orb-slam3下另外建立一個datasets子目錄. 我仿造Dennis的測試,但發現單眼不可跑,發覺要雙眼才行
./Examples/Stereo-Inertial/stereo_inertial_tum_vi ./Vocabulary/ORBvoc.txt ./Examples/Stereo-Inertial/TUM-VI.yaml ./datasets/dataset-corridor4_512_16/mav0/cam0/data ./datasets/dataset-corridor4_512_16/mav0/cam1/data ./Examples/Stereo-Inertial/TUM_TimeStamps/dataset-corridor4_512.txt ./Examples/Stereo-Inertial/TUM_IMU/dataset-corridor4_512.txt
wget https://cvg.cit.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_xyz.tgz
並解壓縮到自己orb-slam3下的datasets子目錄
對於RGB-D模式
./Examples/RGB-D/rgbd_tum ./Vocabulary/ORBvoc.txt ./Examples/RGB-D/TUM1.yaml ./datasets/rgbd_dataset_freiburg1_xyz ./Examples/RGB-D/associations/fr1_xyz.txt
對於單目模式(只使用RGB圖像)
./Examples/Monocular/mono_tum ./Vocabulary/ORBvoc.txt ./Examples/Monocular/TUM1.yaml ./datasets/rgbd_dataset_freiburg1_xyz
./Examples/Stereo/stereo_kitti ./Vocabulary/ORBvoc.txt ./Examples/Stereo/KITTI00-02.yaml ./datasets/Kitti_data_odometry_gray/dataset/sequences/01
我另外拷貝./Examples/Monocular/EuRoC.yaml相機參數設定檔到 ./datasets/01/EuRoC_01_stereo.yaml並修改這些參數
ORBextractor.nFeatures: 3000 # 原本 1000
ORBextractor.iniThFAST: 12 # 原本 20
ORBextractor.minThFAST: 3 # 原本 7Camera.width: 1365
Camera.height: 768
Camera.newWidth: 1000 #原本 600
Camera.newHeight: 563 #原本 350
Camera.fps: 60 #原本 30
另外要自己建立時間戳記檔time_stamp.txt,存到./datasets/01目錄下
cd ./datasets/01/mav0/cam0/data
ls *.png | sort | sed 's/.png$//' > ../../../time_stamp.txt
其實我有試過將下載檔案中的calibration.zip和sensordata.zip,仿照這網頁修改.yaml相機參數設定檔,
Camera1.fx: 1570.923
Camera1.fy: 1570.923
Camera1.cx: 804.9117
Camera1.cy: 527.9084
Camera1.k1: -0.41175
Camera1.k2: 0.23465
Camera1.p1: 0.0
Camera1.p2: 0.0Camera2.fx: 1570.923
Camera2.fy: 1570.923
Camera2.cx: 1088.213
Camera2.cy: 544.5116
Camera2.k1: -0.41492
Camera2.k2: 0.23924
Camera2.p1: 0.0
Camera2.p2: 0.0#Stereo baseline * fx
Camera.bf: 12567.384 # 8mm * 1570.923
#Stereo.bf: 3.14 #腹腔鏡基線通常 5-15mm
也有丟給ChatGPT跟Claude.ai修改,結果改了一拖拉庫參數; Claude.ai還說改雙目比較可行(下載cam1/01.zip照它格式放),但不管怎麼改,最後都執行錯誤: Segmentation fault (core dumped), 所以我只好單純執行
./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./datasets/01/EuRoC_01_stereo.yaml ./datasets/01 ./datasets/01/time_stamp.txt
可以看到無法顯示彩色,至少它開始可以動
另外因為追蹤點很少,常小於15個,所以在19秒前常常秀出"TRACK_REF_KF: Less than 15 matches!!", 35秒進入腹腔,可以見到肝臟;40秒可以看到肝跟胃. 但35秒之後就"Fail to track local map!"
(內臟真的紋理太少,還有paper寫的其他問題,我試過把其中30張丟給COLMAP重建,它是有給ply檔,但MeshLab打開完全看不到東西,如果整個影像資料夾丟給COLMAP重建,重建完它就當掉沒存ply檔.)