自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 vscode中写markdown格式笔记的配置过程和相关语法

vscode中写markdown格式笔记的配置过程和相关语法

2022-07-27 22:49:59 985 1

原创 ubuntu18.04安装截图软件shutter

ubuntu 18.04下安装截图软件shutter

2022-07-10 16:08:19 690

原创 视觉SLAM十四讲笔记-11-1

回环检测

2022-06-14 23:43:50 508

原创 视觉SLAM十四讲笔记-10-2

视觉SLAM十四讲笔记-10-2

2022-06-10 23:25:40 560

原创 对‘g2o::VertexSE3::VertexSE3()’未定义的引用

对‘g2o::VertexSE3::VertexSE3()’未定义的引用

2022-06-10 22:31:52 363

原创 linux下vscode中配置git过程

linux下vscode中配置git过程

2022-06-10 11:26:23 3856

原创 视觉SLAM十四讲笔记-10-1

视觉SLAM十四讲笔记-10-1文章目录视觉SLAM十四讲笔记-10-110 后端10.1 滑动窗口滤波和优化10.1.1 实际环境下的 BA 结构10 后端10.1 滑动窗口滤波和优化10.1.1 实际环境下的 BA 结构带有相机位姿和空间点的图优化称为 BA,它能够有效地求解大规模的定位和建图问题。这在 SfM 问题中十分有用。但是在 SLAM 过程中,往往需要控制 BA 的规模,保持计算的实时性。......

2022-06-05 14:13:59 392

原创 视觉SLAM十四讲笔记-9-3

视觉SLAM十四讲笔记-9-39.3 实践:Ceres BABAL 数据集提供了若干个场景,每一个场景里的相机和路标点信息由一个文本文件给定。在本例中,使用 problem-16-22106-pre.txt文件作为例子。数据格式参考官网:linkData FormatEach problem is provided as a bzip2 compressed text file in the following format.<num_cameras> <num_points

2022-05-26 23:51:07 759

转载 找不到CSparse问题的解决方案

有关Could not find a package configuration file provided by “CSparse” with any of the following names:问题的解决方案在编译自己新建的有关g2o后端优化的程序时出现以下错误提示 CMake Error at CMakeLists.txt:10 (find_package): By not providing "FindCSparse.cmake" in CMAKE_MODULE_PATH this p

2022-05-24 19:49:45 859

原创 视觉SLAM十四讲笔记-9-2

视觉SLAM十四讲笔记-9-2文章目录视觉SLAM十四讲笔记-9-29.2 BA 与图优化9.2.1 投影模型和 BA 代价函数9.2.2 BA的求解9.2.3 稀疏性和边缘化9.2.4 鲁棒核函数9.2 BA 与图优化Bundle Adjustment(BA),是指从视觉图像中提炼出最优的 3D模型和相机参数(内参数和外参数)。考虑从任意特征点出来的几个光线(bundles of light rays),它们会在几个相机的成像平面上变成像素或是检测到的特征点。如果调整各相机姿态和各特征点的空间位置,

2022-05-24 17:26:54 732

原创 视觉SLAM十四讲笔记-9-1

视觉SLAM十四讲笔记-9-1后端主要目标1.理解后端的概念2.理解以 EKF 为代表的滤波器后端的工作原理3.理解非线性优化的后端,明白稀疏性是如何利用的4.使用 g2o 和 Ceres 实际操作后端优化从前面章节的学习中可以看到,前端视觉里程计能给出一个短时间内的轨迹和地图,但由于不可避免的误差累积,这个地图在长时间内是不准确的。所以,在视觉里程计的基础上,还希望构建一个尺度、规模更大的优化问题,以考虑长时间内的最优轨迹和地图。考虑到精度与性能的平衡,实际中存在许多不同的做法。9.1 概

2022-05-24 11:18:58 246

原创 ubuntu16.04下安装显卡驱动、CUDA、CUDNN等

ubuntu16.04下安装显卡驱动、CUDA、CUDNN等文章目录ubuntu16.04下安装显卡驱动、CUDA、CUDNN等一、ubuntu安装二、ubuntu16.04下安装显卡驱动三、安装CUDA四、安装CUDNN五、安装Anaconda3六、安装pycharm一、ubuntu安装制作启动盘,按f几进入bios,然后将secure boot设置为disable,然后在启动项排序将启动盘的usb放在第一位。(一定记住是UEFI:USB那个)保存,退出。(系统会直接进入安装界面)安装时分区只要

