ORB-SLAM3調(diào)用攝像頭的使用教程
本文主要以電腦自帶攝像頭為例,介紹了如何使用ORB-SLAM3調(diào)用攝像頭的詳細(xì)過程。
一、測試相機:
1.安裝usb_cam驅(qū)動
2.在虛擬機設(shè)置中選擇USB3.1

3.虛擬機連接攝像頭

4.選擇攝像頭
4.1
在“其他位置/計算機/opt/ros/noetic/share/usb_cam/launch”中(可以用cd指令)用以下指令打開usb_cam-test.launch文件:
4.2
修改圖中部分來選擇攝像頭

可以通過以下指令查看所有攝像頭接口
一般默認(rèn)的0為電腦自帶攝像頭。
5.打開攝像頭
二、標(biāo)定相機
1.安裝標(biāo)定工具
2.打開標(biāo)定工具
注意:打開標(biāo)定工具前要先打開攝像頭窗口。
3.進(jìn)行標(biāo)定
3.1
下載并打印標(biāo)定板:
http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration?action=AttachFile&do=view&target=check-108.pdf
3.2
將標(biāo)定板對著攝像頭依次左右、上下、前后、傾斜移動來填充X、Y、Size、Skew條。
3.3
全部變成綠條后,點擊CALIBRATE按鈕,終端中會出現(xiàn)標(biāo)定結(jié)果,再依次點擊SAVE、COMMIT按鈕保存標(biāo)定結(jié)果,保存位置在"其他位置/計算機/tmp/calibrationdata.tar.gz"
其中的ost.yaml就是我們要用到的標(biāo)定數(shù)據(jù)。
三、調(diào)用相機
在ORB-SLAM3文件夾中新建一個cam_slam3文件夾
在cam文件夾中用以下命令新建3個文件:

下面對這三個文件進(jìn)行配置
mycam.yaml:
由于這次我們用的是電腦攝像頭,是單目相機,因此我們將ORB-SLAM3→Examples→Monocular中的TUM1.yaml文件作為模板,將里面的內(nèi)容全部復(fù)制到mycam.yaml中。
再根據(jù)上面得到的ost.yaml文件修改mycam.yaml

數(shù)據(jù)對應(yīng)關(guān)系如下,在ost.yaml中尋找相應(yīng)的數(shù)據(jù):

distortion_coefficients:[k1?? k2?? p1?? p2 ? k3]
cam_slam3.cpp:
復(fù)制以下內(nèi)容
修改“cv::VideoCapture cap(0);”中的數(shù)字來調(diào)用不同的攝像頭。
CMakeLists.txt:
復(fù)制以下內(nèi)容
其中兩處路徑部分需要根據(jù)編譯時的報錯內(nèi)容使用“sudo find / -name 文件名”搜索路徑進(jìn)行添加??梢詤⒖嘉姨砑拥穆窂竭M(jìn)行修改。


要搜索的文件(僅供參考):
頭文件:System.h、BowVector.h、LU、se3.hpp、GeometricCamera.h
庫文件:libpangolin.so、libOpenGL.so.0、libGLEW.so.2.1、libORB_SLAM3.so
注意:搜索頭文件時報錯內(nèi)容中可能會是一段文件路徑,此時只需搜索最后的那個文件名,但在最終添加時需要刪除報錯提示的路徑部分。
修改好這3個文件后,再創(chuàng)建一個build文件夾,進(jìn)入并右鍵打開終端,輸入以下指令編譯:
每次修改這3個文件后都要重新執(zhí)行一遍上面的編譯指令。
運行:
在build文件夾的終端中輸入以下指令運行:
TIPS:
用虛擬機運行時不要忘記每次都要連接攝像頭。
運行時可能需要等待一段時間才能接收到圖像。
參考文章:
http://t.csdn.cn/n1rnt
http://t.csdn.cn/OOUej
http://t.csdn.cn/kNO8f