SVO2-OPEN: https://github.com/uzh-rpg/rpg_svo_pro_open

git挂梯子

https://blog.csdn.net/qq_33349365/article/details/101514412

如果各位终端无法挂梯子,直接下载我在码云上整理好的代码:

第一种编译方式:

git clone https://gitee.com/ma_yu_armor/svo2_build.git

第二种编译方式:

git clone -b method2 https://gitee.com/ma_yu_armor/svo2_build.git

Install

The code has been tested on

  • Ubuntu 18.04 with ROS Melodic

  • Ubuntu 20.04 with ROS Melodic

Install dependencies

Install catkin tools and vcstools if you haven't done so before. Depending on your operating system, run

# For Ubuntu 18.04 + Melodic
sudo apt-get install python-catkin-tools python-vcstool

or

# For Ubuntu 20.04 + Noetic
sudo apt-get install python3-catkin-tools python3-vcstool python3-osrf-pycommon

Install system dependencies and dependencies for Ceres Solver

# system dep.
sudo apt-get install libglew-dev libopencv-dev libyaml-cpp-dev
# Ceres dep.
sudo apt-get install libblas-dev liblapack-dev libsuitesparse-dev

Clone and compile

Create a workspace and clone the code (ROS-DISTRO=melodic/noetic):

意思是将下面出现的<ROS-DISTRO>替换成你ROS的名称(18为"melodic",20为"noetic")

  • 创建工作空间

mkdir svo_ws && cd svo_ws
  • catkin相关配置

# see below for the reason for specifying the eigen path
catkin config --init --mkdirs --extend /opt/ros/<ROS-DISTRO> --cmake-args -DCMAKE_BUILD_TYPE=Release -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3
  • 下载原码

cd src
​
git clone git@github.com:uzh-rpg/rpg_svo_pro_open.git
vcs-import < ./rpg_svo_pro_open/dependencies.yaml
​
#这样可以不编译,如果要打开全局重定位功能需要删除,后面有交代,先这么写
touch minkindr/minkindr_python/CATKIN_IGNORE

注意:git clone git@github.com:uzh-rpg/rpg_svo_pro_open.git...会失败,原因是使用git@...方式克隆需要私钥,人生苦短,不用配置,用https://github.com/uzh-rpg/rpg_svo_pro_open.git 代替。同理后面的...vcs-import < ./rpg_svo_pro_open/dependencies.yaml意思是clone dependencies.yaml里面罗列的地址的一系列库,但是打开会发现也是用git@写的,将地址按如下方式替换:

repositories:catkin_simple:type: git#url: git@github.com:catkin/catkin_simple.git~~url: https://github.com/catkin/catkin_simple.gitversion: mastercmake_external_project_catkin:type: git#url: git@github.com:zurich-eye/cmake_external_project_catkin.git~~url: https://github.com/zurich-eye/cmake_external_project_catkin.gitversion: master
......

将这个文件复制出来(置于src/中),删除其他文件,重新执行命令。终端需要挂梯子!!!

如果实在不行,可以到我的gitee上下载(见开头),里面包含了所有库(包括后面要用的gtsam)

git clone https://github.com/uzh-rpg/rpg_svo_pro_open.git
vcs-import < dependencies.yaml
  • 继续安装

# vocabulary for place recognition 这句不需要代理,新开终端,下完关掉
cd rpg_svo_pro_open/svo_online_loopclosing/vocabularies && ./download_voc.sh
cd ../../..

在开始编译之前,可以发现src/dbow2_catkin/CmakeList.txt中这样写道(同样的需要修改git地址):

ExternalProject_Add(dbow2_src#GIT_REPOSITORY git@github.com:dorian3d/DBoW2.gitGIT_REPOSITORY https://github.com/dorian3d/DBoW2.gitCMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CATKIN_DEVEL_PREFIX}BUILD_COMMAND CXXFLAGS=-i${CATKIN_DEVEL_PREFIX}/include makeINSTALL_COMMAND make install
)

至此安装工作完成


编译

这里有两种编译方式,建议按照顺序都尝试一下,这样一旦出问题,更好解决。

