Ubuntu18.04利用astra pro相机实现ORB—SLAM3实时点云稠密建图—上

news2025/2/25 18:11:38

Ubuntu18.04利用astra pro相机实现ORB—SLAM3实时点云稠密建图—上

  • 前言
    • 前期准备—ROS完整安装
  • OpenCV的安装(4.2.0)
  • 安装依赖
    • C++11特性的编译器
    • Pangolin
      • 测试pangolin程序
  • Eigen
  • boost
  • ORB-SLAM3

前言

建议编译ORB-SLAM3的硬件设备内存配置至少4GB以上(树莓派4B 4GB),否则会卡死

前期准备—ROS完整安装

具体ROS的安装可以参考之前写的一篇安装博客—《Ubuntu安装ROS(每个步骤图文详细)》
这里在贴出—《小鱼一键安装ROS》,终端执行:

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

在这里插入图片描述

OpenCV的安装(4.2.0)

具体安装过程可以参考之前的一篇博客《Ubuntu18.04下安装OpenCV4.2.0与Opencv_contrib(图文详细报错总结)》

安装依赖

C++11特性的编译器

sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install git

Pangolin

首先安装Pangolin所需要的依赖环境

sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install libx11-dev libxmu-dev libglu1-mesa-dev libgl2ps-dev libxi-dev g++ libzip-dev libpng12-dev libcurl4-gnutls-dev libfontconfig1-dev libsqlite3-dev libglew*-dev libssl-dev
sudo apt-get install glew-utils

下载Pangolin

git clone https://github.com/stevenlovegrove/Pangolin

执行安装:

cd Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
make -j8
sudo make install 

PS:这里make -j如果卡死,换make即可
在这里插入图片描述

测试pangolin程序

cd ~/Pangolin/build/examples/HelloPangolin
./HelloPangolin

出现这个表示pangolin安装成功
在这里插入图片描述

Eigen

在Eigen官网下载,这里用到的版本是3.3.9
在这里插入图片描述
下载完解压进入Eigen目录

cd eigen-3.3.9
mkdir build
cd build
cmake ..
sudo make install

在这里插入图片描述
基本是秒安装的

boost

终端执行如下指令

sudo apt-get install libboost-all-dev
sudo apt search boost

在这里插入图片描述

ORB-SLAM3

下载ORB-SLAM3 GitHub地址:https://github.com/UZ-SLAMLab/ORB_SLAM3
下载完成后进入ORB-SLAM3目录执行安装

cd ORB_SLAM3
chmod +x build.sh
./build.sh

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

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

相关文章

LinuxSCP和SSH命令

scp命令 cp命令,是拷贝的作用,可以实现将文件或者目录拷贝到另外一个位置。 scp命令,也是拷贝的作用,但是是远程拷贝,可以实现将文件或者目录拷贝到另外的一台机器上。 命令格式 # scp file 远程用户名远程服务器:目标…

Midjourney竞品Leap免费试用; Google 刚刚发布10门独立AI课程

🦉 AI新闻 🚀 Midjourney竞品,免费试玩AI图片生成工具Leap,细节还需提升 摘要:Leap是一款免费试玩的AI图片生成工具,用户可以选择不同的生成模型和步长及数量。功能上尚需提高细节把握能力,但…

【genius_platform软件平台开发】第九十七讲:linux设备驱动中信号(signal函数)的异步通知机制

1. 信号的异步通知 意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上“中断”的概念,比较准确的称谓是“信号驱动的异步I/O”。信号是在软件层次上对中断机制的一种模拟,在…

创新升级!深度学习算法注入机器视觉应用,助力工业领域智慧生产

随着人工智能在算力、算法、大数据等方面的技术突破,基于神经网络的深度学习算法在各行各业加速渗透。而制造业作为AI融合创新的主要场景之一,在机器视觉技术的加持下,持续赋能生产线的自动化、智能化升级,赋予工业生产“感知”能…

【Java se】为什么大部分小数在计算机中是不精确的

目录 一、什么是小数 二、浮点数在计算机中的转换规则 (1)整数部分转换步骤 (2) 小数部分转换步骤 三、使用代码说明 四、手动转换小数 一、什么是小数 在计算机中,也称小数为浮点数,因为在使用科学计…

程序员的炫技代码写法

程序员的炫技代码写法 程序员,这个职业总是让人感到神秘而又充满魅力。他们手中的代码常常充满了令人惊叹的炫技操作,让人不禁感叹他们的技术能力之高。在这篇博客中,我想和大家分享一些我所知道的程序员的炫技代码写法。 一、代码美感——…

