INDEMIND双目惯性模组运行实时ORB-SLAM3教程

news2024/11/18 4:29:46

现在实验室视觉SLAM已经不够满足,所以需要多模态融合,正巧购入高翔博士推荐的INDEMIND双目惯性模组,根据官方例程在中使用ros接入ORB-SLAM3INDEMIND的双目鱼眼+imu模组,这回有SDK及ORB-SLAM3安装过程中的各种常见性问题解决方法及安装细节,与官网教程略有不同,列举所有默认安装的依赖,做以记录。

文章目录

    • 实验环境
    • 一、SDK安装
      • 1、SDK下载及准备安装
      • 2、安装依赖
      • 3、然后使用git下载 SDK
      • 4、准备安装SDK需要的依赖
      • 5、OpenCV3.4.3安装
      • 6、MNN安装
      • 7、SDK测试
        • (1)编译样例
        • (2)执行demo
    • 二、ORB-SLAM3安装
      • 1、安装ROS环境
      • 2、环境配置
        • (1)安装库
        • (2)安装cv_bridge库
        • (3)安装EIGEN库
        • (4)安装Pangolin库
          • ①下载Pangolin 0.6
          • ②安装依赖项
          • ③编译安装
          • ④验证
        • (5)安装Boost库
        • (6)安装替换

实验环境

系统版本
ubuntu20.04
ROSnoetic
IMSEE-SDK1.4.2
OpenCV3.4.3
protobuf3
MNN3.4.3
Boost1.81
Eigen3.2.92
Pangolin0.6

一、SDK安装

1、SDK下载及准备安装

官方产品手册地址

2、安装依赖

sudo apt-get install build-essential cmake git

3、然后使用git下载 SDK

git clone https://github.com/indemind/IMSEE-SDK.git

4、准备安装SDK需要的依赖

cd /home/geekfanr/catwin_ws/src/IMSEE-SDK
make init

5、OpenCV3.4.3安装

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
git clone https://github.com/opencv/opencv.git
cd opencv/
git checkout tags/3.4.3

mkdir build
cd build/

cmake \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
\
-DWITH_CUDA=OFF \
\
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \
..

make -j4
sudo make install

6、MNN安装

sudo apt-get install autoconf automake libtool
sudo apt-get install libcanberra-gtk-module

MNN依赖protobuf

git clone https://github.com/google/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.

autogen文件连接速度不理想,网盘自取

autogen.sh文件
519w

把protobuf的src目录下的hello.cMakefile.am文件拷贝到本机protobuf的src目录

protoc --version # 若安装成功,将显示protoc版本
git clone https://github.com/alibaba/MNN.git
cd MNN
./schema/generate.sh
mkdir build
cd build
cmake ..
make -j4
sudo make install

完成这些步骤,SDK就安装完毕了

7、SDK测试

(1)编译样例

cd /geekfanr/catkin_ws/src/IMSEE-SDK  # <IMSEE-SDK> 为安装的SDK具体路径
make init

(2)执行demo

在CMakeLists.txt中添加

set( CMAKE_CXX_STANDARD 14)

在这里插入图片描述

cd /geekfanr/catkin_ws/src/IMSEE-SDK  # <IMSEE-SDK> 为安装的SDK具体路径
make demo

在这里插入图片描述

cd /home/geekfanr/catkin_ws/src/IMSEE-SDK/demo/output/bin
sudo su 
./get_image 

在这里插入图片描述

二、ORB-SLAM3安装

1、安装ROS环境

小鱼老师把国外关于ROS的库放到了自己的服务器上,所以只用向他的服务器发送命令就能快速安装

安装ROS系统配置比较复杂,Ubuntu20.04对应ROS版本为noetic,推荐使用小鱼老师的一键安装、配置ROS的代码

wget http://fishros.com/install -O fishros && bash fishros

在这里插入图片描述
平时使用都是ROS1,ROS2是ROS1的改进版本,支持多机,分布式,暂时不会使用。

在这里插入图片描述
在这里插入图片描述

2、环境配置

(1)安装库

安装git,g++

sudo apt-get install git
sudo apt install g++

建议先安装ROS中的cv_bridgelibopencv-dev,再安装和libopencv版本号一样的opencv库,这样可以避免opencv的版本冲突问题。

(2)安装cv_bridge库

sudo apt-get install libopencv-dev
sudo apt-get install ros-noekit-cv-bridge

在这里插入图片描述

(3)安装EIGEN库

sudo apt-get install libeigen3-dev

在这里插入图片描述

(4)安装Pangolin库

