SVO2.0 安装编译

2023-05-16

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.git
    version: master
  cmake_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.git
    version: 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.git
	GIT_REPOSITORY https://github.com/dorian3d/DBoW2.git
  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CATKIN_DEVEL_PREFIX}
  BUILD_COMMAND CXXFLAGS=-i${CATKIN_DEVEL_PREFIX}/include make
  INSTALL_COMMAND make install
)

至此安装工作完成


编译

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

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

catkin build -j6

Errors

  1. 缺少两个库

Image text

 

 

缺少库:


cd src/

git clone https://github.com/ethz-asl/catkin_boost_python_buildtool.git

git 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

终于编译通过!

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

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SVO2.0 安装编译 的相关文章

  • buffer是什么?深入了解Nodejs中的buffer模块

    buffer是什么 xff1f 下面本篇文章带大家深入了解一下Nodejs中的buffer模块 xff0c 介绍一下创建 复制 拼接 截取 填充Buffer xff0c 以及Buffer与String相互转换的方法 xff0c 希望对大家有
  • Angular进阶学习之深入了解路由和表单

    本篇文章是Angular的进阶学习 xff0c 我们一起来详细了解一下Angular中的路由和表单 xff0c 希望对大家有所帮助 xff01 Angular的路由介绍 在单页面应用中 xff0c 需要在定义好的不同视图中 xff08 组件
  • 浅析Vue前端路由中 hash 与 history的区别

    Vue前端路由hash与history间有什么区别 xff1f 下面本篇文章就来了解一下前端路由 hash 与 history 的差异 xff0c 希望对大家有所帮助 xff01 没了解这两种路由前 xff0c 不管是 vue还是 reac
  • 一文聊聊Angular中怎么操作DOM元素

    Angular中怎么操作DOM元素 xff1f 下面本篇文章给大家介绍一下angular操作DOM元素的方法 xff0c 希望对大家有所帮助 xff01 在angular获取DOM元素可以使用javascript的原生API xff0c 或
  • 浅析vscode中vue文件保存时怎么自动格式化

    vscode中vue文件保存时怎么自动格式化 xff1f 下面本篇文章给大家介绍一下vscode保存按照eslint规则自动格式化的方法 xff0c 希望对大家有所帮助 xff01 最近写vue用了vue admin template xf
  • 软件测试 | 测试开发 | Python 自动化测试技术面试真题

    本文为面试某公司测试开发 xff0f 自动化测试工程师时的面试题笔记 全部笔试内容没有全部写全 xff0c 只贴通用性的技术相关的笔试面试题 xff0c 至于测试理论和团队管理的问题 xff0c 都是大同小异 xff0c 也没什么实际的参考
  • VSCode中怎么配置扩展进行Arduino开发

    VSCode中怎么配置扩展进行Arduino开发 xff1f 下面本篇文章给大家介绍一下告别简陋的arduinoIDE xff0c 使用VSCode开发Arduino的方法 xff0c 希望对大家有所帮助 xff01 Arduino官方的I
  • 分享两个VSCode终端中的实用小技巧

    本篇文章给大家分享两个VSCode终端中的实用小技巧 xff0c 希望对大家有所帮助 xff01 使用VS Code终端也很有段时间了 xff0c 今天好奇发现两个小技巧 xff0c 记录一下现在激动的心情 那么这些技巧解决了什么问题呢 x
  • 聊聊Node中的各种I/O模型

    本篇文章带大家聊聊Node中的各种I O模型 xff0c 介绍一下阻塞式I O模型 非阻塞式I O模型和非阻塞异步I O xff0c 希望对大家有所帮助 xff01 我们以网络请求IO为例 xff0c 首先介绍服务端处理一次完整的网络IO请
  • Node.js深入学习之浅析require函数中怎么添加钩子

    如何为 Node 的 require 函数添加钩子 xff1f 下面本篇文章就来带大家了解一下require函数中添加钩子的方法 xff0c 希望对大家有所帮助 xff01 Node js 是一个基于 Chrome V8 引擎的 JavaS
  • 详解Vue3 Suspense:是什么?能干什么?如何用?

    本篇文章带大家深入了解一下Vue3 Suspense xff0c 聊聊Suspense是什么 能干什么 xff0c 以及如何使用它 xff0c 希望对大家有所帮助 xff01 Suspense 不是你想的那样 是的 xff0c 它帮助我们处
  • 2022年vue高频面试题分享(附答案分析)

    本篇文章给大家总结一些值得收藏的2022年精选vue高频面试题 xff08 附答案 xff09 有一定的参考价值 xff0c 有需要的朋友可以参考一下 xff0c 希望对大家有所帮助 Vue router 导航守卫有哪些 全局前置 钩子 x
  • 19个实用vscode开发插件分享

    工欲善其事必先利其器 本篇文章给大家总结分享19个我在开发中使用到的vscode插件 xff0c 希望对大家有所帮助 xff01 1 xff1a Chinese Simplified Language Pack 中文语言插件 适用于 VS
  • 带你使用CSS+jQuery实现一个文字转语音机器人

    本篇文章手把手带大家使用CSS 43 jQuery实现一个文字转语音机器人 xff0c 希望对大家有所帮助 xff01 素材 机器人眼睛 推荐学习 xff1a css视频教程 jQuery视频教程 web前端视频 页面布局 机器人样式参考了
  • 如何上手Angular,先从 8 个开源项目开始!

    多年的学习经验告诉我 xff0c 了解一个概念最快的方式是看他的实践 xff0c 所以我整理出了 8 个在学习 Angular 过程中可以参考的开源项目 xff0c 学习如何怎么使用 Angular 框架 xff5e 相关教程推荐 xff1
  • 如何安装并管理多版本node?方法介绍

    如何安装并管理多版本node xff1f 下面本篇文章给大家介绍一下多版本node的安装与切换详细操作 xff0c 希望对大家有所帮助 xff01 安装多版本node的原因 xff1a 在项目开发过程中 xff0c 不同项目使用的nodej
  • 软件测试 | 普罗米修斯-基本使用

    快速了解普罗米修斯 普罗米修斯是用 go 语言编写的软件并且利用了 go 语言的交叉编译特性编译成了纯二进制文件 xff0c 运行的时候不需要额外安装依赖 直接从官网上下载就可以 下载地址 xff1a Download Prometheus
  • 聊聊Node两种模块规范:CJS 与 ESM,有什么不同点?

    本篇文章给大家带大家了解一下Node的两种模块规范 xff08 难以相容的 CJS 与 ESM xff09 xff0c 介绍一下CJS 和 ESM 的不同点 xff0c 怎么实现 CJS ESM 混写 xff0c 希望对大家有所帮助 xff
  • 手把手教你怎么在vscode中创建maven工程(图文结合)

    怎么在vscode中创建maven工程 xff1f 下面本篇文章就通过图文结合的方式带大家一步步创建maven工程 xff0c 希望对大家有所帮助 xff01 由于 xff0c 鄙人最近正在学习设计模式 xff0c 并且是阅读 重学设计模式
  • VSCode插件分享:一个实时预览Vue/React组件的插件

    在VSCode中开发Vue React组件时 xff0c 怎么实时预览组件 xff1f 本篇文章就给大家分享一个VSCode 中实时预览Vue React组件的插件 xff0c 希望对大家有所帮助 xff01 最近年纪大了喜欢胡思乱想 xf

