ubuntu1804搭建svo2.0环境并跑euroc数据集

这篇具有很好参考价值的文章主要介绍了ubuntu1804搭建svo2.0环境并跑euroc数据集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0说明

整个SVO2.0环境搭建过程按照官网的说明进行(链接:https://github.com/uzh-rpg/rpg_svo_pro_open)

开发环境是ubuntu18.04+ROS-Melodic

1工具安装

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

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

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

2源码下载

mkdir svo_ws && cd svo_ws
# see below for the reason for specifying the eigen path
catkin config --init --mkdirs --extend /opt/ros/melodic --cmake-args -DCMAKE_BUILD_TYPE=Release -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3
cd src
# 下载源码
git clone https://github.com/uzh-rpg/rpg_svo_pro_open.git
# 下载源码所需要的其他功能包,下面的命令会下载失败,打开dependencies.yaml文件,
# 根据每个包中的地址,使用git clone分开进行下载
# vcs-import < ./rpg_svo_pro_open/dependencies.yaml

# 这里以第一个为例,其余均按照这种形式进行下载,如果下载失败可能是网络超时,多试几次
git clone https://github.com/catkin/catkin_simple.git

touch minkindr/minkindr_python/CATKIN_IGNORE
# 下载词袋用于位置识别
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
)
  • 将svo_ros、rpg_common、svo_direct、svo_online_loopclosing的CmakeList.txt中OPENCV的版本指定为3.x
    find_package(OpenCV 3 REQUIRED)

3编译和运行

3.1without global map方式(包括前端+滑窗后端+回环)

在src目录下

catkin build -j40

1.编译svo_direct报错,因为在本地安装了单独的yaml-cpp功能包,与ros自带的功能包出现了冲突

