《视觉十四讲》例程运行记录(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
到此,没有什么报错就安装成功了。
相关文章:
《视觉十四讲》例程运行记录(1)—— 课本源码下载和3rdparty文件夹是空的解决办法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、第二版十四讲课本源码下载1. 安装git工具 二、Pangolin下载和安装1. 源码下载2. Pangolin的安装(1) 安装依赖项(2) 源码编译安装(2) 测试是否安装成功 二、…...
VLM与基础分割模型的联合使用
最近做的项目里有涉及大模型,里面有一部分的功能是: 将图片输入VLM(视觉语言模型,我使用的是llava),询问图中最显著的物体,将其给出的答案作为基础分割模型(我使用的是Grounded-SAM)的text prom…...
JS数组去重的方法
目录 1、includes 2、indexOf 3、Set结合Array.from 4、filter 5、reduce 6、使用双重for循环 介绍一下数组常用的去重复方法 以以下数组为例子来介绍,一维的数字类型数组: const arr [1, 2, 2, 2, 3, 1, 6, 4, 4, 6, 5, 7] 1、includes funct…...
Go实战训练之Web Server 与路由树
Server & 路由树 Server Web 核心 对于一个 Web 框架,至少要提供三个抽象: Server:代表服务器的抽象Context:表示上下文的抽象路由树 Server 从特性上来说,至少要提供三部分功能: 生命周期控制&…...
C#中接口设计相关原则
在C#中,接口(Interface)是一种引用类型,它定义了一个契约,指定了一个类必须实现的成员(属性、方法、事件、索引器)。接口不提供这些成员的实现,只指定成员必须按照特定的方式被实现。…...
Pytorch学习笔记——卷积操作
一、认识卷积操作 卷积操作是一种数学运算,它涉及两个函数:输入函数(通常是图像)和卷积核(也称为滤波器或特征检测器)。卷积核在输入函数上滑动,将核中的每个元素与其覆盖的输入函数区域中的对应…...
探索鸿蒙开发:鸿蒙系统如何引领嵌入式技术革新
嵌入式技术已经成为现代社会不可或缺的一部分。而在这个领域,华为凭借其自主研发的鸿蒙操作系统,正悄然引领着一场技术革新的浪潮。本文将探讨鸿蒙开发的特点、优势以及其对嵌入式技术发展的深远影响。 鸿蒙操作系统的特点 鸿蒙,作为华为推…...
chrome extension插件替换网络请求中的useragent
感觉Chrome商店中的插件不能很好的实现自己想要的效果,那么就来自己动手吧。 本文以百度为例: 一般来说网页请求如下: 当前使用的useragent是User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safar…...
PHP基础【介绍,注释,更改编码,赋值,数据类型】
源码 <?php //单行注释 /* 多行注释 *///通过header()函数发送http头的请求信息用来指定页面的字符集编码 header("Content-type:text/html;Charsetutf-8"); //告诉浏览器,当前页面的内容类型是HTML,并且页面内容使用的是UTF-8编码。//ph…...
ASP.NET小型证券术语解释及翻译系统的设计与开发
摘 要 在系统设计上,综合各种翻译类型网站优缺点,设计出具有任何使用者都可添加术语信息的且只有管理员能够实现术语修改及删除等独特方式的术语查看管理系统。此方式能够使术语量快速增大,并且便于使用者及管理员操作,满足相互…...
硬件知识积累 音频插座的了解,看音频插座的原理图来了解音频插座的引脚。
1. 音频接口 音频插座是一种用于连接音频信号线路的电子元件,常见于音频设备(如音响、耳机、话筒等)中。它的主要作用是将电子信号转化为声音信号,以满足人们对于音乐、电影、游戏等方面的需求。 根据插头形状的不同,音…...
error LNK2001: 无法解析的外部符号 “__declspec(dllimport) public: __cdecl ......
运行程序时,报如上图所示错误,其中一条是: ReflectionProbe.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl osg::Object::Object(bool)" (__imp_??0ObjectosgQEAA_NZ) 报这个错误一般是因为…...
邮箱Webhook API发送邮件的性能怎么优化?
邮箱Webhook API发送邮件的步骤?如何用邮箱API发信? 随着业务规模的扩大,如何高效地通过邮箱Webhook API发送邮件,成为了许多企业面临的关键问题。下面,AokSend将探讨一些优化邮箱Webhook API发送邮件性能的方法。 邮…...
并发编程实现
一、并行编程 1、Parallel 类 Parallel类是System.Threading.Tasks命名空间中的一个重要类,它提供数据并行和任务并行的高级抽象。 For和ForEach Parallel类下的For和ForEach对应着普通的循环和遍历(普通的for和foreach),但执行时会尝试在多个线程上…...
基于EBAZ4205矿板的图像处理:12图像二值化(阈值可调)
基于EBAZ4205矿板的图像处理:12图像二值化(阈值可调) 我的项目是基于EBAZ4205矿板的阈值可调的图像阈值二值化处理,可以通过按键调整二值化的阈值,key1为阈值加1,key4为阈值减1,key2为阈值加10,key5为阈值…...
人大金仓数据库报com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM“ Password 认证失败
com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM” Password 认证失败 解决办法: 问题在于用户权限只不足,相关配置文件在一般在 /data/sys hba.conf,修改IPV4 local connections选项中的改为trust。...
文件加密软件哪个好?文件加密软件排行榜前十名(好用软件推荐)
文件加密软件哪个好?这是许多个人和企业用户在面临数据保护需求时所关心的问题。随着数字化时代的推进,数据安全问题日益凸显,文件加密软件成为了保护数据安全的重要手段。本文将为您介绍当前市场上排名前十的文件加密软件,帮助您…...
Netty的第一个简单Demo实现
目录 说明需求ClientServer写法总结 实现运行 说明 Netty 的一个练习,使用 Netty 连通 服务端 和 客户端,进行基本的通信。 需求 Client 连接服务端成功后,打印连接成功给服务端发送消息HelloServer Server 客户端连接成功后࿰…...
K8S 哲学 - 服务发现 services
apiVersion: v1 kind: Service metadata:name: deploy-servicelabels:app: deploy-service spec: ports: - port: 80targetPort: 80name: deploy-service-podselector: app: deploy-podtype: NodePort service 的 endPoint (ep) 主机端口分配方式 两…...
Springboot工程创建
目录 一、步骤 二、遇到的问题及解决方案 一、步骤 打开idea,点击文件 ->新建 ->新模块 选择Spring Initializr,并设置相关信息。其中组为域名,如果没有公司,可以默认com.example。点击下一步 蓝色方框部分需要去掉,软件包…...
如何在广告泛滥的时代找到纯粹的音乐净土?铜钟音乐的极简听歌方案
如何在广告泛滥的时代找到纯粹的音乐净土?铜钟音乐的极简听歌方案 【免费下载链接】tonzhon-music 铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资源丰富, 体验独特!(密码重置功能已回归) 项目地址: https://gitcode.com/Gi…...
AgentScope Java:阿里开源的多智能体框架,让AI应用开发变得简单
为什么我们需要Agent框架? 如果你开发过AI应用,一定遇到过这些问题: LLM只能生成文本,无法查询数据库、调用API、执行计算多轮对话需要管理上下文,但手动维护消息历史太繁琐复杂的任务需要多步推理,简单的…...
python-flask-djangol框架的减肥健身养生人士饮食营养管理系统
目录 技术选型与框架搭建核心功能模块设计数据模型设计示例(Django ORM)算法实现要点部署与扩展 项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 技术选型与框架搭建 Python Flask/Django框架均适合开发…...
RevokeMsgPatcher深度解析:二进制补丁技术如何永久保存即时通讯消息
RevokeMsgPatcher深度解析:二进制补丁技术如何永久保存即时通讯消息 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https…...
3步打造永不丢失的聊天记录:RevokeMsgPatcher革新性防撤回技术全解析
3步打造永不丢失的聊天记录:RevokeMsgPatcher革新性防撤回技术全解析 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: http…...
终极视频修复指南:如何用Untrunc拯救你的损坏视频文件
终极视频修复指南:如何用Untrunc拯救你的损坏视频文件 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否曾经遇到过这样的情况?珍贵的家…...
SLAM Toolbox完整指南:从零开始掌握机器人定位与建图技术
SLAM Toolbox完整指南:从零开始掌握机器人定位与建图技术 【免费下载链接】slam_toolbox Slam Toolbox for lifelong mapping and localization in potentially massive maps with ROS 项目地址: https://gitcode.com/gh_mirrors/sl/slam_toolbox 想象一下&a…...
文脉定序在Milvus向量库中的应用:Hybrid Search后重排序增强方案
文脉定序在Milvus向量库中的应用:Hybrid Search后重排序增强方案 在构建智能检索系统时,我们常常遇到一个尴尬的局面:系统能“搜得到”一堆结果,但最相关、最准确的答案却不一定排在最前面。这就像在图书馆里找到了正确的书架&am…...
OpenClaw+ollama-QwQ-32B自动化写作:从指令到公众号草稿全流程
OpenClawollama-QwQ-32B自动化写作:从指令到公众号草稿全流程 1. 为什么需要自动化写作助手 作为一个技术博主,我每周都要产出2-3篇原创文章。最痛苦的环节不是写作本身,而是那些重复性的准备工作:收集资料、整理格式、调整排版…...
Qwen3-32B-Chat中文优化:提升OpenClaw本地任务理解准确率
Qwen3-32B-Chat中文优化:提升OpenClaw本地任务理解准确率 1. 为什么需要优化本地模型的中文理解能力 去年冬天,当我第一次尝试用OpenClaw自动化整理电脑上的文件时,遇到了一个令人哭笑不得的场景。我对它说"把上周下载的PDF文件按日期…...
