视觉SLAM十四讲 读书编程笔记 Chapter11 后端2

[学习笔记-SLAM篇]视觉SLAM十四讲ch11 冲冲冲,胜利就在眼前(虽然这本书大概会反复学习)。 视觉SLAM十四讲第11讲11.1 理论部分11.2 实践部分 第11讲 11.1 理论部分 回环检测,虽然说和视觉里程计有些联系,但一般还是比较独立的。 1)回环检测 回环检测一般用于消除累积误差,构建全局一致的轨迹和地图,也在重定位模块中得到重要应用。 一般有2种方法:① 基于里程计的几何关系,② 基于外观的几何关系。目前常用的是基于外观的方法,主要通过两幅图像的相似性确定回环检测关系。 计算图像的相似性,一般是计算图像的相似性评分。该评分主要与准确 阅读详情

位姿图

位姿图的意义

随着时间的流逝,空间点和相机位姿数据不断增多,BA的计算效率会不断下降。
实际上,经过若干次优化迭代之后,空间位置估计会收敛至一个值保持不动。因此,我们更倾向于在优化几次之后就把特征点固定住,只把它们看作位姿估计的约束,而不再实际地优化它们的空间位置。
我们可以构建一个只有轨迹的图优化,而位姿节点之间的边,可以由两个关键帧之间通过特征匹配之后得到的运动估计来给定初始值。不同的是,一旦初始估计完成,就不再优化那些路标点的位置,从而构建了位姿图:
在这里插入图片描述

位姿图的优化

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

实践:位姿图优化

g2o原生位姿图

用g2o_viewer打开预先生成的仿真位姿图,位于slambook/ch11/sphere.go中。

该位姿图是由g2o自带的create sphere程序仿真生成的。它的真实轨迹为一个球,由从下往上的多个层组成。每层为一个正圆形,很多个大小不一的圆形层组成了一个完整的球体,共包含2500个位姿点。其中的边分两种:层与层之间的边(回环)与t-1到t时刻的边(里程计)
在用g2o_viewer打开sphere.go时,出现如下错误:
在这里插入图片描述

