在Ubantu22.04中运行ORB_SLAM3

news/2024/7/8 5:33:20/文章来源:https://www.cnblogs.com/SSmonkey/p/18285662

在Ubantu22.04中运行ORB_SLAM3

一、概述

ORB-SLAM3是一个支持视觉、视觉加惯导、混合地图的SLAM系统,可以在单目,双目和RGB-D相机上利用针孔或者鱼眼模型运行。从第一版的单目相机系统,到第二版加入了对stereo以及RGBD camera的支持,再到目前最新版本的orb-slam整合了visual,以及visual-inertial的融合方案,使得整个算法系统可以非常快速地应用于不同的硬件平台上。从这样的进化史来看,他们组的研究者们非常致力于将orb-slam打造成一个通用性很高的系统。这样的观点在论文原文中其实也得到了证实,而orb-slam最优秀,贡献最大的地方就在于这是一个完备,且精度很高的系统。

二、环境配置

1. 安装cv_bridge库:

1) sudo apt-get install libopencv-dev

之前已经安装过,所以此处并不需要继续安装。

  1. sudo apt-get install ros-noekit-cv-bridge

之前已经安装过,所以此处并不需要继续安装。

2.安装openCV

1)安装依赖项目:

sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

sudo apt install python3-dev python3-numpy

sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev

2)下载openCV源文件:

官网下载source文件:

https://opencv.org/releases/

安装engen库

sudo apt-get install libeigen3-dev

  1. 安装Pangolin库
    git clone https://github.com/stevenlovegrove/Pangolin.git

安装依赖:

sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev

sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libpng-dev

创建build:

执行:cmake -DCPP11_NO_BOOST=1 ..

之后执行:make

再执行:sudo make install

安装boost库

进入官网:http://www.boost.org/users/download/

下载后,解压:tar -xvf boost_1_77_0.tar.gz

依次执行: cd ./boost_1_77_0

./bootstrap.sh

sudo ./b2 install

下载ORB-SLAM3

执行:git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git

修改ORB-SLAM3/CMakelist.txt文件中第20行:

第41行:

修改ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/CMakeLists.txt文件中:

修改ORB_SLAM3/Thirdparty/DBoW2 /CMakeLists.txt文件中:

修改ORB_SLAM3/Thirdparty/g2o/CMakeLists.txt文件中:

安装python

sudo apt install libpython2.7-dev

编译ORB-SLAM3

依次执行: cd ORB_SLAM3

chmod +x build.sh

./build.sh

三、ORB-SLAM3运行

1. 创建工作空间:

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws/src

catkin_init_workspace

cd ~/catkin_ws/

catkin_make

source ~/catkin_ws/devel/setup.bash

2.先启动roscore,然后运行驱动节点usb_cam_node

roscore

rosrun usb_cam usb_cam_node

摄像头启动后启用rqt工具查看图像

rqt_image_view

接收话题名称更改

在运行程序之前,需要将ORB_SLAM3/Examples_Old/ROS/ORB_SLAM3/src/ros_mono.cc和ORB_SLAM3/Examples_Old/ROS/ORB_SLAM3/src/AR/ros_mono_ar.cc的接收话题名称更改

4.执行单目实时usb_cam效果

rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml

f061c36d824fb1b8527cb2077e15c91

四、结论

目前能够编译运行诸如此类的特征法SLAM开源项目了,虽然初学经历了各种尝试,但是熟悉了Linux系统和ROS系统的操作、cmake、shell、OpenCV等等,为了能够自己进行开发,还需要更深入的学习。

从开源项目入手,学习其理论和工程实现,是入门的捷径,只有看懂的代码才改的动代码,深入之后在其基础上做一定的改进。

工程实现只是科研的一部分,作为研究生,更重要的是抓住SLAM中的一个小问题,看看能否对现有的算法进行改进或者比较。所以还是要从论文出发,寻找灵感,去实现,并验证效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/738733.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gitlab 解锁账号

