【SLAM十四讲】使用视频运行 ORB-SLAM2(第一章实践作业)-myvideo练习

myvideo练习

作业代码来源: 高博:slam1code:

链接:https://pan.baidu.com/s/1vHNZWlu7X5ex5LzMSnbtrQ
提取码:34v2
具体内容如下:
myvideo文件夹的位置在: /ORB_SLAM2/Examples

其中:ORBvoc.txt文件就是DBoW2磁带的配置

myvideo.cpp修改
其位置在:/home/zhe/1/lianxi/1/ /ORB_SLAM2/Examples/myvideo/

// 参数文件与字典文件
// 如果你系统上的路径不同,请修改它(myvideo.yaml文件的属性的父文件夹/myvideo.yaml)
string parameterFile = "/home/zhe/1/lianxi/1/ /ORB_SLAM2/Examples/myvideo/myvideo.yaml";
//ORBvoc.txt文件在/home/zhe/1/lianxi/1/ORB_SLAM2/Vocabulary下复制到自己的系统路径下
string vocFile = "/home/zhe/1/lianxi/1/ /ORB_SLAM2/Examples/myvideo/Vocabulary/ORBvoc.txt";

// 视频文件
string videoFile = "/home/zhe/1/lianxi/1/ /ORB_SLAM2/Examples/myvideo/myvideo.mp4";

CMakeList.txt修改
其位置在:/home/zhe/1/lianxi/1/ /ORB_SLAM2/

1.仿照单目来写,,单目对应程序如下

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Monocular)

add_executable(mono_tum
Examples/Monocular/mono_tum.cc)
target_link_libraries(mono_tum ${PROJECT_NAME})

2.myvideo的修改为

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/Monocular/myvideo)//文件夹名

add_executable(myvideo
Examples/Monocular/myvideo.cpp)
target_link_libraries(myvideo ${PROJECT_NAME})

修改后参照README.md来 编译运行(README.md所在位置:/home/zhe/1/lianxi/1/ORB_SLAM2)

注意非首次跑时,及运行下面编译时,先删除ORB_SLAM2;/ORB_SLAM2/Thirdparty/DBoW2和/ORB_SLAM2/Thirdparty/g2o下的三个build文件

chmod +x build.sh  //赋予其权限
./build.sh

若报以下错误时

在这里插入图片描述

图1-1

错误来源:myvideo.cpp找不到正确的来源修改如下

2.myvideo的修改为

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/Examples/myvideo)//文件夹名

add_executable(myvideo
Examples/myvideo/myvideo.cpp)
target_link_libraries(myvideo ${PROJECT_NAME})

为了验证错误来源我分开编译后如下图所示:

在这里插入图片描述

图1-2

利用源代码中所给方法编译结果如下图所示

在这里插入图片描述

图1-3

编译时有时候会出现编译到55%左右卡住的情况,例如:
在这里插入图片描述

图1-4
**解决:** 修改build.sh中的make线程数。 build.sh里面的 make 处 是make j 8? 改成 make j4,不要让电脑的所有cpu资源都拿去编译(个人理解是:全部cpu资源拿去编译了,其他可能进程相当于得不到响应)

参考来源:使用摄像头或视频运行 ORB-SLAM2 SLAM14讲 第一次课后作业

其编译后的可执行文件所在

在这里插入图片描述

图1-5
执行 ./myslam ,运行时报如下图所示错误也未出现窗口

在这里插入图片描述

图1-6

其中terminate called after throwing an instance of ‘cv::Exception’

terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(3.4.14) /home/zhe/1/orb-slam/OpenCV 3.4.14/opencv-opencv-6dd4e87/modules/highgui/src/window.cpp:641: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow' 

提示安装libgtk2.0-dev 和 pkg-config

sudo apt-get install libgtk2.0-dev来解决,错误不变但是会出现窗口闪退

安装pkg-config 来源Ubuntu 16.04 下pkg-config的安装与简介

出现Makefile:696: recipe for target ‘install-recursive’ failed错误

需要重装opencv3.2安装链接:在ubuntu18.04中安装opencv_contrib-3.2.0采坑教程

后重新编译,运行即可解决如图1-7所示的错误,最终运行 ./myslam 结果如下
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

图1-7