①下载Pangolin 0.6

解压到主目录,重新命名为Pangolin
在这里插入图片描述

②安装依赖项
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

在这里插入图片描述

③编译安装
cd Pangolin 
mkdir build && cd build
cmake -DCPP11_NO_BOOST=1 ..
make

在这里插入图片描述

sudo make install

在这里插入图片描述

④验证
cd ../examples/HelloPangolin
mkdir build && cd build
cmake ..

在这里插入图片描述

make
./HelloPangolin
#成功会弹出如下窗口

在这里插入图片描述
在这里插入图片描述

(5)安装Boost库

①这里非常坑,官网上的依赖没有boost,但如果不安装boost会报很多的关于c++的错误,并且无法定位

②进入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

(6)安装替换

ORB-SLAM3依赖的opencv是4.4以上的版本,而Indemind的sdk使用的是3.4.3版本。
在这里插入图片描述

因此,需要修改ORB-SLAM3的工程,打开ORB-SLAM3工程的cmakelist.txt,将OpenCV3.4.3替换OpenCV 4.2.0
在这里插入图片描述
进行编译
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Boost的安装

过程 boost是一个非常重要的东西&#xff0c;是对C函数库的扩展&#xff0c;非常得不错&#xff0c;是第三方扩展&#xff0c;不过不是一般的第三方&#xff0c;是C标准委员会工作组成员发起的。 通过vs命令工具进入boost目录 执行bootstrap.bat命令 开始安装 b2.exe instal…

JavaScript经典教程(二)-- CSS基础部分

179&#xff1a;HTML基础部分&#xff08;元素分类、特性、特殊元素等&#xff09; — 补充 1、盒子模型 定义&#xff1a;一个元素在页面中所占的位置大小&#xff0c;叫盒子模型。 包含的样式&#xff1a;即影响元素大小的样式&#xff1a; width、height、margin、padding…

使用MyBatis实现关联查询

文章目录 一&#xff0c;查询需求&#xff08;一&#xff09;针对三张表关联查询&#xff08;二&#xff09;按班级编号查询班级信息&#xff08;三&#xff09;查询全部班级信息 二&#xff0c;创建数据库表&#xff08;一&#xff09;创建教师表&#xff08;二&#xff09;创…

云计算中的自动化运维技术及其实践

引言 随着云计算技术的快速发展&#xff0c;云计算成为了企业数据中心的新生态&#xff0c;提供了更加灵活、高效、安全的 IT 基础设施和应用服务&#xff0c;让企业能够更加专注于业务创新和变革。但是&#xff0c;云计算的快速发展也带来了新的安全挑战&#xff0c;尤其是在…

达摩院开源工业级说话人识别模型CAM++

近日&#xff0c;达摩院正式向公众开源工业级说话人识别通用模型CAM&#xff0c;兼顾准确率和计算效率&#xff0c;训练labels类别达20万&#xff0c;每类含20&#xff5e;200条梅尔频谱特征。当前该模型已上线Modelscope魔搭社区&#xff0c;后续将陆续开源针对各场景优化的工…

TCP协议三次握手过程分析

TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议&#xff0c;提供可靠的连接服务&#xff0c;采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结…

Vue3技术4之watch监视属性、watch时value问题

Vue3技术4 watch监视属性watch监视ref定义的数据情况一&#xff1a;监视ref所定义的一个响应式数据App.vueDemo.vue 情况二&#xff1a;监视ref所定义的多个响应式数据App.vueDemo.vue 添加immediate属性Demo.vue watch监视reactive定义的数据情况一&#xff1a;监视reactive所…

直播带货冲击实体生意,杭州四季青打响禁止直播带货第一枪

最近&#xff0c;“杭州四季青部分市场禁止直播”的话题冲上热搜。 身处“直播电商之城”杭州的“中国服装行业第一街”杭州四季青的部分市场&#xff0c;打响了“驱逐直播第一枪”&#xff01; 杭州四季青部分市场内为什么要明令禁止直播&#xff0c;直播卖货对实体商户带来了…

华锐3d虚拟数字人提供哪些智能化服务?

虚拟数字人的诞生是互联网时代的产物&#xff0c;它的出现为数字化经济提供了全新解决方案。数字化技术和网络使人类得以进入以“智能机器数据算法”为主线的新生态之中。 广州华锐互动作为专业的AI虚拟数字人开发商&#xff0c;拥有成熟的技术团队和一流的解决方案&#xff0…

零售数据分析操作篇15:用总聚合做销售分析

