Ubuntu18.04配置ORB_SLAM3(ROS)

2023-05-16

一、安装ROS

建议按照官网操作

cn/melodic/Installation/Ubuntu - ROS Wikihttp://wiki.ros.org/cn/melodic/Installation/Ubuntu

二、安装eigen3.3.7

Releases · libeigen / eigen · GitLabEigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.https://gitlab.com/libeigen/eigen/-/releases

找到3.3.7下载源码压缩包,然后解压,进入eigen文件夹

mkdir build && cd build
cmake ..
make 
sudo make install
sudo cp -r /usr/local/include/eigen3/Eigen/ /usr/local/include/

三、安装pangolin-0.5

主要参考ubuntu18.04下 安装SLAM-Pangolin(亲测有效)_清虞的博客-CSDN博客_ubuntu安装pangolin首先安装Pangolin所需依赖sudo apt install libgl1-mesa-devsudo apt install libglew-devsudo apt install cmakesudo apt install libpython2.7-devsudo apt install python-pipsudo python -mpip install numpy pyopengl Pillow pybind11sudo apt install pkg-configsudohttps://blog.csdn.net/qq_43647590/article/details/120226747?ops_request_misc=&request_id=&biz_id=102&utm_term=SLAM-Pangolin&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-120226747.142%5Ev30%5Econtrol,185%5Ev2%5Econtrol&spm=1018.2226.3001.4187

GitHub - stevenlovegrove/Pangolin: Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input. - GitHub - stevenlovegrove/Pangolin: Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input.https://github.com/stevenlovegrove/Pangolin

sudo apt install libgl1-mesa-dev
sudo apt install libglew-dev
sudo apt install cmake
sudo apt install libpython2.7-dev
sudo apt install python-pip
sudo python -mpip install numpy pyopengl Pillow pybind11
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
sudo apt install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev
sudo apt install libdc1394-22-dev libraw1394-dev
sudo apt install libjpeg-dev libpng-dev libtiff5-dev libopenexr-dev

 然后编译

mkdir build && cd build
cmake ..
make 
sudo make install
#然后验证
cd ~/Pangolin/build/examples/HelloPangolin
./HelloPangolin

四、安装opencv3.4.5+contrib3.4.5

主要参考

ubuntu 18.04 配置opencv3.4.5+contrib_钦替的博客-CSDN博客一 文件准备去opencv官网下载opencv-3.4.5,你也可以选择其他版本,但是opencv的版本必须和opencv_contrib版本一致,官网地址:opencv官网,选择对应版本的Sources文件如下图所示,接下来下载opencv_contrib-3.4.5,链接:opencv_contrib-3.4.5具体文件如下图,其中zip格式或tar.gz格式选择一个下载即可。二 命...https://blog.csdn.net/weixin_45117253/article/details/103861245

Releases - OpenCVhttps://opencv.org/releases/

https://github.com/opencv/opencv_contrib/tagshttps://github.com/opencv/opencv_contrib/tags

分别找到3.4.5下载source压缩包,安装依赖

sudo apt-get install build-essential  

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev  python-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev

sudo apt-get install qt5-default ccache libv4l-dev libavresample-dev  libgphoto2-dev libopenblas-base libopenblas-dev doxygen  openjdk-8-jdk pylint libvtk6-dev

sudo apt-get install pkg-config

sudo apt-get install libtiff5-dev libswscale-dev
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev 

sudo apt install cmake-qt-gui 

解压缩opencv,然后把解压缩的contrib文件夹重命名为opencv_contrib复制到opencv文件夹中

我们这里采用cmake-gui的方式

cd opencv-3.4.5
mkdir build && cd build
cmake-gui

一开始打开是空白的,我们填入源码地址,以及build地址,然后点击configure

3bfe434bb4d840d3b3d80c850fe227fa.png

 需要注意几个地方

494ebfd2a5044c23b8b6911e5f047730.png

 7f6608194d9e4918a94e324521ee2fc0.png

 

然后点击Generate,这一步相当于cmake,下面这个也可以。

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv-3.4.5/opencv_contrib-3.4.5/modules/ -DOPENCV_ENABLE_NONFREE=True ..

 中间会因为网络原因而无法下载,解决方案有很多,就不阐述了,直接上链接

一次性解决opencv源码安装文件下载问题:ippicv_2017u3_lnx, face_landmark_model.dat, tiny-dnn_虎啊虎啊里的博客-CSDN博客