1. 直接编译 Build without the global map (front-end + sliding window back-end + loop closure/pose graph)

catkin build -j6

Errors

  1. 缺少两个库

缺少库:

cd src/git clone https://github.com/ethz-asl/catkin_boost_python_buildtool.gitgit clone https://github.com/ethz-asl/numpy_eigen.git
  1. Opencv3

该开源项目是基于Opencv3写的,本人电脑里装了4(ros自带3),故在src/rpg_svo_open/svo_ros/CmakeList.txt中,修改如下内容:

find_package(catkin_simple REQUIRED)
find_package(rostest REQUIRED)
catkin_simple()
#find_package(OpenCV REQUIRED)  #会默认找到Opencv4
find_package(OpenCV 3 REQUIRED) #指定OpenCv3

至此编译通过:

小编这里共38个包。


2.第二种编译方式Build with the global map using iSAM2 (all functionalities)

  • 首先把上面提到的阻止svo_global_map编译的CATKIN_IGNORE删除

rm rpg_svo_pro_open/svo_global_map/CATKIN_IGNORE

并且在svo_cmake/cmake/Modules/SvoSetup.cmake中:

SET(USE_GLOBAL_MAP TRUE)
  • 克隆GTSAM (与其他pkg在同一目录内)

git clone --branch 4.0.3 https://github.com/borglab/gtsam.git
  • 修改cmakelist

# 1. gtsam/CMakelists.txt: use system Eigen
-option(GTSAM_USE_SYSTEM_EIGEN "Find and use system-installed Eigen. If 'off', use the one bundled with GTSAM" OFF)
+option(GTSAM_USE_SYSTEM_EIGEN "Find and use system-installed Eigen. If 'off', use the one bundled with GTSAM" ON)
# 2. gtsam/cmake/GtsamBuildTypes: disable avx instruction set
# below the line `list_append_cache(GTSAM_COMPILE_OPTIONS_PUBLIC "-march=native")`
list_append_cache(GTSAM_COMPILE_OPTIONS_PUBLIC "-mno-avx")

注意两处更改是不同的文件(见注释)。

ERROR

  1. gtsam 与boost

这种boost报错的问题一般大家是不会有的,因为我之前装了很多boost版本才会导致这样的问题。将boost全部删除干净,使用ros-melodic中自带的boost(version 1.65)即可。但是某些小伙伴可能会出现找不到boost的情况。首先检查是否安装。

sudo apt-get install libboost-all-dev

如果问题还不能够解决,那就是gtsam在找boost的时候路径出了问题。它默认到/usr/local/中去找,然而ros中的boost位于/usr中。与gtsam的CmakeList中指定boost路径如下(大约在165行):

# Store these in variables so they are automatically replicated in GTSAMConfig.cmake and such.
set(BOOST_FIND_MINIMUM_VERSION 1.43)
set(BOOST_FIND_MINIMUM_COMPONENTS serialization system filesystem thread program_options date_time timer chrono regex)
set(BOOST_ROOT "/usr/include") #加上这行
set(BOOST_LIBRARYDIR "/usr/include/lib") #和这行
#add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)#myk

终于编译通过!

如果觉得文章内容有帮助的话,点赞关注评论转发吧。 (请喝奶茶也是可以的)