上一讲讲了内存计算筛选&#xff0c;又可称之为自定义计算成员筛选&#xff0c;即当某列是通过自定义计算成员得到的时候&#xff0c;还要想利用其作为筛选条件&#xff0c;就需要用到自定义计算成员筛选功能。 上一讲还给大家出了道作业&#xff0c;就是&#xff1a;想知道哪…

RHCE-DNS服务器

主机名称解析服务器配置 要求&#xff1a; 1、建立DNS服务器&#xff0c;负责解析的域为openedu.com&#xff1b; 建立DNS首先需要在服务器端配置主配置文件&#xff1a; &#xff08;1&#xff09;临时关闭防火墙和selinux&#xff1a;systemctl stop firewalld&#xff1b;…

靶机精讲之HackademicRTB1

主机发现 nmap扫描 端口扫描 只有80端口开放 UDP扫描 web渗透 服务扫描 脚本扫描 DOS攻击漏洞 枚举漏洞 查看web端 进行目录爆破 点击 点击后发现地址结构像有目录爆破 接上面枚举漏洞 复制那枚举目录到web 接目录爆破 apeache服务器 查看内容管理系统是否是自建的 在库搜索…

【rustdesk】rust入门及 windows尝试编译

rustup 微软建议用vs code开发 下载了64位的版本: vs code 插件 rust-analyer 介绍Better TOML,用于更好的展示.toml文件Error Lens, 更好的获得错误展示 One Dark Pro, 非常好看的Vscode主题 CodeLLDB, debugger程序 安装

2023年工商管理在职研究生择校、择专业指南

工商管理在职研究生是许多管理岗位从业者提升职业素质、竞争力的重要途径。 工商管理在职研究生学习的内容更加专业、深入&#xff0c;涵盖的领域更加广泛&#xff0c;通过学习&#xff0c;可以提高专业素养&#xff0c;掌握更深入的理论和实务知识&#xff0c;拓宽人脉&#…

爆爆爆!!Deep Mind与Google Brain合并,成立 Google DeepMind 新部门

图&#xff5c;2010-2023&#xff0c;从 DeepMind 到 Google DeepMind&#xff0c;再到 DeepMind&#xff0c;再到 Google DeepMind 来源: 学术头条 微信号&#xff1a;SciTouTiao 或许是深深感受到了来自 OpenAI 与微软一起给到的巨大压力&#xff0c;以及加速实现通用人工智…

基于 VITA57.4 标准的 8 路 500MSPS/1GSPS/1.25GSPS 采样率 14 位 AD 采集 FMC 子卡模块

板卡概述 FMC148 是一款基于 VITA57.4 标准的 JESD204B 接口 FMC 子卡模块&#xff0c;该模块可以实现 8 路 14-bit、500MSPS/1GSPS/1.25GSPS ADC 采集功能。该板卡 ADC 器件采用 ADI 公司的 AD9680 芯片,全 功率-3dB 模拟输入带宽可达 2GHz。该 ADC 与 FPGA 的主机接口通 …

【PyQt】QGraphicsItem的setPos和transformation的平移并不等效

1. 结论 今天才知道&#xff0c;改变图元的位置的两个方法&#xff1a; setPos() 和 transform.translate() 的本质是不同的&#xff01; 2. 缘由 在调试代码时&#xff0c;获取某个位置不在原点的图元的坐标总是返回(0,0)&#xff0c;百思不得其解&#xff0c;后仔细研究发…

prometheus监控之pushgateway

prometheus监控之pushgateway 文章目录 prometheus监控之pushgatewaypushgateway是什么pushgateway使用场景架构图安装pushgateway配置说明 prometheus配置pushgateway的使用数据推送默认格式入门操作较为复杂数据的推送一次性推送多个指标(命令行方式)一次性推送多条数据&…

QML地图绘制虚线

QML提供了MapPolyline用于在地图上绘制线段&#xff0c;该线段是实线&#xff0c;因此我使用Canvas自定义绘制的方式在地图上绘制线段&#xff0c;如图&#xff1a; 鼠标在地图上点击后&#xff0c;在点击位置添加图标 &#xff0c;当有多个图标被添加到地图上后&#xff0c;计…

让你立刻学会指针

☃️个人主页&#xff1a;fighting小泽 &#x1f338;作者简介&#xff1a;目前正在学习C语言和数据结构 &#x1f33c;博客专栏&#xff1a;C语言学习 &#x1f3f5;️欢迎关注&#xff1a;评论&#x1f44a;&#x1f3fb;点赞&#x1f44d;&#x1f3fb;留言&#x1f4aa;&am…