2022-05-22 16:33:06 1535

原创 视觉SLAM十四讲笔记-8-2

视觉SLAM十四讲笔记-8-28.4 直接法8.4.1 直接法的推导在光流中,会首先追踪特征点的位置,再根据这些位置确定相机的运动。这种两步走的方案,很难保证全局的最优性。那么能不能在后一步中,调整前一步的结果尼?例如,如果认为相机右转了 15∘15^\circ15∘,那么光流能不能以这个 15∘15^\circ15∘ 运动作为初始值的假设,调整光流的计算结果尼?直接法就是遵循这样的思路得到的结果。如下图,图片链接:link,考虑某个空间点 PPP 和两个时刻的相机。 PPP 的世界坐标为 [X,Y

2022-05-21 23:51:20 293

原创 视觉SLAM十四讲笔记-8-1

视觉SLAM十四讲笔记-8-1视觉里程计2主要目标:1.理解光流法跟踪特征点的原理;2.理解直接法是如何估计相机位姿的;3.实现多层直接法的计算。直接法是视觉里程计中的另一个分支,它与特征点有很大不同。虽然它还没有成为视觉里程计的主流,但经过近几年的发展,直接法在一定程度上已经能和特征点法平分秋色。8.1 直接法的引出上一章中介绍了特征点法估计相机运动的方法。特征点法至少存在以下缺点:1.关键点的提取与描述子的计算非常耗时;2.使用特征点时,忽略了除特征点以外的所有信息。只使用特征点丢弃

2022-05-20 11:53:12 767

原创 视觉SLAM十四讲笔记-7-5

视觉SLAM十四讲笔记-7-57.9 3D-3D:ICP这节来介绍 3D-3D 的位姿估计问题。假设有一组配对好的 3D 点(例如,对两幅 RGB-D 图像进行了匹配):P={p1,p2,...,pn},P′={p1′,p2′,...,pn′}P = \{p_1,p_2,...,p_n\},P' = \{p_1',p_2',...,p_n'\}P={p1​,p2​,...,pn​},P′={p1′​,p2′​,...,pn′​}现在,想要找一个欧氏变换 R,tR,tR,t,使得:∀i,pi=R

2022-05-19 11:37:37 346

原创 视觉SLAM十四讲笔记-7-4

视觉SLAM十四讲笔记-7-47.7 3D-2D:PnPPnP(Perspective-n-point) 是求解 3D 到 2D 点对运动的方法。它描述了当知道 n 个 3D 空间点以及它们的投影位置时,如何估计相机所在的位姿。2D-2D的对极几何方法需要 8 个或者 8 个以上的点对,且存在初始化、纯旋转和尺度的问题。然而,如果两张图像中的一张特征点的 3D 位置已知,那么最少需要 3 个点对(以及一个额外点验证结果)就可以估计相机运动。特征点的 3D 位置可以有三角化或者 RGB-D 相机的深度图像

2022-05-18 20:10:57 373

原创 slam14讲中RGBD相机深度图像中深度除以5000的含义

slam14讲中RGBD相机深度图像中深度除以5000的含义参考链接: link在看 slam14 讲中利用 RGB-D 相机采集的深度图时,发现深度计算时利用深度图中每个像素的深度除以了 5000,float dd1 = float(d1) / 5000.0;说明如下,这里的图片来自TUM数据集,用OpenNI kinect采集的图像,下面链接为TUM数据集的说明,链接:link可以看出,5000是一个比例系数:...

2022-05-18 12:35:21 393 2

原创 视觉SLAM十四讲笔记-7-3

视觉SLAM十四讲笔记-7-37.5 三角测量之前两节使用了对极几何约束估计了相机运动,也讨论了这种方法的局限性。在得到运动之后,下一步需要用相机的运动估计特征点的空间位置。在单目SLAM中,仅通过单张图像无法获得像素的深度信息,需要通过三角测量(Triangulation)(或三角化)的方法估计地图点的深度。三角测量是指,通过不同位置对同一个路标点进行观察,从观察到的位置推断出路标点的距离。三角测量最早由高斯提出并应用于测量学中。在SLAM中,主要用三角测量来估计相机像素点的距离。和上一节类似,

2022-05-17 16:04:12 353

原创 视觉SLAM十四讲笔记-7-2