什么是死锁?互斥锁进入死锁怎么解决?

1.死锁是什么? (1)死锁是一组相互竞争资源的线程因为他们之间得到互相等待导致“永久“阻塞的现象; (你等我 我等你 你不放我也不放 就导致“永久“阻塞的现象) (2)死锁是指两个或…

mysql索引possible_keys,key问题。

explain中有两个字段possible_keys,key。 possible_keys:表示可能用到的索引。 key:实际使用到的索引。 为什么会有单独的两列? 你的where条件中如果使用到了索引列字段,那么possible_keys会列出索引字段对应的索引…

【区块链】科普:零知识证明、ZKRollup 与 zkEVM

译者语:2023 年将迎来 zkEVM 大发展,让我们看看有哪些项目在进行 zkEVM 的研究,zkEVM 可以做什么 原文链接: https://blog.pontem.network/zk-proofs-301-zksync-other-zkevm-b28641dc8565这篇文章让我们解释一下zkEVM是如何工作的,为什么它们是如此重要的创新。 长话短说…

基于html+css的图展示113

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

云下自建Grafana获取阿里云监控数据

前言 官方文档,我看了要付费的 https://help.aliyun.com/document_detail/313316.html?spma2c4g.217924.0.i2 grafana:8.3.5 插件名称:aliyun-cms-services grafana安装: https://blog.csdn.net/qq_44379042/article/details/121852310 …

Activiti 工作流 学习笔记

环境信息: IntelliJ IDEA 2021.3.3 (Ultimate Edition) JDK 1.8 Activiti 7 文章目录 Activiti 7一、了解工作流1.1 什么是工作流1.2 工作流引擎1.3 常见的工作流引擎1.4 Activiti 概述1.4.1 Activiti介绍1.4.2 建模语言BPMN1.4.3 Activiti使用流程1.4.4 流程设计工具1.4.5 下载…

全排列II

1题目 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输出: [[1,1,2],[1,2,1],[2,1,1]]示例 2: 输入:nums [1,2,3] 输出:[[1,2,3],…

OpenGauss MOT 实现技术研究

目录 一、概述 二、技术细节和OpenGauss中的实现 1、内存表在内存中的组织 2、事务并发控制算法 3、检查点算法 这篇文档写于2022年6月份,今天打算发到网上,重读时发现可能opengauss mot现在的代码已经有所改变,文中有些代码分支可能已经…

高效远程控制另一台电脑的3种方法,提升工作效率!

如何从我的电脑控制另一台电脑? “我妈妈的电脑出了问题,我需要帮她修理下,但是我不能亲自去进行故障排除。我应该如何从我的电脑远程控制另一台电脑,并提供远程支持?” 如何远程控制另一台电脑?&a…

基于SpringBoot+Vue的学生综合测评系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

http缓存详解

为什么要缓存 通过http协议在客户端和服务端建立连接需要消耗时间,重复访问同一个资源,增加访问服务器数据资源的成本,因此,利用浏览器的缓存机制重用以前获取的数据来优化性能 1、 减少了网络延迟,加快了页面响应速度…

分析全志Tina打包流程,并在buildroot上来实现打包生成tina镜像,支持PhoenixSuit烧写

本文转载自全志在线:https://bbs.aw-ol.com/topic/1532/ 步骤简述 首先记录下官方 tina-sdk 打包的log输出。 bookvirtual-machine:~/D1s-Core/tina-d1-h$ pack ---- PACK_CHIP sun20iw1p1 PACK_PLATFORM tina PACK_BOARD d1-h-nezha PACK_KE…

Vue.js 中的指令和组件详解

Vue.js 中的指令和组件详解 在 Vue.js 中,指令和组件是两个非常重要的概念,它们都可以用来扩展 Vue.js 的功能,但它们之间有一些不同之处。本文将对 Vue.js 中的指令和组件进行详细的介绍,并附上相关的代码示例。 指令 在 Vue.j…

华为OD机试真题 Java 实现【找最小数】【2023 B卷 100分】,附详细解题思路

一、题目描述 给一个正整数num1,计算出新正整数num2,num2为num1中移除N位数字后的结果,需要使得num2的值最小。 二、输入描述 输入的第一行为一个字符串,字符串由0~9字符组成,记录正整数num1,num1的长度…