SVO2.0 安装编译相关推荐

  1. 【SVO2.0 安装编译】Ubuntu 20.04 + Noetic

    ways one 链接: https://pan.baidu.com/s/1ZAkeD64wjFsDHfpCm1CB1w 提取码: kxx2 (downloads and use idirectly) ...

  2. linux mysql 5.6.22_LinuxCentOS6.0下编译安装MySQL5.6.22

    Linux CentOS6.5下编译安装MySQL 5.6.22[给力详细教程] 一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库(安装过程注意有没出错) yum install gcc ...

  3. redis3.0.2 编译安装 (启动服务方式启动)

    1.基础环境介绍: 操作系统:Centos 6.7 redis版本:3.0.2 2.开始安装: 1)基础安装 参考链接:http://309173854.blog.51cto.com/7370240/ ...

  4. CentOS7.0下编译安装Nginx 1.10.0

    2019独角兽企业重金招聘Python工程师标准>>> 准备工作 安装编译工具.依赖包 $ yum -y install gcc gcc-c++ autoconf automake ...

  5. mysql5.6.22编译安装教程_Linux CentOS6.0下编译安装MySQL 5.6.22

    Linux CentOS6.5下编译安装MySQL 5.6.22[给力详细教程] 一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库(安装过程注意有没出错) yum install gcc ...

  6. Ubuntu20.10系统FreeCAD 0.19编译安装

    Ubuntu20.10系统FreeCAD 0.19编译安装 济南友泉软件有限公司 零.系统环境 root@test-HVM-domU:~# lsb_release -a No LSB modules ...

  7. Qt——用在ARM板上的Mplayer(1.3.0,1.0rc4)安装编译步骤!还有,Mplayer背景抖动闪烁问题解答,终于来了!

    注意:若转载,请贴上链接"https://blog.csdn.net/qq_41042595/article/details/112308184",如若发现抄袭或未标明来源现象,都 ...

  8. 最新版本Redis:Redis 7.0 安装使用,编译安装Redis,Redis使用场景-2022年最新Redis图解安装

    最新版本Redis:Redis 7.0 安装使用,编译安装Redis,Redis使用场景. 本章主要目标: 1.Redis介绍 2.下载Redis,编译安装Redis 3.启动Redis使用 4.Re ...

  9. Visual C++ 6.0安装后首次编译运行程序报错如何解决

    Visual C++ 6.0安装后首次编译运行程序报错,出现下图情况: 出现这样的情况是因为头文件的路径与实际路径不符. 解决方案: 点击"Tools"--"Option ...

  10. 分支1-CentOS6.5下 正/反向域名解析之yum安装/编译安装 的教程

    本人对DNS的理解: -->正向解析与反向解析: 1)正向解析: 正向解析是指域名到IP地址的解析过程. 2)反向解析: 反向解析是从IP地址到域名的解析过程;反向解析的作用为服务器的身份验证. ...

最新文章

  1. C++ 创建引用DLL
  2. 【算法漫画】什么是红黑树?(下篇)
  3. Java中Comparable与Comparator的区别
  4. pip不是内部或外部命令,也不是可运行的程序 或批处理文件--解决办法
  5. 洛谷P3588 [POI2015]PUS(线段树优化建图)
  6. 剑指offer——跳台阶变态跳台阶矩形覆盖
  7. c语言字符串转换xml文件名,如何用C语言生成简单格式的xml
  8. dynamic programming动态规划初步理解【-1】
  9. VIM python 自动补全插件:pydiction
  10. 一维非齐次热传导方程的紧致差分格式(附Matlab代码)
  11. el-table中的表格的相同项合并(单元格合并),包含多层合并
  12. 号外: 我开通了英语专栏
  13. 区块链重塑经济与世界
  14. 深度探索Hyperledger技术与应用之超级账本的典型交易流程
  15. java发送outlook_在Outlook 2007中发送民意调查
  16. 17.[USACO10FEB]Covering the Corral G
  17. 数据库----数据查询
  18. 一键ghost(1key ghost)更改备份路径的方法
  19. ./configure用法
  20. 读书笔记—《销售铁军》随记5

热门文章

  1. 图片转化成矩阵,灰度处理,黑白对调--ByMatlab
  2. fullcalendar实现日程增、删、改、查
  3. 一元非线性方程求根的算法——二分法/牛顿迭代法
  4. 移动硬盘显示拒绝访问文件怎样找到
  5. 按下删除键出现 ^H 乱码现象总结
  6. Elasticsearch安装拼音分词器插件
  7. SAP成都研究院非典型程序猿,菜园子小哥:当我用UI5诊断工具时我用些什么
  8. LDR6028充电OTG直播线直播声卡音频转接器最具性价比方案
  9. 《老路用得上的商学课》96-100学习笔记
  10. 如何理解掩码、反掩码、通配符