《视觉十四讲》例程运行记录(1)—— 课本源码下载和3rdparty文件夹是空的解决办法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、第二版十四讲课本源码下载
    • 1. 安装git工具
  • 二、Pangolin下载和安装
    • 1. 源码下载
    • 2. Pangolin的安装
      • (1) 安装依赖项
      • (2) 源码编译安装
      • (2) 测试是否安装成功
  • 二、Sophus的下载和安装
    • 1. 源码下载
    • 2. 安装fmt库依赖
    • 2. 安装Sophus


前言

《视觉SLAM十四讲》是由作者高翔编写的一本关于视觉SLAM(Simultaneous Localization and Mapping)的教材,从理论到实践全面介绍了SLAM技术在视觉领域的应用。通过十四个生动的讲解,读者可以系统地学习视觉SLAM的基础理论、算法原理和实际实现。

本书特别强调了理论与实践相结合的方式,旨在帮助读者深入理解SLAM技术的核心概念,并通过实际案例和代码实现,掌握如何应用SLAM解决实际问题。在作者高翔的指导下,读者将了解到SLAM在无人驾驶、智能导航、机器人技术等领域的重要性和应用前景。

《视觉SLAM十四讲》适合视觉SLAM领域的学习者和从业者阅读,也可以作为专业人士的参考书。这本书不仅系统地介绍了视觉SLAM的基本概念和算法,还提供了实践中的经验分享和应用案例,对于希望深入了解SLAM技术和在实践中应用的读者来说是一本很好的教材。

一、第二版十四讲课本源码下载

1. 安装git工具

(1) 终端输入:

sudo apt-get install git

(2) 例程源码的下载
终端输入:

git clone --recursive https://github.com/gaoxiang12/slambook2.git

如果你没有安装配置好git,也可以通过下载zip文件的形式直接下载代码。
下载后发现,下载的3rdparty文件夹是空的!!!!暂时不知道是什么原因,下面是手动下载安装3rdparty文件夹中存放的库依赖

二、Pangolin下载和安装

1. 源码下载

下载源码,在终端输入:

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

如果使用上述指令下载,出现类似报错:Failed to connect to github.com port 443:拒绝连接,有个小tips可以参考一下:
将上述的https,换成git。

2. Pangolin的安装

(1) 安装依赖项

终端输入:

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

(2) 源码编译安装

1)进入存放Pangolin的文件夹:

cd slambook2/3rdparty/Pangolin

2)创建存放编译中间文件的文件夹build:
创建文件夹:

mkdir build         // 在Pangolin下创建文件夹

进入build目录下:

cd build

3)编译

cmake ..
make -j8    // j8表示多线程编译的意思,8代表使用线程同时编译

4)安装到本机

sudo make install

(2) 测试是否安装成功

在Pangolin文件夹下有一个测试的案例examples,具体的流程如下:
1)在slambook2/3rdparty/Pangolin/examples/HelloPangolin下打开终端:
在Pangolin下创建build文件夹:

mkdir build
cd build

用于存放过程文件,不用时可删掉,注意在使用cmake …/make之前,要把build删掉,不然会出现找不到Makefile文件的报错

2)编译examples测试

cmake ..
make

3)运行测试案例
终端输入:

./HelloPangolin

运行./HelloPangolin之后,如果出现一个彩色的立方体,并且可以通过鼠标左右拖拽,就表示Pangolinan安装成功。

在这里插入图片描述

二、Sophus的下载和安装

1. 源码下载

终端输入:

git clone https://github.com/strasdat/Sophus.git

注意:多余的空格可能导致克隆失败
在这里插入图片描述

2. 安装fmt库依赖

添加依赖项“fmt”库
(1) 源码下载
下载地址:

git clone  https://github.com/fmtlib/fmt.git

**注意:**fmt库最好不能直接git克隆库代码,否则可能出现如下问题:
报错信息如下:

/usr/local/include/fmt/core.h:1706:3: error: static assertion failed:
cannot format an argument. To make type T formattable provide a
formatter specialization:
https://fmt.dev/latest/api.html#udtCMakeFiles/usesophus.dir/build.make:62:
recipe for target ‘cMakeFiles/usesophus.dir/usesophus.cpp.o’ failed

在这里插入图片描述

解决:
要去官网下载8.1.1版本的fmt进行安装即可解决上述问题

(2) fmt的安装
1)进入fmt的目录下,创建build文件:

mkdir build
cd build

2)编译

cmake ..
make

3)安装库到本地

sudo make install

2. 安装Sophus

(1)进入Sophus的目录下,创建build文件:

mkdir build
cd build

(2)编译源码

cmake ..
make

(3)安装到本地

sudo make install

到此,没有什么报错就安装成功了。

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

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

相关文章

4:分配器测试

文章目录 分配器作用容器中默认的分配器分配器测试程序这节课并没有总结各种分配器的使用结果 分配器作用 负责分配和管理容器的空间的 不需要用户手动创建 容器中默认的分配器 第二个参数表示默认的分配器 每一个容器初始化的时候 带一个默认的分配器 分配器测试程序 右边的…

商城数据库88张表结构完整示意图61~70(十四)

六十一: 六十二: 六十三: 六十四: 六十五: 六十六: 六十七: 六十八: 六十九: 七十:

深度学习之基于YOLOv5的山羊行为识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习之基于YOLOv5的山羊行为识别系统是一个创新的项目,旨在通过深度学习和目标检测技术&#xff0c…

【数据结构(邓俊辉)学习笔记】列表04——排序器

