ORB_SLAM3 + ROS采坑实录(从零开始的毕设生活第一弹)
ORB-SLAM3配置
https://github.com/UZ-SLAMLab/ORB_SLAM3
https://github.com/shanpenghui/ORB_SLAM3_Fixed
EVO Evaluation of SLAM 4 --- ORB-SLAM3 编译和利用数据集运行_一个摩羯座的程序猿 的 知识笔记-CSDN博客_orb_slam3数据集
1.ROS Melodic安装
采用国内源:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
#Set up your keys 官方Key有问题的时候
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
#sudo rosdep init出错
sudo chmod 777 /etc
mkdir -p /etc/ros/rosdep/sources.list.d
gedit 20-default.list
#############################################
#填入一下内容
# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
#############################################
2.Pangolin安装
https://github.com/stevenlovegrove/Pangolin
#安装依赖项:
sudo apt-get install libglew-dev
sudo apt-get install libpython2.7-dev
sudo apt-get install libxkbcommon-dev
sudo apt-get install wayland-protocols
#先转到一个要存储Pangolin的路径下,例如~/Documents,然后
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make –j8
sudo make install
报错WARNING: Target "pango_python" has EXCLUDE_FROM_ALL set and will not be built by default but an install rule has been provided for it. CMake does not define behavior for this case.
#the error is due to the high c++ standard and you can add
set_property(TARGET ${COMPONENT} PROPERTY CXX_STANDARD 11)
#in the ~/Pangolin/compnents/pango_image/CMakeList.txt under the
get_filename_component(COMPONENT ${CMAKE_CURRENT_LIST_DIR} NAME)
3.安装Eigen3
1.直接安装
sudo apt-get install libeigen3-dev
2.官网(http://eigen.tuxfamily.org/index.php?title=Main_Page)下载最新源码包
mkdir build
cd build
cmake ..
make -j8
sudo make install
Eigen头文件的默认位置在 “usr/include/eigen3”
如果不确定,可以通过以下命令查找
sudo updatedb
locate eigen3
4.安装opencv4.4
OpenCV4.4.0 安装测试 Installation & Examination (Ubuntu18.04, Ubuntu 20.04)
# If you don't have cmake:
# sudo apt-get install cmake
sudo apt-get install libswscale-dev libtiff5-dev libgtk2.0-dev pkg-config
sudo apt install build-essential
sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
# If need to support python3:
# sudo apt install python3-dev python3-numpy
# If need ffmpeg:
sudo apt install ffmpeg
#报错安装
sudo apt-get install gtk+-3.0
#生成 Makefile
cd opencv-4.4.0
weget "https://codeload.github.com/opencv/opencv_contrib/zip/4.4.0"
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=/home/mr-mmm/SLAM/opencv-4.4.0/opencv_contrib-4.4.0/modules/ -D BUILD_opencv_world=YES -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=OFF -D WITH_OPENGL=ON -D WITH_EIGEN=ON -D BUILD_EXAMPLES=ON -D BUILD_DOCS=ON ..
#编译安装
make -j8
sudo make install
#环境配置
sudo gedit /etc/ld.so.conf.d/opencv4.conf
#将以下内容写入文件
# libc default configuration
/usr/local/lib
#更新配置
sudo ldconfig
sudo gedit /etc/bash.bashrc
# Add in the end
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
#更新配置
source /etc/bash.bashrc
sudo updatedb
#测试Opencv安装
pkg-config --modversion opencv4

报错E: Unable to locate package libjasper-dev
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
5.Building ORB-SLAM3 library and examples
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
chmod +x build.sh
./build.sh
6.ROS Examples
gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS
chmod +x build_ros.sh
./build_ros.sh
报错1:fatal error: sophus/se3.hpp: No such file or directory #include <sophus/se3.hpp>
git clone https://github.com/strasdat/Sophus.git
cd Sophus/
mkdir build
cd build
cmake ..
make
sudo make install
报错2:error: conversion from ‘Sophus::SE3f {aka Sophus::SE3}’ to non-scalar type ‘cv::Mat’ requested
error: no matching function for call to ‘std::vectorcv::Mat::push_back(Eigen::Vector3f)’
error: conversion from ‘Eigen::Vector3f {aka Eigen::Matrix<float, 3, 1>}’ to non-scalar type ‘cv::Mat’ requested
https://github.com/UZ-SLAMLab/ORB_SLAM3/issues/442
报错3:error: ‘eigen2cv’ is not a member of ‘cv’
https://github.com/UZ-SLAMLab/ORB_SLAM3/issues/479
注释掉cmakelist中关于AR的部分解决问题
# Node for monocular camera (Augmented Reality Demo)
#rosbuild_add_executable(MonoAR
#src/AR/ros_mono_ar.cc
#src/AR/ViewerAR.h
#src/AR/ViewerAR.cc
#)
#target_link_libraries(MonoAR
#${LIBS}
#)
报错4 rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/ROS/ORB_SLAM3/Asus.yaml
/home/mr-mmm/SLAM/ORB_SLAM3/Examples/ROS/ORB_SLAM3/Mono: error while loading shared libraries: libDBoW2.so: cannot open shared object file: No such file or directory
error while loading shared libraries - ROS Answers: Open Source Q&A Forum
*.so 移动到 /usr/lib/ 解决问题
报错5"Aborted (core dumped)" when running Ros example
run Mono_Inertial Segmentation fault (core dumped)
https://github.com/UZ-SLAMLab/ORB_SLAM3/issues/333
7. ROS运行测试
#setp01
roscore
#step02
rosbag play Datasets/MH_01_easy.bag /cam0/image_raw:=/camera/image_raw /imu0:=/imu
#step03
rosrun ORB_SLAM3 Mono_Inertial Vocabulary/ORBvoc.txt Examples/Monocular-Inertial/EuRoC.yaml


ORB_SLAM3 + ROS采坑实录(从零开始的毕设生活第一弹)的更多相关文章
- Cloudera Manager 5.9 和 CDH 5.9 离线安装指南及个人采坑填坑记
公司的CDH早就装好了,一直想自己装一个玩玩,最近组了台电脑,笔记本就淘汰下来了,加上之前的,一共3台,就在X宝上买了CPU和内存升级了下笔记本,就自己组了个集群. 话说,好想去捡垃圾,捡台8核16线 ...
- 后端路由项目由 gulp 改为 webpack 的踩坑实录
前言 公司有个后端路由的项目是用 gulp 作为前端自动化构建工具,最近学习了一下 webpack,深感其强大,一狠心将其改成了 webpack 构建,以下是踩坑实录. gulp 先来说说原来的架构. ...
- JAVA实用案例之文件导出(JasperReport踩坑实录)
写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六 ...
- angular采坑记录
在angular中会遇到一些莫名的问题,导致不能完成想要的功能,可能是某项用法使用错误,或许是angular相对应不支持,或者是我们功力根本就没有达到.为了在每次采坑之后能有所收获,再遇到时能理解其根 ...
- 分布式改造剧集之Redis缓存采坑记
Redis缓存采坑记 前言 这个其实应该属于分布式改造剧集中的一集(第一集见前面博客:http://www.cnblogs.com/Kidezyq/p/8748961.html),本来按照顺序 ...
- 采坑:python base64
需求: 读取文本内容,对字符串进行base64加密 >>> str = 'aaaaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbb\nccc ...
- Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)
系统:Centos 7,内核版本3.10 本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件. 一.宿主机准备工作 0.宿主机(Centos7 ...
- Spring Cloud Config采坑记
1. Spring Cloud Config采坑记 1.1. 问题 在本地运行没问题,本地客户端服务能连上本地服务端服务,可一旦上线,发现本地连不上线上的服务 服务端添加security登录加密,客户 ...
- rabbitmq在ios中实战采坑
1. rabbitmq在ios中实战采坑 1.1. 问题 ios使用rabbitmq连接,没过多久就断开,并报错.且用android做相同的步骤并不会报错,错误如下 Received connecti ...
随机推荐
- 【LeetCode】20. Valid Parentheses 有效的括号
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:有效,括号,括号匹配,栈,题解,leetcode, 力扣 ...
- 【LeetCode】219. Contains Duplicate II 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 使用set 使用字典 日期 题目地址:https:/ ...
- spoj-SUBSUMS - Subset Sums
SUBSUMS - Subset Sums Given a sequence of N (1 ≤ N ≤ 34) numbers S1, ..., SN (-20,000,000 ≤ Si ≤ 20, ...
- A. Toda 2
A. Toda 2 time limit per test 2 seconds memory limit per test 512 megabytes input standard input out ...
- Amazing!!CSS 也能实现烟雾效果?
最近利用 CSS 实现了一些看似超出 CSS 能力的效果: 巧用渐变实现高级感拉满的背景光动画 Amazing!!CSS 也能实现极光? 本文继续此系列,本文主要想探讨一下,使用 CSS 能否比较好的 ...
- [opencv]建立纯色图
1.建立纯白图片,指定大小 250*250为图片的宽高,可自己设置. Mat white = cv::Mat(250,250,CV_8UC3,Scalar(255,255,255)); 2.建立纯黑图 ...
- 编写Java程序_找星座朋友应用软件
一.About the Project 项目介绍 自古以来,人对于恒星的排列和形状很感兴趣,并很自然地把一些位置相近的星联系起来,组成星座.占星术亦称"占星学"."星占学 ...
- SpringBoot集成Actuator监控管理
1.说明 本文详细介绍Spring Boot集成Actuator监控管理的方法, 基于已经创建好的Spring Boot工程, 然后引入Actuator依赖, 介绍监控管理相关功能的使用. Sprin ...
- Ubuntu18.04安装/卸载NVIDIA显卡驱动
1 显卡驱动下载 官网:NVIDIA 搜索适合本机的驱动 获取最新版本驱动 立即下载 文件 以上,显卡驱动下载完成. 2 显卡驱动安装 2.1 添加可执行权限 进入驱动文件目录sudo chmod a ...
- Selenium_模拟键盘和鼠标操作(9)
模拟键盘键盘和鼠标操作主要使用到selenium的keys包,源码如下 class Keys(object): """ Set of special keys codes ...