视觉SLAM十四讲笔记-7-2估计相机运动上一节中讲了如何匹配点对,接下来要根据匹配好的点对估计相机的运动。1.当相机为单目相机时,只知道2D的像素坐标,因而问题是根据两组2D点估计运动。该问题可以用对极几何来解决。2.当相机为双目、RGB-D时,或者通过某种方法得到了距离信息,那么问题就是根据两组3D点估计运动。该问题一般用ICP来解决。3.如果一组为3D,一组为2D,即得到了一些3D点和它们在相机的投影位置,也能估计相机的运动。该问题一般通过PnP来求解。7.3 2D-2D:对极几何7.3

2022-05-17 00:34:46 567

原创 视觉SLAM十四讲笔记-7-1

视觉SLAM十四讲笔记-7-1视觉里程计-特征点法主要目标:1.理解图像特征点的意义,并掌握在单幅图像中提取特征点及多幅图像中匹配特征点的方法;2.理解对极几何的原理,利用对极几何的约束,恢复图像之间的摄像机的三维运动;3.理解PNP问题,以及利用已知三维结构与图像的对应关系求解摄像机的三维运动;4.理解ICP问题,以及利用点云的匹配关系求解摄像机的三维运动;5.理解如何通过三角化获得二维图像上对应点的三维结构。本节前面介绍了运动方程和观测方程的具体形式,并讲解了以非线性优化为主的求解方法。

2022-05-14 17:39:51 1100

原创 解决error: inlining failed in call to always_inline ‘int _mm_popcnt_u32(unsigned int)’:

调用_mm_popcnt_u32 (unsigned int __X)报错错误解决办法在CMakeLists.txt的CMAKE_CXX_FLAGS中添加-mfma, 如下:set(CMAKE_CXX_FLAGS "-std=c++14 -mfma")然后就不报错了。

2022-05-14 16:34:06 929

原创 视觉SLAM十四讲笔记-6-3

视觉SLAM十四讲笔记-6-36.3 实践:曲线拟合问题6.3.1 手写高斯牛顿法接下来用一个简单的例子来说明如何求解最小二乘问题,(最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小.最小二乘问题的主要思想就是求解未知参数 ,使得预测值与观测值之差(即误差,或者说残差)的平方和达到最小。)接下来将演示如何手写高斯牛顿法,然后介绍如何使用优化库求解此问题.对于同一

2022-05-09 23:05:31 934 1

原创 安装Ceres(解决报错)

安装Ceres(解决报错)具体的错误流程可以参考链接:link这里只展示可以成功安装的流程.1.安装依赖项:sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev结果发现会报:解决办法:link 和 link2.更新 gcc,g++利用下面代码查看编译器版本:gcc -vg++ -v将编译器默认版本改为

2022-05-09 23:03:29 838 1

原创 Ubuntu安装Ceres库-安装依赖时报错:E:无法定位软件包 libcxsparse3

Ubuntu安装Ceres库-安装依赖时报错:E:无法定位软件包 libcxsparse3参考链接: link问题在安装 Ceres 依赖项时,报错:E:无法定位软件包解决办法方法一:手动添加镜像源到sources.list1.执行下面指令打开sources.list文件sudo gedit /etc/apt/sources.list2.将此网址添加到sources.list文件中,并保存退出deb http://archive.ubuntu.com/ubuntu/ trusty ma

2022-05-09 21:02:42 1238 1

原创 ubuntu下安装mathpix

ubuntu下安装mathpix问题以前都是直接在 link 在线进行公式识别,但是今天发现网络不太好一直登录不上去,想着直接下载安装该软件安装步骤1.官网下载官网链接:link,去该链接下下载对应版本,这里下载下载下来后,是后缀变成了AppImage,这样直接双击安装发现会报错.接着右键点击MathpixXXXX.AppImage文件,选择属性,在属性栏中切换到权限。将只读修改为读写,对允许作为程序执行文件打勾然后双击安装就可以使用了.以后点击这进行截图就可以用了,然后将生

2022-05-08 20:49:56 670

原创 视觉SLAM十四讲笔记-6-2

视觉SLAM十四讲笔记-6-26.2 非线性最小二乘先来考虑一个简单的最小二乘问题:min⁡xF(x)=12∥f(x)∥22\min _{\boldsymbol{x}} F(\boldsymbol{x})=\frac{1}{2}\|f(\boldsymbol{x})\|_{2}^{2}xmin​F(x)=21​∥f(x)∥22​其中,自变量 x∈Rnx \in R^nx∈Rn,fff 是任意标量非线性函数 f(x):Rn↦Rf(x): R^n \mapsto Rf(x):Rn↦R.这里的系数 1

