stvo_pl编译问题记录

7 篇文章 0 订阅
4 篇文章 0 订阅

源码下载链接

源码下载链接

编译过程

官方编译说明

官方编译过程

opencv和opencv-contrib安装步骤

版本一定要一样的,这里推荐3.30版本的。
opencv下载链接(opencv3.30)
opencv-contrib下载链接(3.30)
将解压后的opencv-contrib文件放在opencv文件夾下。

  • 安装依赖;
sudo apt-get install build-essential 
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
  • 编译
mkdir build
cd build
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK_2_X=ON -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.x.x/modules -D OPENCV_ENABLE_NONFREE:BOOL=ON ..
make -j12
  • 安装
sudo make install
  1. 环境配置
sudo gedit /etc/ld.so.conf.d/opencv.conf

将/usr/local/lib 复制到打开的文件中。

sudo ldconfig 
sudo gedit /etc/bash.bashrc  

文件末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH
source /etc/bash.bashrc
sudo updatedb
  1. 测试
# 进入opencv的安装目录
cd opencv/samples/cpp/example_cmake
cmake .
make
./opencv_example
opencv安装过程可能遇到的问题以及解决方案
INCLUDE_DIRECTORIES("/home/zhang/AllLib/Opencv/opencv/opencv_contrib/modules/xfeatures2d/include")
  • 当在执行100%进度之后出现上述的问题时,将对应报错文件中的引用地址改成绝对地址(我的是在/opencv/modules/stitching/include/opencv2/stitching/detail/matchers.hpp文件中的头文件件引用中对opencv2/xfeatures2d/cuda.hpp的引用改为绝对地址(/home/—/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp));
  • fatal error: vgg_generated_80.i: 没有那个文件或目录;fatal error: boostdesc_bgm.i: 没有那个文件或目录将该文件中的boost和vgg文件复制到/home/***/opencv_contrib/modules/xfeatures2d/src中并将文件前的数字和“-”去掉,继续进行编译。

Eigen3安装

参考该博客中的安装方式,记得最后将Engin复制一份,避免Eigen/Dense找不到。
ubuntu常用库安装

Boost安装

sudo apt-get install libboost-dev
Boost安装过程可能遇到的问题以及解决方案
CMake Error at /usr/share/cmake-3.5/Modules/FindBoost.cmake:1677 (message):
  Unable to find the requested Boost libraries.

  Boost version: 1.58.0

  Boost include path: /usr/include

  Could not find the following Boost libraries:

          boost_regex
          boost_thread
          boost_system
          boost_filesystem

  Some (but not all) of the required Boost libraries were found.  You may
  need to install these additional Boost libraries.  Alternatively, set
  BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT
  to the location of Boost.

在终端执行sudo apt install libboost-all-dev
如果在安装时发生下载失败提示更换源,我用的是阿里源。继续执行上述命令。

Could not find the following static Boost libraries:

YAML安装

sudo apt install libyaml-cpp-dev

MRPT安装

下载链接

https://github.com/MRPT/mrpt/tree/0c3d605c3cbf5f2ffb8137089e43ebdae5a55de3

没有安装libwxgtk2.8-dev的系统一定要先安装该库,安装方式在下方。

//安装依赖库,其中有些库如果已经安装,不必重复安装. 如果按照我上篇帖子的OpenCV安装方法,可以发现前几个都安装过了.而且有些库是可选择性安装的,详见上述标准安装过程网址.
$ sudo apt-get install build-essential pkg-config libdc1394-22-dev libjpeg-dev libsuitesparse-dev libftdi-dev freeglut3-dev zlib1g-dev libusb-1.0-0-dev libudev-dev libfreenect-dev  libavformat-dev libswscale-dev libassimp-dev libgtest-dev libpcap-dev
//进入MRPT码包
$ mkdir build
$ cd build 
$ cmake ..
$ make -j12
$ sudo make install
MRPT安装过程可能遇到的问题以及解决方案
sudo add-apt-repository ppa:nilarimogard/webupd8 
sudo apt-get update
sudo apt-get install libwxgtk2.8-dev

运行

  • 在stvo_pl文件夹下创建kitti文件夹,将kitti 数据集中的00数据集复制到该文件夹中;
  • 将config/dataset_params/kittixxx.yalm配置文件复制到对应的数据集文件中并将文件名称改为dataset_params.yaml,注意gray数集需要将其中的image2/_image3/改为image0/_image1/;
  • 在.bashrc文件最后添加数据集文件位置,该操作只是用于执行程序时定位数据集的。
gedit ~/.bashrc
export DATASETS_DIR=/××××/stvo-pl
source ~/.bashrc
  • 在执行命令中注意…/config/config/config_kitti.yaml,文件的具体位置。
运行过程可能遇到的问题以及解决方案
  • terminate called after throwing an instance of ‘std::logic_error’ what(): basic_string::_M_construct null not valid Aborted (core dumped)—在.bashrc文件中输入``
gedit ~/.bashrc
export LC_ALL="en_US.utf8"
source ~/.bashrc
  • 在运行Demo时输入运行指令后发生段错误(核心已转存)
    解决办法是修改stvo_pl中的Cmakelist.txt编译命令,在整个程序运行的过程中出可能会莫名其妙的出现很多这种错误提示,按照下面的方法修改源码可以解决大部分段错误的问题。
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -mtune=native -march=native")
改成
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -mtune=native")

结果

在这里插入图片描述

EuRoC 数据集运行

例MH_01_easy

gedit ~/.bashrc
export DATASETS_DIR=<path-to-euroc>
source ~/.bashrc
  • 复制stvo_pl/config/dataset_params/euroc_params.yaml 到 <path-to-MH_01_easy>/mav0/中。
  • 重命名 the yaml file to dataset_params.yaml and change it if necessary
  • 运行 ./imagesStVO /MH_01_easy/mav0 -c ../config/config/config_euroc.yaml
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值