文章目录 0. 统一入口1. 选择排序1.1 构思1.2 实例1.3 实现1.4 复杂度 2. 插入排序2.1 构思2.2 实例2.3 实现2.4 复杂度分析2.5 性能分析 3. 归并排序3.1 二路归并算法3.1.1 二路归并算法原理3.1.2 二路归并算法实现3.1.3 归并时间 3.2 分治策略3.2.1 实现3.2.2 排序时间 4. 总…

【Java】基本程序设计结构(二)

前言:上一篇我们详细介绍了Java基本程序设计结构中前半部分,一个简单的Java应用,注释,数据类型,变量与常量,运算符,字符串。包括本篇将延续上篇内容介绍后续内容,包括输入输出&#…

AutoTable, Hibernate自动建立表替代方案

痛点 之前一直使用JPA为主要ORM技术栈,主要是因为Mybatis没有实体逆向建表功能。虽然Mybatis有从数据库建立实体,但是实际应用却没那么美好:当实体变更时,往往不会单独再建立一个数据库重新生成表,然后把表再逆向为实…

渠道管控治理思路建议

品牌在做控价时,一定要有渠道一体化的治理想法,不能只能打击某一家店铺为想法进行治理,比如只打击非授权,只不去管理授权体系的经销商店铺,这显然是不行的,管理非授权的同时,授权也要管理好&…

QT+串口调试助手+扩展版

前言:此文章是这篇文章的拓展 QT串口调试助手基本版-CSDN博客,如果需要独立完成串口调试助手直接看基本版文章即可,如果需要完成串口调试助手的其他功能,参考拓展版。 一、更新QT串口调试助手UI界面 1、ui串口设置界面 2、ui串口…

华为OD机试【求满足条件的最长子串的长度】(java)(100分)

1、题目描述 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求: 只包含1个字母(a-z, A-Z),其余必须是数字&#xf…

Istio基础知识

一、什么是Istio Istio 提供⼀种简单的⽅式来为已部署的服务建⽴⽹络,该⽹络具有 负载均衡、服务间认证、监控等功能,只需要对服务的代码进⾏⼀点或不需要做任何改动。想要让服务⽀持 Istio,只需要在您的环境中部署⼀个特殊的 sidecar 代 理&…

工程技术SCI期刊,中科院3区,IF=3+,收稿范围广泛!

一、期刊名称 International Journal of Critical Infrastructure Protection 二、期刊简介概况 期刊类型:SCI 学科领域:工程技术 影响因子:3.6 中科院分区:3区 出版方式:订阅模式/开放出版 版面费:…

【JavaEE 初阶(二)】线程安全问题

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多线程知识 目录 1.前言2.synchronized2.1例子2.2synchronized修饰代码块2.3 synchronized修饰方法2.4sy…

分布式领域计算模型及SparkRay实现对比

目录 一、分布式计算领域概览 二、Spark计算模型分析 三、Ray计算模型分析 3.1 需求分析 3.2 系统设计 3.3 系统实现 四、总结 一、分布式计算领域概览 当前分布式计算模型主要分为以下4种: Bulk Synchronous Parallel Model(块同步并行模型&…

【Linux 11】进程地址空间

文章目录 🌈 Ⅰ 虚拟地址引入🌈 Ⅱ 虚拟地址空间🌈 Ⅲ 页表 (解释 fork() 的返回值既 > 0 又 0)🌈 Ⅳ 什么是地址空间🌈 Ⅴ 为什么要有地址空间 🌈 Ⅰ 虚拟地址引入 现在通过一段代码来观察一个现象&a…

初识指针(1)<C语言>

前言 指针是C语言中比较难的一部分,大部分同学对于此部分容易产生“畏难情结”,但是学习好这部分对C语言的深入很大的帮助,所以此篇主要以讲解指针基础为主。 指针概念 变量创建的本质就是在内存中申请空间,找到这个变量就需要地址…

交互中的“互”难以产生的原因

脑机交互技术的目标是通过分析和解读大脑活动,将其与特定的意图、指令或行为连接起来。通过训练和分析,可以建立起大脑活动与特定行为或意图之间的关联模型,从而实现脑机交互的应用,例如控制外部设备、传递信息等。然而&#xff0…

Python机器学习实验 Python 数据可视化

1.实验目的 掌握 Matplotlib 数据可视化的常用方法。 2.实验内容 1. 绘制鸢尾花数据集的特征分布图 说明:鸢尾花是单子叶百合目花卉,是一种比较常见的花,鸢尾花的品种较多。 鸢尾花数据集最初由 Edgar Anderson 测量得到,而后在…

深入学习和理解Django模板层:构建动态页面

title: 深入学习和理解Django模板层:构建动态页面 date: 2024/5/5 20:53:51 updated: 2024/5/5 20:53:51 categories: 后端开发 tags: Django模板表单处理静态文件国际化性能优化安全防护部署实践 第一章:模板语法基础 Django模板语法介绍 Django模…

每天五分钟深度学习:数学中常见函数中的导数

本文重点 导数是微积分学中的一个核心概念,它描述了函数在某一点附近的变化率。在物理学、工程学、经济学等众多领域中,导数都发挥着极其重要的作用。本文旨在详细介绍数学中常见函数的导数,以期为读者提供一个全面而深入的理解。 数学中常见的导数 常数函数的导数 对于常数…

ctfshow 框架复现

文章目录 web 466web 467web 468web469web 470web 471web 472web 473web 474web 475web 476 web 466 Laravel5.4版本 &#xff0c;提交数据需要base64编码 代码审计学习—Laravel5.4 - 先知社区 (aliyun.com) 用第二条链子 反序列化格式 /admin/序列化串base64<?php na…