欢迎光临散文网 会员登陆 & 注册

ORB-SLAM3调用摄像头的使用教程

2023-07-14 10:36 作者:KSilver  | 我要投稿

本文主要以电脑自带摄像头为例,介绍了如何使用ORB-SLAM3调用摄像头的详细过程。

一、测试相机:

1.安装usb_cam驱动

2.在虚拟机设置中选择USB3.1

3.虚拟机连接摄像头

4.选择摄像头

4.1

在“其他位置/计算机/opt/ros/noetic/share/usb_cam/launch”中(可以用cd指令)用以下指令打开usb_cam-test.launch文件:

4.2

修改图中部分来选择摄像头

可以通过以下指令查看所有摄像头接口

一般默认的0为电脑自带摄像头。

5.打开摄像头

二、标定相机

1.安装标定工具

2.打开标定工具

注意打开标定工具前要先打开摄像头窗口。

3.进行标定

3.1

下载并打印标定板:

http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration?action=AttachFile&do=view&target=check-108.pdf

3.2

将标定板对着摄像头依次左右、上下、前后、倾斜移动来填充X、Y、Size、Skew条。

3.3

全部变成绿条后,点击CALIBRATE按钮,终端中会出现标定结果,再依次点击SAVE、COMMIT按钮保存标定结果,保存位置在"其他位置/计算机/tmp/calibrationdata.tar.gz"

其中的ost.yaml就是我们要用到的标定数据。

三、调用相机

在ORB-SLAM3文件夹中新建一个cam_slam3文件夹

在cam文件夹中用以下命令新建3个文件:

下面对这三个文件进行配置

mycam.yaml:

由于这次我们用的是电脑摄像头,是单目相机,因此我们将ORB-SLAM3→Examples→Monocular中的TUM1.yaml文件作为模板,将里面的内容全部复制到mycam.yaml中。

再根据上面得到的ost.yaml文件修改mycam.yaml

红框部分为要修改的标定数据

数据对应关系如下,在ost.yaml中寻找相应的数据:

camera matrix

distortion_coefficients:[k1   k2   p1   p2   k3]


cam_slam3.cpp:

复制以下内容

修改“cv::VideoCapture cap(0);”中的数字来调用不同的摄像头。

CMakeLists.txt:

复制以下内容

其中两处路径部分需要根据编译时的报错内容使用“sudo find / -name 文件名”搜索路径进行添加。可以参考我添加的路径进行修改。

头文件
库文件

要搜索的文件(仅供参考):

头文件:System.h、BowVector.h、LU、se3.hpp、GeometricCamera.h

库文件:libpangolin.so、libOpenGL.so.0、libGLEW.so.2.1、libORB_SLAM3.so

注意:搜索头文件时报错内容中可能会是一段文件路径,此时只需搜索最后的那个文件名,但在最终添加时需要删除报错提示的路径部分。


修改好这3个文件后,再创建一个build文件夹,进入并右键打开终端,输入以下指令编译:

每次修改这3个文件后都要重新执行一遍上面的编译指令。

运行:

在build文件夹的终端中输入以下指令运行:

TIPS:

用虚拟机运行时不要忘记每次都要连接摄像头。

运行时可能需要等待一段时间才能接收到图像。


参考文章:

http://t.csdn.cn/n1rnt

http://t.csdn.cn/OOUej

http://t.csdn.cn/kNO8f

ORB-SLAM3调用摄像头的使用教程的评论 (共 条)

分享到微博请遵守国家法律