cd build
sudo make -j8
sudo make install

然后配置环境

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

五、ORB-SLAM3编译

GitHub - UZ-SLAMLab/ORB_SLAM3: ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAMORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM - GitHub - UZ-SLAMLab/ORB_SLAM3: ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAMhttps://github.com/UZ-SLAMLab/ORB_SLAM3

由于这里ros安装了一个opencv3.2.0,我们又安装了opencv3.4.5,所以会有cv_bridge的问题

除了将cmakelist中opencv都改为3.4.5,还有set(cv_bridge路径),参考另一篇博客

Ubuntu18.04 ROS Melodic的cv_bridge指向问题_XiangrongZ的博客-CSDN博客由于ROS Melodic自带的是Opencv3.2.0,而我自己下载的是opencv3.4.5,所以需要将cv_bridge的指向改为我自己安装的opencv。https://blog.csdn.net/llllldm/article/details/126334841然后编译即可,注意编译之前进入build.sh文件,把make -j都改为make -j8

cd ORB-SLAM3/
chmod +x build.sh
./build.sh
cd Examples/ROS/ORB_SLAM3/src

修改对应你要运行文件里的话题,这里以ros_stereo_inertial.cc为例
因为我这里需要跟airsim连接,所以我要将左右目以及IMU话题修改进去。

ros::Subscriber sub_imu = n.subscribe("/airsim_node/drone_1/imu/imu", 1000, &ImuGrabber::GrabImu, &imugb); 
ros::Subscriber sub_img_left = n.subscribe("/airsim_node/drone_1/front_left/Scene", 100, &ImageGrabber::GrabImageLeft,&igb);
ros::Subscriber sub_img_right = n.subscribe("/airsim_node/drone_1/front_right/Scene", 100, &ImageGrabber::GrabImageRight,&igb);

保存退出,然后返回最开始的ORB-SLAM3文件夹,注意编译之前进入build_ros.sh文件,把make -j都改为make -j8

cd ORB-SLAM3
chmod +x build_ros.sh
./build_ros.sh

六、ROS下运行

kmavvisualinertialdatasets – ASL Datasetshttps://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads在官网中下载MH01的ROS bag

返回ORB-SLAM3的上一级目录,在终端一中

rosrun ORB_SLAM3 Stereo_Inertial $PWD/ORB_SLAM3-0.4-beta/Vocabulary/ORBvoc.txt $PWD/ORB_SLAM3-0.4-beta/Examples/Stereo-Inertial/EuRoC.yaml true

这里有人最后面不是true,是1或者do_rectify [do_equalize],我试着运行了,但是提取的特征点特别少,地图也会跟丢。

在终端二中

rosbag play -q MH_01_easy.bag /cam0/image_raw:=/airsim_node/drone_1/front_left/Scene /cam1/image_raw:=/airsim_node/drone_1/front_right/Scene /imu0:=/airsim_node/drone_1/imu/imu

-q是为了不要在终端显示运行rosbag的时间戳。

运行结果:

49a6e8be86c2451e91c9a6c16013a92f.png

 

 

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