2022-05-08 19:59:37 783

原创 视觉SLAM十四讲笔记-6-1

视觉SLAM十四讲笔记-6-1主要目标:1. 理解最小二乘法的含义和处理方式;2. 理解高斯牛顿法(Gauss-Newton’s method),列文伯格-马夸尔特方法(Levenburg-Marquadt’s method)等下降策略;3. 学习Ceres库和g2o库的基本使用用法;在前几讲中,介绍了经典SLAM模型的运动方程和观测方程.现在已经知道,方程中的位姿可以由变换矩阵来描述,然后用李代数进行优化.观测方程由相机成像模型t...

2022-05-07 11:32:59 363

原创 视觉SLAM十四讲笔记-5-3

视觉SLAM十四讲笔记-5-35.4 实践:3D视觉5.4.1 双目视觉前面已经介绍了双目视觉的成像原理,现在从双目视觉的左右图像出发,计算图像对应的视差图,然后计算个各像素在相机坐标系下的坐标,它们将构成点云.mkdir stereoVisioncd stereoVisioncode .//launch.json{ // Use IntelliSense to learn about possible attributes. // Hover to view descri

2022-05-05 21:53:26 497

原创 视觉SLAM十四讲笔记-5-2

视觉SLAM十四讲笔记-5-25.3 实践:计算机中的图像5.3.1 OpenCV的基本使用用法参考链接:link安装 OpenCV,网站:在Ubuntu下,有两种安装方式:1.从源代码安装,指从OpenCV网站下载所有的OpenCV源代码,并在机器上编译安装,以便使用。好处是可以选择的版本比较丰富,而且能看到源代码,不过需要编译。还可以调整一些编译选项,匹配编程环境(例如,需不需要GPU加速等),还可以使用一些额外的功能。 源代码安装OpenCV 目前维护了两个主要版本,分为 OpenCV2.

2022-05-05 11:47:15 1148

原创 视觉SLAM十四讲笔记-5-1

视觉SLAM十四讲笔记-5-1主要目标:1. 理解针孔相机模型,内参与径向畸变参数;2. 理解一个空间点是如何投影到相机成像平面的;3. 掌握 opencv 的图像存储与表达方式;4. 学会基本难点摄像头标定方法;在前两章中主要介绍了"机器人如何表示自身位姿",在本章中主要讨论"机器人如何观测外部世界".5.1 相机模型相机将三维世界中的坐标点(单位为米)映射到二维平面(单位为像素)的过程能够用一个几何模型来描述.这个模型有很多种,其中最简单的称为针孔模型.5.1.1 针孔相机模型参考链

2022-05-05 09:28:34 463

原创 视觉SLAM十四讲笔记-4-3

视觉SLAM十四讲笔记-4-34.4 实践Sophus4.4.1 安装过程记录参考链接 link,首先下载 release版本的 fmt (链接: link)cd fmtmkdir buildcd buildcmake ..makesudo make install使用上述命令进行安装。然后安装 Sophus,git clone https://github.com/strasdat/Sophus.gitcd Sophus/mkdir buildcd buildcmake

2022-05-03 11:04:06 347

原创 工程在调用Sophus库时,报fmt相关错误

工程在调用Sophus库时,报fmt相关错误问题描述在程序中调用 “sophus” 库进行程序编写但在运行时,出现下图错误:解决办法这时参考链接:linklink在 CMakeLists.txt 中添加target_link_libraries(useSophus Sophus::Sophus)然后重新编译运行,就没有错误了。...

2022-05-02 17:12:22 766

原创 视觉SLAM十四讲笔记-4-2

视觉SLAM十四讲笔记-4-24.3 李代数求导与扰动模型4.3.1 BCH公式与近似形式使用李代数形式的一大动机是进行优化,而在优化过程中导数是非常必要的信息。在上一节中已经知道了 SO(3)SO(3)SO(3) 和 SE(3)SE(3)SE(3) 上李群和李代数关系,但是,当在 SO(3)SO(3)SO(3) 中完成两个矩阵乘法时,李代数中 so(3)so(3)so(3) 发生了什么改变尼?当 so(3)so(3)so(3) 上做两个李代数的加法时, SO(3)SO(3)SO(3)上是否对应

2022-05-02 12:00:25 292

原创 视觉SLAM十四讲笔记-4-1