libvikit_cameras.so: undefined reference to `YAML::detail::node_data::empty_scalar[abi:cxx11]()'

解决,在rpg_svo_pro_open/vikit/vikit_cameras中的cmakelists.txt中加入以下内容

link_directories(/usr/local/lib)
include_directories(/usr/local/include/yaml-cpp)

2.编译svo_ceres_backend功能包报错,疑似eigen版本不对,需要3.3.7版本,当前为3.3.4

Errors     << svo_ceres_backend:make /home/lusx/Demos/svo_ws/logs/svo_ceres_backend/build.make 000.log
In file included from /usr/local/include/eigen3/Eigen/Core:22:0,
                 from /home/lusx/Demos/svo_ws/src/rpg_svo_pro_open/svo/include/svo/global.h:18,
                 from /home/lusx/Demos/svo_ws/src/rpg_svo_pro_open/svo/include/svo/abstract_bundle_adjustment.h:12,
                 from /home/lusx/Demos/svo_ws/src/rpg_svo_pro_open/svo_ceres_backend/include/svo/ceres_backend_interface.hpp:7,
                 from /home/lusx/Demos/svo_ws/src/rpg_svo_pro_open/svo_ceres_backend/src/ceres_backend_interface.cpp:1:
/usr/local/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h:39:38: error: attribute ignored in declaration of ‘struct pcl::_PointXYZHSV’ [-Werror=attributes]
   #define EIGEN_ALIGN_TO_BOUNDARY(n) alignas(n)

更换eigen版本方法:https://blog.csdn.net/reasonyuanrobot/article/details/114372363

更新完eigen版本后需要将/usr/local/include/Eigen 整个文件夹替换到/usr/local/include/eigen3中,然后将/usr/local/include/eigen3整个文件夹复制到/usr/include目录下

sudo cp -r /usr/local/include/Eigen /usr/local/include/eigen3
sudo cp -r /usr/local/include/eigen3 /usr/include

3.出现报错,svo_ros编译失败:

private/svo/lib/libsvo.so: undefined reference to `YAML::ostream_wrapper::write(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'

在svo的CmakeLists.txt中加入以下内容:

link_directories(/usr/local/lib)
include_directories(/usr/local/include/yaml-cpp)

并在下面对应的地方链接上yaml-cpp的动态库

target_link_libraries(svo ${LINK_LIBS} ${EIGEN3_LIBS} yaml-cpp)

其中有部分功能包需要实时下载,可能会下载失败,直接catkin build多试几次即可。

运行:
在rpg_svo_pro_open/doc目录下有运行的说明文档,以VIO为例

roslaunch svo_ros euroc_vio_stereo.launch
rosbag play V2_03_difficult.bag

ubuntu1804搭建svo2.0环境并跑euroc数据集

3.2第二种编译方式Build with the global map using iSAM2

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

cd 
rm rpg_svo_pro_open/svo_global_map/CATKIN_IGNORE

2.并且在svo_cmake/cmake/Modules/SvoSetup.cmake中进行以下修改:

SET(USE_GLOBAL_MAP TRUE)

3.在src目录下载GTSAM

git clone --branch 4.0.3 https://github.com/borglab/gtsam.git

并且修改一些GTSAM的编译配置

# 1. gtsam/CMakelists.txt: use system Eigen
# 将对应位置的OFF修改为OFF
-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")

执行编译

catkin build -j40

4.运行:参考rpg_svo_pro_open/doc/global_map.md
Source the workspace first:

source ~/svo_ws/devel/setup.bash

Executing

roslaunch svo_ros euroc_global_map_mono.launch
rosbag play MH_03_medium.bag -s 15

放一张运行界面图
ubuntu1804搭建svo2.0环境并跑euroc数据集文章来源地址https://www.toymoban.com/news/detail-501731.html

到了这里,关于ubuntu1804搭建svo2.0环境并跑euroc数据集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu1804下如何切换python版本

    1 如何查看当前python版本 2 如何配置默认python版本   2.1 配置python2为默认版本   2.2 配置python3为默认版本 3 小结     可以用过以下命令,查看当前python默认版本: 2.1 配置python2为默认版本     可以用过以下命令进行设置:     也可以用过以下命令在弹出的命令行选择界

    2024年01月18日
    浏览(46)
  • 虚拟机中Ubuntu1804 Server 配置静态IP

    经常用xshell连接虚拟机Ubuntu的伙伴们会发现,当虚拟机关闭重新打开时,xshell却连不上Ubuntu了。。。 经过一番彻查原因后发现,原来是虚拟机为系统重新分配了新的P地址! 这让经常使用的伙伴们真是苦不堪言! 今天小叮当就为大家分享下如何为虚拟机下的Ubunu 1804 Server配置

    2024年02月09日
    浏览(88)
  • 虚拟机(Ubuntu1804)相机与激光雷达联合标定实现过程记录

    在智能小车录制的点云数据在rviz打开一定要修改Fixed Frame为laser_link,这样才能看到点云,注意此时用的是雷神激光雷达,话题名是lslidar_,可采用rostopic list查看具体名称 1、新建一个终端打开roscore 2、在文件夹libratia中新建一个终端 【注意】这里的--pause可以暂停,当后面需要

    2024年02月16日
    浏览(39)
  • WSL2-ubuntu1804安装以及一些个人使用调整

    之前一直是在用vmware来跑linux,但是最近在接触一下机器学习的相关内容,想用显卡进行训练,又不太想装双系统。*【主要是硬盘实在分不出地方来了,划分区比较困难,有条件建议还是双系统】*正好最近有朋友跟我提起了wsl这个东西,说是微软已经弄的比较好了,可以在上

    2024年02月05日
    浏览(75)
  • 【VxWorks】VxWorks系统详细介绍说明,环境搭建说明,使用场景,使用实例

    目录 1.VxWorks 概述 2.详细介绍 2.环境搭建说明 3.使用场景 4.使用实例         VxWorks 是一款实时操作系统(RTOS),广

    2024年02月15日
    浏览(28)
  • 轻松搭建FPGA开发环境:第三课——Vivado 库编译与设置说明

    工欲善其事必先利其器,很多人想从事 FPGA 的开发,但是不知道如何下手。既要装这个软件,又要装那个软件,还要编译仿真库,网上的教程一大堆,不知道到底应该听谁的。所以很多人还没开始就被繁琐的开发环境搭建吓退了,还没开始就放弃了! 笔者用几节课的时间,从

    2024年02月04日
    浏览(32)
  • FISCO BCOS v3.x 多群组区块链Pro版本搭建说明(ubuntu)

        mkdir fiscoMax sudo apt-get update   sudo apt-get install -y curl docker.io docker-compose python3 wget   curl -#LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/FISCO-BCOS/FISCO-BCOS/releases/v3.0.1/BcosBuilder.tgz  tar -xvf BcosBuilder.tgz   说明下载成功   cd  BcosBuilder  pip3 install -r requirements.txt     1、在 BcosBuil

    2024年02月01日
    浏览(28)
  • Ubuntu64位系统(20.04、22.04)安装32位armQT4开发环境补充说明

    在一些特定场景下我们可能需要在更高版本ubuntu上(比如Ubuntu20.04、Ubuntu22.04)安装 Qt 4,维护和开发32位armQT4应用程序。 对于高版本ubuntu, 官方对Qt 4 已经不再提供维护,因此需要解决许多兼容性问题。我们前面博文《Ubuntu64位系统(v18.04)下arm32位版本(Qt4.8.6和tslib1.4)开发环境搭建

    2024年02月14日
    浏览(60)
  • ubuntu搭建深度学习环境

    方法一: 依次输入如下命令 可以在应用找到vscode即为成功 可以在git --version打印出版本即为成功 在这里找CUDA Toolkit Archive | NVIDIA Developer (nvcc -V的话是查询系统安装的cuda版本,而nvidia-smi是查看GPU使用情况的(也可以用来检查驱动是否安装成功)。nvidia-smi之所以会出现cuda ve

    2023年04月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包