小结:

  1. 路径问题(即myvideo.cpp未找到正确的来源)

  2. 注意非首次编译时,应先删除ORB_SLAM2;/ORB_SLAM2/Thirdparty/DBoW2和/ORB_SLAM2/Thirdparty/g2o下的三个build文件

  3. 运行./myvideo时,缺少相应的配置以及版本不匹配问题
    缺少libgtk2.0-dev 和 pkg-config有如上图1-6所示的错误,并且Map Viewer窗口也没有出现按照提示安装sudo apt-get install libgtk2.0-dev来后,原本错误还在并且会出现Map Viewer窗口闪退现象。

    最好后是重装opencv重新编译运行解决上述问题。(在重新编译运行之前的三个build文件和myvideo可执行文件都要删除)

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: 好的,我可以为您提供有关在Ubuntu 18.04上运行ORB-SLAM2的一些指导。 ORB-SLAM2是一种用于视觉SLAM(同时定位与建图)的开源库。以下是在Ubuntu 18.04上运行ORB-SLAM2的一些步骤: 1. 安装必要的软件包:在终端中执行以下命令来安装ORB-SLAM2所需的软件包: ``` sudo apt-get update sudo apt-get install libglew-dev libboost-all-dev cmake libopencv-dev libeigen3-dev libgtk2.0-dev ``` 2. 下载ORB-SLAM2源代码:可以从ORB-SLAM2的GitHub存储库(https://github.com/raulmur/ORB_SLAM2)中获取源代码。 ``` git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 ``` 3. 编译ORB-SLAM2:进入ORB-SLAM2的目录并执行以下命令来编译ORB-SLAM2: ``` cd ORB_SLAM2 chmod +x build.sh ./build.sh ``` 4. 下载ORB-SLAM2所需的数据集:ORB-SLAM2需要一些数据集才能运行。可以使用以下命令从ORB-SLAM2的GitHub存储库中下载数据集: ``` cd ORB_SLAM2 ./get_datasets.sh ``` 5. 运行ORB-SLAM2:执行以下命令来运行ORB-SLAM2: ``` ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml PATH_TO_SEQUENCE_FOLDER ``` 其中,PATH_TO_SEQUENCE_FOLDER是包含图像序列的文件夹的路径。ORB-SLAM2将在终端中输出它的输出。 希望这些步骤能够帮助您在Ubuntu 18.04上运行ORB-SLAM2。如果您遇到任何问题,可以随时问我。 ### 回答2: ORB-SLAM2是一款功能非常强大的视觉SLAM系统,适用于机器人、AR/VR、自动驾驶等领域。在Ubuntu18.04上运行ORB-SLAM2需要进行以下步骤: 1. 安装必要的软件包:ORB-SLAM2需要使用OpenCV、Eigen、Pangolin等库,可以使用以下命令安装: sudo apt-get install libopencv-dev libeigen3-dev libglew-dev libpython2.7-dev libblas-dev liblapack-dev libatlas-base-dev libboost-all-dev libprotobuf-dev protobuf-c-compiler protobuf-compiler libgoogle-glog-dev libgflags-dev 2. 克隆并编译ORB-SLAM2:在终端中输入以下命令,将ORB-SLAM2代码克隆到本地: git clone https://github.com/raulmur/ORB_SLAM2.git 编译ORB-SLAM2需要使用CMake工具,具体步骤如下: a. 进入ORB-SLAM2目录 cd ORB_SLAM2 b. 创建build文件夹 mkdir build c. 进入build文件夹 cd build d. 运行CMake cmake .. e. 编译ORB-SLAM2 make -j4 3. 准备数据集:在运行ORB-SLAM2之前需要准备一个数据集,可以从KITTI、EuRoC、TUM等网站下载。 4. 运行ORB-SLAM2:在终端中输入以下命令运行ORB-SLAM2: ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml [数据集路径] 其中,[数据集路径]替换成实际数据集的路径。运行过程中,ORB-SLAM2会显示当前帧的跟踪情况和地图的构建情况。 总之,Ubuntu18.04运行ORB-SLAM2需要安装必要的软件包、克隆并编译ORB-SLAM2、准备数据集,并在终端中运行ORB-SLAM2。这个过程需要一定的计算机视觉和Linux操作系统的基础知识,对于初学者可能会比较困难,需要耐心学习和实践。 ### 回答3: 在Ubuntu18.04上运行ORB-SLAM2需要几个步骤: 1.下载ORB-SLAM2并安装必要的库文件 可以在ORB-SLAM2的官方网站上下载最新版本的ORB-SLAM2或者从GitHub网站获取源代码。安装ORB-SLAM2需要用到一些依赖库,如Eigen3、DBoW2、g2o、OpenCV等,可以使用以下命令行安装: sudo apt-get install libeigen3-dev libblas-dev liblapack-dev libboost-all-dev libopencv-dev sudo apt-get install libglew-dev libgoogle-glog-dev libgflags-dev libprotobuf-dev protobuf-compiler libatlas-base-dev libsuitesparse-dev libceres-dev 2.编译ORB-SLAM2 解压缩ORB-SLAM2的压缩包,进入ORB-SLAM2的主目录,运行以下命令进行编译: cd ORB_SLAM2 chmod +x build.sh ./build.sh 3.下载测试数据集并运行ORB-SLAM2 可以从ORB-SLAM2的官方网站上下载某些测试数据集,例如TUM RGB-D数据集,测试ORB-SLAM2的性能。先下载TUM RGB-D数据集并解压,然后到ORB_SLAM2目录中运行以下命令: ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml ~/Data/rgbd_dataset_freiburg1_rpy 其中,Vocabulary/ORBvoc.txt是ORB-SLAM2的字典文件,Examples/RGB-D/TUM1.yaml是配置文件,~/Data/rgbd_dataset_freiburg1_xyz是RGB-D数据集的路径。 4.运行结果分析 ORB-SLAM2的运行结果可以在终端中查看或者在图形界面中可视化。在终端中运行ORB-SLAM2后,它会输出一些关键的信息,例如ORB特征点的数量、相机的位姿、地图点的数量等。通过这些信息可以对ORB-SLAM2的性能进行评估。在图形界面中可以看到ORB-SLAM2的地图、相机的轨迹、当前帧的ORB特征点等,这些信息可以帮助我们更好地了解ORB-SLAM2的运行情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值