视觉SLAM十四讲笔记-4-1主要目标:1.理解李群和李代数的概念,掌握 SO(3),SE(3) 与对应的李代数表示方式;2.理解BCH近似的意义;3.学会在李代数上的扰动模型;4.使用Sophus对李代数进行计算第三章中介绍了三维世界中刚体运动的描述方式,包括旋转矩阵、旋转向量、欧拉角、四元数、平移向量、变换矩阵等多种形式。但是在SLAM中,除了表示,还要对它们进行估计和优化。因为在SLAM中位姿是未知的,需要解决"什么样的相机位姿最符合当前观测数据"。一种典型的方式就是将其构建为一个优化问题

2022-04-29 22:34:01 413

原创 视觉SLAM十四讲笔记-3-03

视觉SLAM十四讲笔记-3-03参考链接: link,高翔,张涛,等. 视觉 SLAM 十四讲:从理论到实践[M]. 电子工业出版社, 2019.3.6 实践:Eigen几何模块3.6.1 Eigen几何模块的数据演示新建 useGeometry 文件夹,在该文件夹下打开 VS Codemkdir useGeometrycd useGeometrycode .然后在该文件夹下新建 launch.json 文件和 tasks.json 文件。直接参考这篇博客 link 中的步骤,进行

2022-04-28 23:05:03 333

原创 VS Code 中解决 C++ 代码编写时的爆红

VS Code 中解决 C++ 代码编写时的爆红现象在 VS Code 中编写 C++ 代码时,发现正常的 C++ 11 特性竟然标红,但是可以正常运行。这说明语法没有错,这是由于VS Code 根据编译参数,无法检测 C++11 相关语法,因此出现报红和 warning 等现象。解决办法然后在 setting.json中添加:"C_Cpp.default.compilerArgs": [ "-g", "${file}", "-std=c++11",

2022-04-28 21:37:52 4180

原创 安装Pangolin时报Eigen3::Eigen错误解决办法

安装Pangolin时报Eigen3::Eigen错误解决办法安装遇见的问题这里需要安装基于 OpenGL 的 Pangolin 库。slam 14 讲中是从 link 处下载的 Pangolin,我也用以下命令进行安装://安装依赖库sudo apt install libgl1-mesa-devsudo apt install libglew-devsudo apt install cmake//建议安装的库sudo apt install libpython2.7-devsudo

2022-04-28 19:21:52 1310 1

原创 视觉SLAM十四讲笔记-3-02

视觉SLAM十四讲笔记-3-02参考链接: link,高翔,张涛,等. 视觉 SLAM 十四讲:从理论到实践[M]. 电子工业出版社, 2019.3.3 旋转向量和欧拉角3.3.1 旋转向量前面 3.1 节、 3.2 节已经介绍了 旋转矩阵、变换矩阵。那描述一个6自由度的三维刚体运动是不是已经足够了尼?矩阵表示至少存在以下两个缺点:1.SO(3) 的旋转矩阵有 9 个量,但一次旋转只有 3 个自由度,因此这种表达方式是冗余的。同理,变换矩阵用 16 个量表示 6 自由度的变换, 存在冗余。2

2022-04-28 13:20:14 197

原创 视觉SLAM十四讲笔记-3-01

视觉SLAM十四讲笔记-3-01第三讲-三维空间刚体运动参考链接: link,高翔,张涛,等. 视觉 SLAM 十四讲:从理论到实践[M]. 电子工业出版社, 2019.主要目标:1.理解三维空间的刚体运动描述方式:旋转矩阵、变换矩阵、四元数和欧拉角2.掌握Eigen库的矩阵、几何模块的使用方法3.1 旋转矩阵和变换矩阵3.1.1点、向量和坐标系一个空间点的位置可以由3个坐标指定。但是,对于刚体,不仅有位置,还要有姿态。例如:相机可以看成三维空间的刚体,位置是指相机在空间中的哪个地方,姿态

2022-04-27 17:53:26 203

原创 VS Code 配置 leetcode 环境

VS Code 配置 leetcode 环境一、安装 leetcode 插件二、安装依赖环境通过该链接 link 下载linux 版本的 Node.js,下载完进行安装安装步骤://1.对下载的文件进行解压//2.创建目录mkdir /usr/local/lib/node//3.移动目录,例如在放置下载的Node.js的目录下,执行:mv node-v16.14.2-linux-x64 /usr/local/lib/node/nodejs//这里执行了两个步骤,首先将文件移动到nod

2022-04-27 01:02:06 500

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除