随机推荐

  • 什么是Mixin?带你了解Vue中的Mixin混入

    什么是Mixin xff1f 本篇文章带大家了解一下Vue中的Mixin混入 xff0c 介绍Mixin和Vuex的区别 xff0c Mixin的使用方法 xff0c 希望对大家有所帮助 xff01 Vue框架现在基本上已经占据了前端的半壁
  • vue中什么是自定义指令?怎么使用?

    本篇文章带大家了解一下vue中的自定义指令 xff0c 介绍一下如何注册自定义指令 自定义指令参数 自定义指令使用场景 xff0c 希望对大家有所帮助 xff01 如今Vue占据了国内前端市场的大壁江山 xff0c 在前端求职过程中 xff
  • Vue.js中如何优化性能?9个小技巧分享

    Vue js中如何优化性能 xff1f 下面本篇文章给大家分享Vue js 性能优化的九个小技巧 xff0c 希望对大家有所帮助 xff01 xff08 学习视频分享 xff1a vuejs教程 xff09 01 Functional co
  • 总结分享一些基于Node.js的前端面试题(附解析)

    本篇文章给大家总结分享一些基于Node js的前端面试题 xff08 附解析 xff09 xff0c 希望对大家有所帮助 xff01 一 Node基础概念 1 1 Node是什么 Node js 是一个开源与跨平台的 JavaScript
  • 【整理总结】VSCode常用插件和好用配置(小白必看)

    本篇文章给大家总结分享一些VSCode常用插件和好用配置 xff08 超详细 xff09 希望可以给刚入坑前端的小伙伴一些帮助 本文很长 xff0c 如果能认真看完 xff0c 你一定会有所收获 一 VSCode常用插件推荐 工欲善其事 x
  • 2023年最新最全的VScode插件推荐

    这篇文章主要介绍了这么多年来我在使用 VSCode 过程中用到的一些不错的插件 这些VSCode插件 xff0c 帮你打造地表最强IDE xff01 一 主题及图标 GitHub Theme 黑白两款皮肤 Material Theme 集成
  • 聊聊VSCode中Snippet插件的使用(提高编程效率)

    本文介绍的是 VSCode Snippet 插件 xff0c 一种代码片段配置插件 xff0c 可以节省你写样板代码的时间 你可能之前学习过 VSCode Snippet 插件 xff0c 知道它的作用也学习了配置的语法 xff0c 但是你
  • 软件测试 | 普罗米修斯- 初识PromQL

    理解监控数据 之前讲过普罗米修斯自己就是一个时序数据库 xff0c 它从 exporter 拉取的数据都会按时间戳保存到对应的文件里 xff0c 这个时序数据库默认会保存 14 天的数据 而它自己也开发了一套名为 PromQL 的类 SQL
  • 【整理分享】30个让开发效率倍增的实用VSCode 插件

    本篇文章给大家总结分享30个让开发效率倍增的实用VSCode 插件 xff0c 让你的日常开发工作效率倍增 xff0c 希望对大家有所帮助 xff01 1 Image preview 通过此插件 xff0c 当鼠标悬浮在图片的链接上时 xf
  • 10个提高开发效率的Vue3常用插件(快来收藏)

    本篇文章给大家总结分享几个好用的 Vue 插件 xff0c 可以帮助开发者提高开发效率 解决移动端各种滚动场景需求 xff0c 希望对大家有所帮助 xff01 1 vue multiselect next Vue js 的通用选择 多选 标
  • 手把手带你使用Vue实现一个图片水平瀑布流插件

    如何使用Vue实现一个图片水平瀑布流插件 xff1f 这里给大家分享我在网上总结出来的一些知识 xff0c 希望对大家有所帮助 一 需求来源 今天碰到了一个需求 xff0c 需要在页面里 xff0c 用水平瀑布流的方式 xff0c 将一些图
  • vscode插件分享: 6个Vue3开发必备插件

    本篇文章给大家整理分享 6 个 Vue3 开发必备的 VSCode 插件 xff0c 可以直接用过 VSCode 的插件中心直接安装使用 xff0c 希望对大家有所帮助 xff01 1 Volar 下载数 153 万 43 相信使用 VSC
  • 11个裸VSCode必备插件,助你打造一个前端开发IDE

    VSCode 轻量 开源 xff0c 新鲜下载的 VSCode 可谓是身无长物 一穷二白 xff0c 连个项目管理的功能都没有 身轻如燕的 VSCode 对于后端开发说可能有点幼稚 xff0c 但对于前端来说刚刚好 xff0c 毕竟不需要搞
  • Ubuntu unzip 安装

    ubuntu unzip 安装以及命令参数说明 安装命令 xff1a sudo apt get install unzip 解压 zip文件命令 xff1a unzip unzip命令能够将被winzip压缩的文件解压 unzip命令的执行
  • 新建git仓库管理项目并更新代码提交git

    新建git仓库 第一步 xff1a 登录上自己的git后台 xff0c 在我的工作台的左下角 xff0c 点击仓库旁边的 43 号 xff0c 创建一个新的仓库 xff1a 第二步 xff1a 在新建仓库界面完善仓库的信息 xff0c 这里
  • CMake是什么?有什么用

    CMake CMake是一个跨平台的编译 Build 工具 可以用简单的语句来描述所有平台的编译过程 CMake能够输出各种各样的makefile或者project文件 xff0c 能测试编译器所支持的C 43 43 特性 类似UNIX下的
  • PX4系统学习

    PX4系统学习 扑翼飞行器的硬件组成飞控板电调电调的分类 舵机 扑翼飞行器的硬件组成 要了解学会二次开发首先要知道 xff0c 手头的飞行器的硬件结构 以及各个部分的结构是有何种作用的 xff0c 这样才能在根本上了解编程逻辑 xff0c
  • rostopic echo --noarr查看激光雷达数据详细信息(如frame_id)

    用rostopic echo 激光雷达话题名查看激光雷达返回的数据 xff0c 除了数字什么也显示不出来 想要查看激光雷达数据的frame id等信息 xff0c 加上 noarr参数即可 xff0c 排除话题数据中的数组信息 如图二所示
  • Django基本数据访问

    当需要操作数据时 xff0c 不再需要通过SQL语句 xff0c Django自动为这些模型提供了高级的Python API 接下来联系数据库表的操作 xff0c 运行manage py提供的shell语句 guest gt python3
  • SVO2.0 安装编译

    SVO2 OPEN https github com uzh rpg rpg svo pro open git挂梯子 https blog csdn net qq 33349365 article details 101514412 如果各