ORBSLAM2理论与实战(5) 运行实战

运行ORBSLAM2 需要 

1.ubuntu   (本人使用ubuntu16.04.6)

2.ROS(可选)        (与ubuntu16.04 相对于的kinetic)

3.第三方库(pangolin   opencv   Sophus  Eigen)

 

1.ubuntu安装

为了方便,安装双系统,参考本人另一篇博文

https://blog.csdn.net/weixin_39752599/article/details/84450555

2.安装ROS kinetic 

http://wiki.ros.org/kinetic/Installation/Ubuntu

安装如下:

1.打开命令行终端 输入

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2.输入密钥

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

3.更新软件源

sudo apt-get update

4.安装完整版ROS

sudo apt-get install ros-kinetic-desktop-full

5.Initialize rosdep

sudo rosdep init
rosdep update

6.更改环境变量

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

3.安装需要的第三方库

参考本人的另个博文https://blog.csdn.net/weixin_39752599/article/category/8298836

 

运行ORBSLAM2

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

cd ORB_SLAM2
chmod +x build.sh
./build.sh

跑的摄像头:

代码入口:

//
// Created by xiang on 11/29/17.
//

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

// 需要opencv
#include 

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

#include 
#include    // for time stamp
#include 

using namespace std;

// 参数文件与字典文件
// 如果你系统上的路径不同,请修改它
string parameterFile = "./myslam.yaml";
string vocFile = "./Vocabulary/ORBvoc.txt";

int main(int argc, char **argv) {

    // 声明 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(now - start);
        SLAM.TrackMonocular(frame, double(timestamp.count())/1000.0);
    }

    return 0;
}

CMakeLists.txt 修改如下:
 

add_executable(mono_C920 Examples/Monocular/myslam.cpp)
target_link_libraries(mono_c920 ${PROJECT_NAME})

单目罗技摄像头 C920 运行结果为:

    ORBSLAM2理论与实战(5) 运行实战_第1张图片

 

你可能感兴趣的:(ORBSLAM2,VSLAM)