jeston nano 下调用csi摄像头来运行orbslam2

1.首先对摄像头进行标定

​ 正确安装好摄像头之后,可以在终端下输入,摄像头就会开启

nvgstcapture-1.0


想关掉摄像头的话,直接在终端输入q再按回车;
​ 想获图片的话,在终端输入j再按回车,图片将保存当前目录下;

利用张正友标定法对相机进行标定:

​ 首先打印一张用于标定的棋盘格,然后按照上述方式,从不同角度不同具体拍摄棋盘格照片(大约20张左右),然后用Matlab工具箱进行标定。

参考:https://blog.csdn.net/heroacool/article/details/51023921

2.重写一个接口,用来调用ORBSLAM2

​ 对于数据集上的示例,ORB-SLAM2 会首先读取数据集中的图像,再放到 SLAM 中处理。那么对于我们自己的摄像头,同样可以这样处理。所以最方便的方案是直接将我 们的程序作为一个新的可执行程序,加入到 ORB-SLAM2 工程中。

cd Examples/Monocular/
vim myslam.cc
vim myslam.yaml

在myslam.cc 中写入以下内容

// 该文件将打开你电脑的摄像头,并将图像传递给ORB-SLAM2进行定位

// 需要opencv
#include <opencv2/opencv.hpp>

// ORB-SLAM的系统接口
#include "System.h"

#include <string>
#include <chrono>   // for time stamp
#include <iostream>

using namespace std;



int main(int argc, char **argv) {
	//传入参数文件和词典文件
    string parameterFile = argv[1];
    string vocFile = argv[2];
    // 声明 ORB-SLAM2 系统
    ORB_SLAM2::System SLAM(vocFile, parameterFile, ORB_SLAM2::System::MONOCULAR, true);

    // 获取相机图像代码
    cv::VideoCapture cap(0);    // change to 1 if you want to use USB camera.

    // 分辨率设为640x480
    cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480);

    // 记录系统时间
    auto start = chrono::system_clock::now();

    while (1) {
        cv::Mat frame;
        cap >> frame;   // 读取相机数据
        auto now = chrono::system_clock::now();
        auto timestamp = chrono::duration_cast<chrono::milliseconds>(now - start);
        SLAM.TrackMonocular(frame, double(timestamp.count())/1000.0);
    }

    return 0;
}

在myslam.yaml 中写入自己标定的相机内参

%YAML:1.0

#--------------------------------------------------------------------------------------------
# Camera Parameters. Adjust them!
#--------------------------------------------------------------------------------------------

# Camera calibration and distortion parameters (OpenCV) 
# 主要是在这里写入自己的标定参数,这个文件可以通过copy 数据集的yaml文件进行修改即可
Camera.fx: 
Camera.fy: 
Camera.cx: 
Camera.cy: 

Camera.k1: 
Camera.k2: 
Camera.p1: 
Camera.p2: 
Ca
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值