IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Ubuntu16.04搭建和运行DSO -> 正文阅读

[系统运维]Ubuntu16.04搭建和运行DSO

DSO的GitHub链接:https://github.com/JakobEngel/dso

本博客基于VMware搭建的Ubuntu16.04实现DSO


1. 克隆DSO

sudo apt install git
git clone https://github.com/JakobEngel/dso.git



2. 搭配环境

eigen3

sudo apt install libsuitesparse-dev libeigen3-dev libboost-all-dev

opencv

sudo apt install libopencv-dev

Pangolin

github:https://github.com/stevenlovegrove/Pangolin

  1. 克隆
git clone https://github.com/stevenlovegrove/Pangolin.git
  1. 安装Pangolin需要的依赖项:
tar -zxvf Pangolin.tar.gz
  1. 编译和安装Pangolin
cd [path-to-pangolin]
mkdir build
cd build
cmake ..
make
sudo make install

ziplib

sudo apt-get install zlib1g-dev
cd dso/thirdparty
tar -zxvf libzip-1.1.1.tar.gz
cd libzip-1.1.1/
./configure
make
sudo make install
sudo cp lib/zipconf.h /usr/local/include/zipconf.h   # (no idea why that is needed).



3. 编译DSO

	cd dso
	mkdir build
	cd build
	cmake ..
	make -j4



4. make可能出现的错误

错误一

virtual memory exhausted: 无法分配内存
CMakeFiles/dso.dir/build.make:62: recipe for target 'CMakeFiles/dso.dir/src/FullSystem/FullSystem.cpp.o' failed
make[2]: *** [CMakeFiles/dso.dir/src/FullSystem/FullSystem.cpp.o] Error 1
make[2]: *** 正在等待未完成的任务....
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/dso.dir/all' failed
make[1]: *** [CMakeFiles/dso.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

解决方法:
make -j4该低点 ,改成make -j2

错误二

[ 96%] Linking CXX executable bin/dso_dataset
/usr/bin/ld: CMakeFiles/dso_dataset.dir/src/main_dso_pangolin.cpp.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/dso_dataset.dir/build.make:129: recipe for target 'bin/dso_dataset' failed
make[2]: *** [bin/dso_dataset] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/dso_dataset.dir/all' failed
make[1]: *** [CMakeFiles/dso_dataset.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

解决方法:
参考博客:https://blog.csdn.net/qq_17232031/article/details/79540286
修改CMakeLists.txt有关于Thread,首先在CMakeLists.txt中添加一条:

FIND_PACKAGE(Threads QUIET)

然后将:

if (OpenCV_FOUND AND Pangolin_FOUND)
  	message("--- compiling dso_dataset.")
  	add_executable(dso_dataset ${PROJECT_SOURCE_DIR}/src/main_dso_pangolin.cpp )
   target_link_libraries(dso_dataset dso boost_system boost_thread cxsparse ${LIBZIP_LIBRARY} ${Pangolin_LIBRARIES} ${OpenCV_LIBS} )
else()
  	message("--- not building dso_dataset, since either don't have openCV or Pangolin.")
endif()

改为:

if (OpenCV_FOUND AND Pangolin_FOUND)
  	message("--- compiling dso_dataset.")
  	add_executable(dso_dataset ${PROJECT_SOURCE_DIR}/src/main_dso_pangolin.cpp )
    target_link_libraries(dso_dataset dso boost_system boost_thread cxsparse ${LIBZIP_LIBRARY} ${Pangolin_LIBRARIES} ${OpenCV_LIBS} ${CMAKE_THREAD_LIBS_INIT})
else()
  	message("--- not building dso_dataset, since either don't have openCV or Pangolin.")
endif()

然后重新编译:

cmake ..
make -j2



5. 运行数据集

数据来源:https://vision.in.tum.de/data/datasets/mono-dataset?redirect=1

输入以下内容;但是导致了报错
在这里插入图片描述
原因:没有解压


所以我们先加压一下;解压suquence_14和里面的images,并删除压缩文件
输入:

./dso_dataset files=./sequence_14/images calib=./sequence_14/camera.txt gamma=./sequence_14/pcalib.txt vignette=./sequence_14/vignette.png preset=0 mode=0

又报了以下错误:
在这里插入图片描述
原因:Pangolin没有装好;重新安装Pangolin;参考https://blog.csdn.net/qq_39236499/article/details/122722038里面的Pangolin报错解决方法,两个是一模一样的错误

再次输入上面指令!成功!!!
在这里插入图片描述

参考博客

https://blog.csdn.net/qq_17232031/article/details/79540286
https://blog.csdn.net/qq_37568167/article/details/106384458
https://blog.csdn.net/qq_39236499/article/details/109010081

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-05 22:03:22  更:2022-02-05 22:03:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:21:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码