Ubuntu18.04配置ORB_SLAM3(ROS) 的相关文章

  • ros+arduino学习(六):重构ros_lib库文件

    前言 ros lib是arduino程序和ros连接的库文件 通过使用这些库文件和相关函数 可以在arduino上通过编程使得arduino硬件开ros节点程序 这样arduino硬件就可以与上位机通过话题进行通讯 从而把arduino从传
  • V-REP安装

    小知识 是当前目录 是父级目录 是根目录 1 下载V REP 官网地址 http www v rep eu downloads html 我用ubuntu16 04下载V REP PRO EDU V3 5 0 Linux tar 2 解压安
  • ROS turtlebot_follower :让机器人跟随我们移动

    ROS turtlebot follower 学习 首先在catkin ws src目录下载源码 地址 https github com turtlebot turtlebot apps git 了解代码见注释 其中有些地方我也不是很明白
  • Ubuntu16.04安装ROS Kinetic详细步骤

    文章目录 ROS安装 配置Ubuntu软件仓库 设置sources list 设置密钥 更新Debian软件包索引 安装ROS 初始化 rosdep 环境配置 构建工厂依赖 测试安装 开发环境 ROS安装 ROS Kinetic只支持Wil
  • ROS 笔记(01)— Ubuntu 20.04 ROS 环境搭建

    ROS 官网 https www ros org ROS 中文官网 http wiki ros org cn 1 系统和 ROS 版本 不同的 ROS 版本所需的 ubuntu 版本不同 每一版 ROS 都有其对应版本的 Ubuntu 切记
  • 解决ros安装 使用roscore命令测试问题

    本人安装教程完成ROS的安装后 在进行测试如图1命令 出现 解决办法输入完命令1后要输入命令2才行 即可测试成功 测试成功的界面如下
  • Raspberry Pi 上 ROS 服务器/客户端通过GPIO 驱动硬件

    ROS 服务 现在 想象一下你在你的电脑后面 你想从这个服务中获取天气 你 在你身边 被认为是客户端 在线天气服务是服务器 您将能够通过带有 URL 的 HTTP 请求访问服务器 将 HTTP URL 视为 ROS 服务 首先 您的计算机将
  • Ubuntu安装ROS

    原文链接 https blog csdn net qq 44830040 article details 106049992 这也是我在ubuntu里面安装ROS的第N次 以前每次安装过程都忘记总结了 导致每次安装ROS都浪费了很多的时间用
  • 局域网下ROS多机通信的网络连接配置

    1 在路由器设置中固定各机器IP地址 在浏览器中输入路由器的IP地址 例如TP LINK路由器的IP为 192 168 1 1 进入登录页面后 输入用户名和密码登录 用户名一般为admin 密码为自定义 在 基本设置 gt LAN设置 gt
  • 如何将从 rospy.Subscriber 数据获得的数据输入到变量中?

    我写了一个示例订阅者 我想将从 rospy Subscriber 获得的数据提供给另一个变量 以便稍后在程序中使用它进行处理 目前 我可以看到订阅者正在运行 因为当我使用 rospy loginfo 函数时 我可以看到打印的订阅值 虽然我不
  • 进入 docker 容器,exec 丢失 PATH 环境变量

    这是我的 Dockerfile FROM ros kinetic ros core xenial CMD bash 如果我跑docker build t ros docker run it ros 然后从容器内echo PATH 我去拿 o
  • 什么是 void `std::allocator`?即:`std::allocator`

    自动生成ROS 机器人操作系统 message C 头文件包含如下类型定义 typedef std msgs Header
  • ROS AsyncSpinner 的多线程行为

    我试图了解 ROS 中的 AsyncSpinner 是如何工作的 因为我可能有一些误解 你可以找到类似的问题here As seen here它的定义提到 异步旋转器 产生几个线程 可配置 将并行执行回调 同时不会阻塞执行该操作的线程 叫它
  • OpenCV无法绘制关键点

    我尝试运行所示的示例代码ORB in the openCV页 首先我必须弄清楚问题cv2 ORB 变成cv2 ORB create 出现此错误后 出现以下内容 Traceback most recent call last File orb
  • 在 Ubuntu 18.10 上安装 ROS Melodic

    I can t是唯一对 Cosmic 与 Wayland 和 Melodic 的组合感兴趣的人 我会坦白说 我似乎已经在 XPS 13 9370 上成功管理了此操作 或者至少安装脚本 最终 成功完成 然而 有一个非常棘手的解决方法 无论结果
  • 如何使用 PyQT5 连接和分离外部应用程序或对接外部应用程序?

    我正在使用 ROS 为多机器人系统开发 GUI 但我对界面中最不想做的事情感到困惑 在我的应用程序中嵌入 RVIZ GMAPPING 或其他屏幕 我已经在界面中放置了一个终端 但我无法解决如何向我的应用程序添加外部应用程序窗口的问题 我知道
  • LSH 是将向量转换为汉明距离的二进制向量吗?

    我读了一些关于 LSH 的论文 我知道它用于解决近似 k NN 问题 我们可以将算法分为两部分 给定一个向量D尺寸 其中D是大 的任何值 用一组翻译它N where N lt
  • 无法在 Ubuntu 20.04 上安装 ROS Melodic

    我正在尝试使用这些命令在 Ubuntu 20 04 上安装 ROS Melodic sudo sh c echo deb http packages ros org ros ubuntu lsb release sc main gt etc
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息
  • 如何在Windows上安装机器人操作系统ROSJava?

    ROS 的文档很糟糕 一个很大的讽刺是 ROS 的 Groovy 和 ROSJava 版本的创建是为了让 Windows 等平台上的开发人员能够利用出色的机器人 SDK 而所有安装说明仍然面向 Linux ubuntu 用户 The ROS

随机推荐