现象 登录gitlab后显示 账号被锁,登录方式AD域 管理员后台查看账号 如果是在gitlab导致的锁,那么账号显示的就是Blocked,如果是LDAP导致就是LDAP Blocked,并且后者无法在gitlab UI界面解锁 解锁登录控制端 gitlab-rails console搜索用户user = User.find_by_email("m…

centos 7 ip地址配置

然后输入如下命令: /etc/init.d/network restart我只想安静地学习,捡拾前人的牙慧,默默强大如此弱小的我...

手把手教你解决spring boot导入swagger2版本冲突问题,刘老师教编程

手把手教你解决spring boot导入swagger2版本冲突问题本文仅为个人理解,欢迎大家批评指错首先Spring Boot 3 和 Swagger 2 不兼容。在 Spring Boot 3 中,应该使用 Springdoc 或其他与 Spring Boot 3 兼容的 API 文档工具来替代 Swagger 2。 Swagger 2 的依赖底层使用的是 java…

Linux(Centos7)安装Docker 社区(ce)版

安装准备 查看Linux系统版本是否为centos7 cat /etc/os-release确保系统内核为3版本以上 uname -a安装Docker 如之前安装过请卸载 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker…

srpingboot 初识

依赖管理父项目(一直网上找)spring-boot-dependencies 决定了当前 springboot 预先配置的所有依赖及版本<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.3.4.RELEAS…

windows配置环境变量

前言 环境变量的目的是为了让为了终端简化命令行操作,使系统能够找到所需的程序和工具或文件,并优化系统的运行环境。 比如我有一个文件 D:\doc\a.txt ,如果我们打开终端打开此文件,则需要输入D:\doc\a.txt但是如果我们将D:\doc配置为环境变量,我们则可以直接终端中输入 a…

服务器忘记IP后找回IP地址

在工程现场,我们时常会遇到忘记BMC IP地址的情况,在忘记BMC IP后有两种方法可以帮助我们找回忘记的IP地址 1、外接显示器(在服务器开机过程中右下角会显示出IP地址)2、通过抓包软件(Wireshark)来抓取设备发到广播报 前提条件服务器先完全断电 电脑网口和IPMI口直连,确保…

【日记】今天好忙(316 字)

正文今天一整天都是疯忙的节奏。上午开户,一来来俩。从 9 点到 12 点,中间连轴转没停过。昨天睡得还可以,不过上午依旧很困。昨晚跟兄长打了一晚上的掳人少女人偶,没打过…… 宫崎英高!你罪该万死!搞这么难…….昨晚也因为去的时候在下雨,所以没什么人来练习。只有我和大…

KIM论文阅读笔记

Personalized News Recommendation with Knowledge-aware Interactive Matching论文阅读笔记 Abstract 现存的问题: ​ 现有的大多数新闻推荐方法都是从文本内容和用户点击的新闻中分别建立候选新闻模型和用户兴趣模型。然而,一篇新闻可能涉及多个方面和实体,而用户通常有不…

Docker 构建nginx镜像

步骤: (1)创建一个目录,把构建Nginx的Dockerfile文件保存到此目录。 创建一个名为nginxDockerfile的目录。mkdir nginxDockerfile(2)进入刚才创建好的目录。cd nginxDockerfile(3)创建Dockerfile文件。vim dockerfile 文件内容如下FROM centos MAINTAINER xpx RUN yum…

es库-连接工具-chrome插件:Elasticsearch-Head

Elasticsearch-Head如何连接es数据库呢: 1.下载Elasticsearch-Head插件压缩包 2.解压文件夹,是这样的: 3.打开chrome浏览器的 扩展程序管理 然后,点击“加载已解压的扩展程序”: 找到 并且选中 你压缩es-head文件夹的根目录-》点击“选择文件夹”: 到目前就加载上es-head…

《计算机组成与系统结构(第二版) 裘雪红 李伯成 西安电子科技大学出版社》课后习题答案(带解析)(五)

此系列答案配套《计算机组成与系统结构(第二版) 裘雪红 李伯成 西安电子科技大学出版社》一书相关内容。所有内容为博主个人编辑,仅作参考学习交流之用,转载请注明出处。如发现错误,请联系博主及时勘误。如有侵权行为,博主将立即下架全部内容。声明:此系列答案配套《计…

《计算机组成与系统结构(第二版) 裘雪红 李伯成 西安电子科技大学出版社》课后习题答案(带解析)(四)

此系列答案配套《计算机组成与系统结构(第二版) 裘雪红 李伯成 西安电子科技大学出版社》一书相关内容。所有内容为博主个人编辑,仅作参考学习交流之用,转载请注明出处。如发现错误,请联系博主及时勘误。如有侵权行为,博主将立即下架全部内容。声明:此系列答案配套《计…

数字经济时代:AI+引领企业数字化新高度

"AI+"指将人工智能技术与各行各业深度融合,从研发到场景应用再到产业打造,实现全链条赋能,是数字经济中创新应用的典型代表,也是传统企业转型升级的强大引擎——不仅是技术层面的创新,更是一种全新的思维方式和工作模式,要求企业在战略规划、组织结构、业务流程…

金蝶云苍穹追光者开发大赛,点燃高校AI应用创新之火

作为践行金蝶 “All in AI” 战略、推动 “订阅优先、AI 优先” 的核心开发者赛事,「第六届金蝶云・苍穹追光者开发大赛」正如火如荼地进行,吸引了众多高校开发者的热情参与,点燃高校 AI 应用创新之火。在 2024 年的政府工作报告中,"人工智能 +" 行动被提出,标志…

vue3 父子组件双向绑定

父组件 ParentComponent.vue<!-- ParentComponent.vue --> <template><div>子组件输入的数据<p>Parent Value: {{ parentValue }}</p>父输入框<input v-model="parentValue"><CustomInput v-model="parentValue" /…

MyBatisPlus - [07] QA

题记部分 一、Public Key Retrieval is not allowed 二、标题三、标题— 业精于勤荒于嬉,行成于思毁于随 —

安装JDK后仍然无法双击执行jar包的解决方案

1.首先确定自己安装了java运行环境,也就是JDK或JRE,具体方式是在任意非java安装文件夹下打开命令行界面,依次执行以下命令: java。javac。java -verison。都能正常运行就是安装成功且配置好了环境变量。 2.安装好Java虚拟机后,双击需要运行的jar文件或在jar文件上点击鼠标…