Error in `g2o_viewer’: realloc(): invalid pointer: 0x00007fb65d576820

解决办法:
参考这篇文章:https://blog.youkuaiyun.com/sinat_34156619/article/details/86489199
(1)修改: 在FindQGLViewer cmake module中添加下面的加粗代码
find_library(QGLVIEWER_LIBRARY_RELEASE
NAMES qglviewer-qt4 QGLViewer-qt4 qglviewer QGLViewer QGLViewer2
PATHS /usr/lib
/usr/local/lib
/usr/lib/x86_64-linux-gnu # Ubuntu 16.04 and derivatives
/opt/local/lib
/sw/lib

find_library(QGLVIEWER_LIBRARY_DEBUG
NAMES dqglviewer dQGLViewer dQGLViewer2 QGLViewerd2
PATHS /usr/lib
/usr/local/lib
/usr/lib/x86_64-linux-gnu # Ubuntu 16.04 and derivatives
/opt/local/lib
/sw/lib
(2)安装: sudo apt-get install libqglviewer-dev-qt4。
(3)清除: 清除已安装的g2o

sudo rm -r /usr/local/lib/libg2o* /usr/local/include/g2o /usr/local/lib/g2o /usr/local/bin/g2o*

(4)重新编译g2o并安装:

mkdir build
cd build
cmake ..
make
sudo make install

然后,重新运行g2o_viewer sphere.go即可
运行结果:
加入高斯噪声的正球:
在这里插入图片描述
优化之后的结果:
在这里插入图片描述

g2o优化位姿图

在这里插入图片描述
在这里插入图片描述
用g2o_viewer查看运行结果:
在这里插入图片描述

李代数上的位姿图优化

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

视觉SLAM十四讲ch11实践遇到的问题及解决方案 一、安装 在编译之前先安装DBow3 git clone https://github.com/rmsalinas/DBow3.git 然后cmake流程编译安装 mkdir build cmake .. make -j8 sudo make install 安装结束 二、编译程序 创建build文件夹并进行编译 mkdir build cmake .. make -8 此时出现第一个错误 解决方法 将CMakeLists .txt中的set( DBoW3_LIBS "/us 阅读详情

相关推荐

《视觉SLAM十四讲 第二版》笔记及课后习题(第三讲)

读书笔记:三维空间刚体运动 本讲介绍视觉 SLAM 的基本问题之一:一个刚体在三维空间中的运动是如何描述的。我们当然知道这由一次旋转加一次平移组成。平移确实没有太大问题,但旋转的处理是件麻烦事。我们将介绍旋转矩阵、四元数、欧拉角的意义,以及它们是如何运算和转换的。 旋转矩阵 一些线性代数的基本知识。 坐标系: 坐标变化: 变换矩阵: 这是一个数学技巧:我们把一个三维向量的末尾添加 1,变成了...

weixin_43619346的博客 5992

【slam十四讲第二版】【课后习题】【第十一讲~回环检测】

视觉SLAM十四讲CH11代码解析及课后习题详解。

qq_45954434的博客 917

视觉SLAM十四讲 读书 笔记

此为视觉SLAM十四讲第二章的读书笔记 1、P24 第二章对于SLAM问题的由来以及建模的发展演化过程有一个比较清晰的介绍(想吐槽一下的就是:在一个研究领域刚兴起的时候,真的就是百花齐放啊,行业内对于同一个东西会有各种各样的描述,虽然每个作者的描述都没有错,但是对于初学者而言,今天在文章中看到一个“状态估计的不确定性研究”,明天看到一个“CML”或者“SLAM”,但是其实描述的是同一个东西,徒增了一些困惑),特别是对于初学者,对于SLAM问题到底是个啥?描述的很通俗易懂。 2、Ubuntu的安装 为了减少不

Steven的博客 856

视觉SLAM十四讲CH11代码解析及课后习题详解

在进行编译程序前,先需要安装DBoW,第二版的安装文件下载链接如下所示: https://github.com/rmsalinas/DBow3https://github.com/rmsalinas/DBow3下载完成后,安装方法很简单,将文件存放在你想存放的文件夹里面,进入DBoW-master文件夹: mkdir build cd build cmake .. make -j4 sudo make install 在编译CH11的时候,出现了下面的错误: make[2]:.

生活如此美好,致敬每一个热爱“热爱”的人! 5163

MATLAB实战:64QAM通信系统仿真全流程解析(附误码率优化技巧)

本文提供了一份完整的64QAM通信系统MATLAB仿真实践指南。从系统架构设计、发射端格雷码映射与脉冲成形,到信道建模、接收端同步与均衡,详细解析了全链路实现流程。文章重点分享了误码率曲线与理论值偏差的排查清单和深度优化技巧,帮助工程师构建工业级精度的仿真模型,解决高阶调制系统仿真的核心难题。

jenkins8butler的博客 404

《YOLOv8实例分割实战:训练自己的数据集 》(视频课程)

本课程将手把手地教大家使用labelme标注和使用YOLOv8训练自己的数据集,完成一个多目标实例分割实战项目。

bai666ai的博客 790

【读书笔记】《视觉SLAM十四讲(高翔著)》 第11讲

文章目录1、安装gtsam 本章程序编译运行方法: 1、安装gtsam 本章程序运行前需要安装gtsam,不然会有相关报错。 安装方法: 打开终端,输入以下命令下载gtsam: git clone https://bitbucket.org/gtborg/gtsam.git gtsam的安装文件下载后,会位于所打开终端对应的文件路径下。 安装gtsam之前先安装一项依赖库: sudo apt-g...

dahailuoa6的博客 1641

ArcGIS将以大西洋居中的世界地图以中国居中显示

ArcGIS将以大西洋居中的世界地图以中国居中显示 并进行经纬度格网的调整输出

jiekeheiguanglan的博客 5705

《视觉SLAM十四讲 第二版》笔记及课后习题(第一讲)

前言 之所以想要写这个系列的博客,是因为想要总结一下高博的《SLAM视觉十四讲第二版》的各章内容以及自己对书后习题的一些做法,也算是对自己学习过程的一个总结和回顾。那么,正式开始! 第一讲、预备知识 SLAM 是Simultaneous Localization and Mapping 的缩写,中文译作“同时定位与地图构建”。它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建...

weixin_43619346的博客 4459

手把手教你用Isaac Sim 8打造逼真光影效果:参数设置与场景应用

本文详细介绍了如何使用Isaac Sim 8打造逼真光影效果,涵盖基础参数设置、高级材质交互、专业级灯光造型技法以及复杂场景的灯光布局策略。通过实战案例和参数调优技巧,帮助用户提升虚拟场景的视觉表现,适用于数字孪生、虚拟仿真和影视特效等领域。

weixin_30836759的博客 82

西门子S7-1200PLC控制步进电机的组态编程和具体步骤

西门子S7-1200PLC控制步进电机的组态编程和具体步骤 硬件准备: 1) 一个S7-1214C DC/DC/DC,订货号:6ES7 214-1AG40-0XB0 2) 一个86系的步进电机+相应的驱动器 3) 一个20A的西门子24V电源(步进驱动器及plc电源) 4) Portal V15版本 组态及编程: 1) 创建一个验证项目,添加cpu( S7-1214C),双击“工艺对象”,选择“运动控制”的TO_PositioningAxis V6.0版本,如下图所示: 2) “确定”后,系统自动生成名

Robot_PLC_HMI_Automation 1万+

《视觉SLAM十四讲 第二版》笔记及课后习题(第二讲)

读书笔记: 这一讲算是全书的一个大纲,最关键的就是介绍了经典视觉SLAM框架。 小萝卜的例子 小萝卜要解决的问题分为两个: 要明白自身的状态 这就是location 要明白外在的环境 这就是mapping 对于视觉SLAM而言,熟悉各类相机的优缺点很有必要: SLAM问题的数学表述: 运动方程和观测方程: 经典视觉SLAM框架: 我们把整个视觉 SLAM 流程分为以下几步: 传感器...

weixin_43619346的博客 4037

Unreal5从入门到精通之一文搞懂Unreal的C++代码编译之谜

我们在开发Unreal项目时,如果时蓝图模板的项目,一般问题不大,因为当你修改完蓝图,点击编译Compile+保存Save,就可以继续开发了。这对于开发者来说也非常友好。但是,如果你使用的C++模板开发项目,代码编译一切都变得魔幻起来,IDE(VS/Rider)里面有编译,编辑器里面也有编译,有什么区别呢?我们来列举几个新手常碰到的问题。1.代码我明明新建了,编辑器里怎么看不到?2.昨天我新家的功能运行的好好的,今天怎么感觉还是老逻辑。或者昨天加的新代码,新蓝图不见了。

TxNet 1607

《视觉SLAM十四讲 第二版》笔记及课后习题(第十四讲)

读书笔记:SLAM:现在与未来 终于到本书最后一章了。也到了此系列博客的最后一篇! 我们前面的内容介绍了一个SLAM 系统中的各个模块的工作原理,这是研究者们多年的工作的结晶。目前,除了这些理论框架之外,我们也积累了许多优秀的开源SLAM 方案。不过,由于它们大部分实现都比较复杂,不适合初学者做为上手的材料,所以我们放到了本书的最后加以介绍。相信读者通过阅读之前的章节,应该能明白它们的基本原理。 ...

weixin_43619346的博客 3603

Electron - Electron failed to install correctly, please delete node_modules/electron and try install

Electron安装失败:Electron failed to install correctly, please delete node_modules/electron and try installing again,electron安装报错:Electron failed to install correctly...解决方案,Electron 未能正确安装,请删除 node_modules/electron,然后再次尝试安装,如何解决这个问题,手把手教你解决,在yarn dev时报错,electr

🏆 前端领域优质创作者 4370

OpenHarmony + AI:深度解析 Whisper.cpp 智慧语音系统级移植与 NAPI 封装实战

【代码】OpenHarmony + AI:深度解析 Whisper.cpp 智慧语音系统级移植与 NAPI 封装实战。

m0_67505153的博客 188

《视觉SLAM十四讲 第二版》笔记及课后习题(第四讲)

读书笔记:李群与李代数 上一讲,我们介绍了三维世界中刚体运动的描述方式,包括旋转矩阵、旋转向量、欧拉角、四元数等若干种方式。我们重点介绍了旋转的表示,但是在SLAM 中,除了表示之外,我们还要对它们进行估计和优化。因为在SLAM 中位姿是未知的,而我们需要解决什么样的相机位姿最符合当前观测数据这样的问题。一种典型的方式是把它构建成一个优化问题,求解最优的R; t,使得误差最小化。 如前所言,旋转矩...

weixin_43619346的博客 2679

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【读书笔记】《视觉SLAM十四讲(高翔著)》 第2讲

读书笔记(第2讲) 实践部分(第2讲) 2.4节是本讲的实践部分,涉及到的操作都很简单、很基础。但是,对于第一次接触Ubuntu系统的人而言,尽管书上的操作步骤写的十分详细,依旧可能会觉得一头雾水。此处记录本人的调试过程。 2.4.1 安装Linux(Ubuntu)操作系统 本小节讲述的是操作系统的安装。 2.4.2 Hello SLAM 本小节:用编译器g++来编译程序。 对应例程:...

dahailuoa6的博客 1549

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

《视觉SLAM十四讲 第二版》笔记及课后习题(第七讲)

读书笔记:视觉里程计1

weixin_43619346的博客 4539

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

《视觉SLAM十四讲 第二版》笔记及课后习题(第六讲)

读书笔记:非线性优化 在前面几章,我们介绍了经典SLAM 模型的运动方程和观测方程。现在我们已经知 道,方程中的位姿可以由变换矩阵来描述,然后用李代数进行优化。观测方程由相机成像模型给出,其中内参是随相机固定的,而外参则是相机的位姿。于是,我们已经弄清了经典SLAM 模型在视觉情况下的具体表达。 然而,由于噪声的存在,运动方程和观测方程的等式必定不是精确成立的。尽管相机可以非常好地符合针孔模型,但...

weixin_43619346的博客 2986

《视觉SLAM十四讲 第二版》笔记及课后习题(第十二讲)

读书笔记:建图

weixin_43619346的博客 3109

【读书笔记】《视觉SLAM十四讲(高翔著)》 第13讲

文章目录工程文件一:dense_monocular(单目稠密地图)工程文件二:dense_RGBD(点云地图 & 八叉树地图) 本博客的内容是本章程序编译运行方法,记录调通本章程序的过程、处理遇到报错的解决方法。 **本章的例程共2个工程文件:**工程文件一:dense_monocular(单目稠密地图);工程文件二:dense_RGBD(点云地图 & 八叉树地图) 本章程序共3...

dahailuoa6的博客 2966

视觉SLAM十四讲 读书编程笔记 Chapter 1&2

视觉SLAM十四讲 读书编程笔记 Chapter 1&21.有线性方程组Ax=b,若已知A,b,需要求解x,该如何求解?这对A和b有哪些要求?2.单目SLAM有哪些特性?3.双目相机有哪些特性?4.整体视觉SLAM流程图5.视觉SLAM流程图的一些理解6.SLAM问题的数学表达 1.有线性方程组Ax=b,若已知A,b,需要求解x,该如何求解?这对A和b有哪些要求? 答:x=A-1b,其中A...

wolfcsharp的博客 899

《视觉SLAM十四讲 第二版》笔记及课后习题(第十讲)

读书笔记:后端2 上讲我们重点介绍了以BA 为主的图优化。BA 能精确地优化每个相机位姿与特征点位置。不过在更大的场景中,大量特征点的存在会严重降低计算效率,导致计算量越来越大以至于无法实时化。本讲介绍两种在更大场景下使用的后端优化方法:位姿图。 位姿图(Pose Graph) Pose Graph即是省略了特征点的Bundle Adjustment。 Pose Graph 示意图。当我们不再优化...

weixin_43619346的博客 1948

视觉SLAM十四讲(2):初识SLAM

这一讲主要介绍视觉SLAM的结构,并完成第一个SLAM程序:HelloSLAM。 目录 2.1 小萝卜的例子 单目相机 双目相机 深度相机 2.2 经典视觉SLAM框架 2.3 SLAM问题的数学表述 2.4 编程实践 Hello SLAM 使用cmake 使用库 【高翔】视觉SLAM十四讲 2.1 小萝卜的例子 这一节高翔博士首先介绍了自己组装的“小萝卜”机器人,小萝卜要想具有自主运动的能力,首先要知道自身的姿态,然后是了解外界的环境。这两类问题都需要使用传感器,视觉SL.

10点43的博客 3418

【读书笔记】《视觉SLAM十四讲(高翔著)》 第3讲

在上讲中,我们讲解了视觉 SLAM 的框架与内容。本讲将介绍视觉 SLAM 的基本问 题之一: 一个刚体在三维空间中的运动是如何描述的。

dahailuoa6的博客 773
上一篇: 视觉SLAM十四讲 读书编程笔记 Chapter10 后端1
下一篇: 视觉SLAM十四讲 读书编程笔记 Chapter12 回环检测
Leo-Ma
博客等级 码龄11年 1701粉丝 124原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值