自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 IMU姿态解算,从IMU数据中计算旋转、速度、位置,IMU测量的原理

IMU姿态解算,IMU测量数据介绍,从IMU中解算出旋转、速度、位移

2023-09-17 17:34:57 5793 6

原创 LOAM误差函数、代价函数的雅克比矩阵详细推导,点到线和点到面误差函数求导

LOAM对于激光SLAM的发展起到了举足轻重的作用,他提出了点到线和点到面的误差函数,通过优化的方法,得到了非常不错的激光里程计效果。对于代价函数求解使用的是欧拉角的方式进行求导解算的。一方面由于未采用矩阵的形式进行推导,导致整个推导过程非常复杂,另一方面在代码实现中,有大量的中间运算过程。本篇博客将采用更加简洁的方式去推导出代价函数的雅克比矩阵。

2022-11-03 16:31:26 1633 7

原创 【附C++源代码】模型预测控制(MPC)公式推导以及算法实现,Model Predictive control介绍

本篇博客主要集中在对MPC的理解以及应用!这篇博客可以作为你对MPC控制器深入研究的一个开始,起到抛砖引玉,带你快速了解其原理的作用。这篇博客将介绍一下模型预测控制器(MPC)的公式、推导以及C++代码的实现。主要内容如下:1. 从一个简单的线性系统开始,对MPC控制器公式进行推导;2. 根据推导出来的结论,使用C++对MPC进行实现;3. 通过实验找到参数对该系统的影响。

2022-02-07 10:53:49 13261 9

原创 A star与RRT搜索的速度和效率对比,A satr VS Rapidly Exploring Random Trees

在阅读最近的几年的路径规划相关论文时,发现很多文章对于路径搜索都采用了RRT(Rapidly Exploring Random Trees)系列算法。如果你对RRT没有进行深入地代码实现和实验对比,你可能会有这样的疑惑,这种随机撒点的方式搜索路径,跟买彩票一样,运气差的话可能要很久,就算运气好也不会快到哪儿去?至少我曾今也有这样的想法,哈哈!这里我将通过实验对A star和RRT进行一些探索!

2021-12-17 20:53:25 4206 13

原创 【附源码和详细的公式推导】Minimum Snap轨迹生成,闭式求解Minimum Snap问题,机器人轨迹优化,多项式轨迹路径生成与优化

介绍Minimum Snap轨迹生成方法的由来以及用处;详细推导Minimum Snap轨迹生成的数学原理;对Minimum Snap问题进行闭式求解;使用C++代码进行算法复现,达到甚至超过论文中的实验结果。

2021-12-11 18:55:58 16748 52

原创 解决Ardupilot+gazebo+mavros在仿真状态下无人机能解锁,但是不能起飞的问题

1. 问题在进行无人机仿真时,我采用的是Ardupilot+gazebo+mavros和Ubuntu 18.04环境。在通过编写ros程序控制无人机在gazebo中起飞时,无人机能解锁,它的桨叶可以旋转,但是不能执行起飞动作,无人机不停地解锁然后又上锁,始终不能起飞。查阅了网络上的各种资料和博客大家给出来的代码都是如下代码,该代码是px4固件官网提供的代码,由于我使用的是ardupilot环境,所以并不能成功起飞。#include <ros/ros.h>#include <geo

2021-08-09 11:30:07 3129 4

原创 【附源码】布雷森汉姆直线算法(bresenham‘s line algorithm)

1.布雷森汉姆直线算法简介我们在纸上画直线时,只需要定一个起点和终点,然后把两点连接起来就是一条直线,你将会得到一条笔直的直线。但是,这个简单的过程,在计算机上却并不容易。首先计算机的屏幕是一个一个的离散的led。如下图,每一个白块都是一个灯管,当我们绘制一条直线时,就需要判断在这条直线上,需要点亮哪些灯管来模拟这条直线。布雷森汉姆直线算法就是为了解决这样的问题。2.算法流程2.1 直观理解布雷森汉姆直线算法我们现在正式开始进入布雷森汉姆直线算法的探索。假设我们要绘制如上图中所示直线f(x,

2021-07-16 15:40:40 4788 3

原创 ICP和NDT匹配算法精度、速度和鲁棒性对比

注意:如下实验是针对里程计任务而进行的,默认是帧间匹配,而对于帧到局部地图匹配情况下的长时间下的轨迹精度对比,请参考我的这篇博客:【附优化方法的ICP源码】ICP与NDT匹配算法精度对比,以及手动实现的ICP和基于优化方法的ICP精度对比1.实验条件前提:以下ICP与NDT算法均使用的是PCL 1.8库中提供的实现方法,它们可以设置的参数较多,这里只探讨那些最常用的参数。数据:杭州海创园区的室外点云数据,其效果如下:后续点云的匹配,均以该点云为基础,对其增加平移、旋转,来模拟各种不同的状态,以观

2021-04-16 19:51:06 11282 29

原创 【附源码+代码注释】误差状态卡尔曼滤波(error-state Kalman Filter),扩展卡尔曼滤波,实现GPS+IMU融合,EKF ESKF GPS+IMU

卡尔曼滤波器在1958年被卡尔曼等人提出之后,经历了60多年,这期间有各种变体被提出来,但是核心的思想并没有变化。这其中比较突出的工作有,EKF、IEKF、ESKF、UKF等等。它们的方程有一些差异,但是用法基本区别不大,只要学会应用其中的一种,别的就问题不大了。卡尔曼滤波器的公式推导,并不重要!卡尔曼滤波器的公式推导,并不重要!卡尔曼滤波器的公式推导,并不重要!

2021-03-04 14:50:04 31370 181

原创 非线性优化库g2o使用教程,探索一些常见的用法,以及信息矩阵、鲁棒核函数对于优化的结果的影响

本篇博客将总结一些常见的g2o用法。通过这篇内容你将至少可以大致掌握g2o的用法,以及一些可以使优化结果更好的小技巧,包括鲁邦和函数、信息矩阵的用法等等。注意:本篇博客的重点是介绍g2o,所以不会去为非线性化方法做太多的铺垫,因此要想理解以下代码和思路,需要你具备一些非线性优化的理论知识,至少要明白什么是非线性优化,它主要是为了做什么,它是怎么实现的?我们先来看第一个例子:曲线拟合1.曲线拟合图1我们现在有以下任务要求:找到一条函数曲线去拟合上图中的这些散点,使得所有点均匀的分散在这个拟合曲线的

2021-01-03 18:15:56 4902 5

原创 华硕ROG玩家国度安装Ubuntu20.04,安装过程一直卡着不动,以及快捷键不能用,不能调节键盘亮度等问题的解决办法,另附上安装Ubuntu18.04的方法

华硕ROG玩家国度是一个游戏本,用的硬件都比较新,所以安装Ubuntu18.04、Ubuntu20.04、Ubuntu20.1基本上都会面临一些问题,包括驱动或者安装过程不能进行等问题。我一共测试了上述三个版本的系统,最终选择了Ubuntu20.04的系统。主要原因是Ubuntu18.04比较旧,不能安装rog的内核驱动,所以rog的快捷键也就无法使用(也有办法解决这些问题!),另外感觉18.04没有20好看。而不选择Ubuntu20.1的原因是,它不支持ROS1,只能安装ROS2,所以我旧没有选择它。

2020-11-29 01:42:36 9938 1

原创 【附优化方法的ICP源码】ICP与NDT匹配算法精度对比,以及手动实现的ICP和基于优化方法的ICP精度对比

1.主要内容本篇博客主要对比Iterative Closest Point(ICP)和Normal Distribution Transform(NDT)两种匹配算法的精度。分别依赖ICP和NDT作为匹配方法,生成前端里程计,没有回环检测,没有优化。2.实验条件①. 所用数据集: KITTI 00数据②. 计算机平台处理器:Intel® Core™ i7-10510U CPU @ 1.80GHz × 8内存:8G③. ICP和NDT算法来自PCL 1.8库④. 精度评估工具evo3

2020-11-27 00:16:56 5069 47

原创 开源SLAM框架学习——OpenVSLAM源码解析:全局优化模块(global optimization module):回环检测、pose-graph优化、global-BA优化

这篇博客主要介绍OpenVSLAM的全局优化模块(global_optimization_module),该模块是单独运行在一个线程中的。它主要执行的工作是:SLAM的回环检测,以及回环成功之后的回环矫正,还包括紧随着回环检测成功之后的pose graph优化和全局的BA优化。1.全局优化模块入口说是全局优化模块,其实也就是一个普通的类。对于类,第一步肯定就是实例化构造对象,全局优化模块的实例化过程是在system.cc代码中的system的构造函数处,对应的代码的如下:global_optimize

2020-11-04 18:31:25 2401 5

原创 词袋模型:DBoW原理介绍以及使用方法

1. 词袋模型介绍词袋模型在很多方面都有应用,其的原理也很容易理解:有以下一些句子:1. my name is jack!2. I like to eat apples!3. I am a student!4. I like to take pictures!我现在交给你一个任务,从上面四句话中找到一句和下面这句话最相似的一句(这里认为同样的单词越多越相似):I am a boy!请原谅我,我并没有侮辱你智商的意思! 你几乎想都没想就说出了和第3句最像。因为上面这个例子比较简单。但是

2020-10-31 19:26:40 6350 5

原创 激光slam坐标系和视觉slam坐标系对齐,两个slam系统之间坐标对齐,轨迹对齐,时间戳对齐

1. 面临的问题两个独立的SLAM系统中,常常面临一个问题,那就是一个系统上的某一个pose,对应到另一个系统中是在哪里?紧耦合的SLAM系统,不存在这个问题,比如激光雷达和相机融合的SLAM系统,它们不存在上述问题!造成这种关系不确定的最主要原因是:两个系统各自有自己的一个参考系。如果它俩在一个统一的世界参考系下,那么就不存在上述的问题。我们立马想到的一个办法是,我让两个SLAM系统同时开机运行,那么开机运行那一刻的原点不就是它们的坐标原点了嘛!但是你能保证两个SLAM系统都是一开机运行就能初

2020-10-16 15:14:16 5350 4

原创 解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 13 讲 建图

这一讲拖到现在才开始写,其中一个主要的原因是建图部分的内容,一方面比较容易理解,另一方面它在实际的工程中应用较少。工程中很少对视觉构建的地图进行复用,其原因主要有(来自我自己的经验):① 地图的精度较低,多数难以达到导航和定位的要求;② 视觉对光线比较敏感,构建的地图难以较好复用,有时早上建图,下午定位成功率就很低;③ 地图体积大,内存占用率高。视觉slam会维护一个比较复杂的地图数据结构,而这些数据如果不加处理,实际上是很占用资源的,对比cartographor这种激光slam的地图,同样场景下

2020-10-03 23:14:33 1335

原创 开源SLAM框架学习——OpenVSLAM源码解析: 第二节 文件组织结构

OpenvSLAM源码解析的博客写完第一篇《开源SLAM框架学习——OpenVSLAM源码解析: 第一节 安装和初探》之后,没想到过了三个月才写第二篇。主要是最近工作确实很忙,现在正在做一个基于全景相机的视觉定位的项目,但是整个项目就我一个人在做。不过幸运的是,这个项目目前已经获得了一些成果了,往后有时间我会在博客中与大家分享。趁着在跑实验数据的间隙开始我OpenVSLAM源码解析的第二篇。########################### 我是分割线 ###################

2020-09-28 17:09:33 2168 5

原创 json库nlohmann简单使用教程,快速入手,完成json对象的构建,从STL构造json,以及序列化和反序列化操作,二进制写入、读取本地数据

首先你可能需要了解一下JSON格式,它实际上还是比较简单的一种格式,理解起来还是很容易的,如果你对它不熟悉,可以参考这份教程快速学习一下:JSON 教程1. 定义JSON数值类型如果你想要创建一个如下这样形式的JSON对象:{ "pi": 3.141, "happy": true, "name": "Niels", "nothing": null, "answer": { "everything": 42 }, "list": [1, 0, 2], "obje

2020-09-25 18:13:54 22016 5

原创 你真的了解cv::Mat, const cv::Mat, const cv::Mat&, cv::Mat&的区别吗?

Mat作为OpenCV中使用率最高的类,它的数据包括两个部分:矩阵头和指向像素矩阵的指针。矩阵头:描述像素矩阵,主要包括矩阵的尺寸、存储方式、存储地址等,矩阵头的大小固定。矩阵指针:矩阵指针所指对象代表了图像本身,其尺寸会根据图像的不同而不同。像素矩阵一般比矩阵头大几个数量级,因此,拷贝图像会产生很大的计算量。深拷贝和浅拷贝的区别:cv::Mat的深拷贝和浅拷贝的却别就在于是否重新拷贝一份数据指针指向的数据?浅拷贝只是重新拷贝Mat的矩阵头,并不拷贝数据指针指向的数据,也就是说新生成的和之前的共

2020-09-11 17:11:06 3165 1

原创 超定方程的求解、最小二乘解、Ax=0、Ax=b的解,求解齐次方程组,求解非齐次方程组(推导十分详细)

本篇主要介绍的是超定方程组的求解,如果你不想看繁琐的推导过程,你可以直接看红字部分的结论!1. 齐次线性方程组 Ax = 0对于方程Ax=0\bm A \bm x = 0Ax=0,在我们实际的使用中,多数情况下只考虑方程数量多于未知元素的情形——超定方程组。通过数学表示,可以将超定方程表示为:Ax=0\bm A \bm x = 0Ax=0,A\bm AA是m×nm \times nm×n,且m>nm > nm>n第一种解法:(求导)首先,要求解Ax=0\bm A \bm x =

2020-08-03 15:43:06 11708 8

原创 3D绘图程序库Pangolin安装以及快速入门,使用教程介绍详细,使用Pangolin绘制点云、直线、轨迹等,设置按钮,进行多窗口、多线程操作,以及Pangolin怎么使用等等

1. Pangolin介绍常见的3D绘图的程序库有很多,MATLAB、Python的Matplotlib、OpenGL。在Linux上常用的一个3D绘图库是Pangolin,它是基于OpenGL完成的,它不但支持OpenGL的基本操作,还提供了一些GUI的功能。对于在SLAM的学习中,它是必不可少的3D显示工具。2.安装(1) 安装依赖库sudo apt install libgl1-mesa-devsudo apt install libglew-devsudo apt install cma

2020-07-08 18:56:35 8763 13

原创 开源SLAM框架学习——OpenVSLAM源码解析: 第一节 安装和初探

最近刚好有机会需要学习一下OpenVSLAM,在此记录一下我的学习过程,一方面可以加强自己的记忆和理解,另一方面可以帮助一下有需要的同学。我打算通过介绍算法原理和解析对应代码的方式,将OpenVSLAM完整地学习一遍。通过这种方式我觉得我可以向你分享特征点视觉SLAM的一些常用算法,帮助你理解一套完整的视觉SLAM系统是怎么运行起来的。今天就先开始第一节吧!1. OpenVSLAM1.1 介绍论文链接: OpenVSLAM: A Versatile Visual SLAM Framework 

2020-06-29 17:35:18 7905 10

原创 已知sim3相似变换矩阵,如何求解出R, s, t ,从sim3相似变换矩阵中恢复和获得尺度、旋转、平移

如果已知如下这种sim3相似变换矩阵,如何求解出R, s, t ?[0.2373450.0486276−0.366644−0.1356020.04862760.0460356−0.0878448−0.0324891−0.366644−0.08784480.6967210.2449630001]\begin{bmatrix}0.237345 &0.0486276 & -0.366644 &-0.135602\\ 0.0486276 & 0.0460356 &-

2020-06-19 20:15:19 1031

原创 Intel realsense T265双目+IMU传感器使用方法介绍,以及如何快速上手编写realsense的代码,进行简单地开发,积分出位姿,使用opencv显示双目图像

realsense T265是一款很不错的双目+IMU传感器。体积非常小巧,而且IMU精度表现还挺不错的。阅读本篇内容你将学会使用realsense T265传感器,而且还能学会使用它进行简单的程序开发。1.realsense T265传感器输出的数据双目摄像头可以采集到848X800分辨率下30FPS的鱼眼图像数据;IMU数据(包括6DoF的Pose,3DoF的加速度计,3DoF的陀螺仪)而且以上数据的出厂时全都进行了标定,并且都保存在传感器中,你可以通过传感器的输出很容易获得内部的标定数

2020-05-29 19:37:51 8616 16

原创 超简单vim常用插件配置,简单但是全都很实用,看代码、查文件、美化之必备

1. 几句使用vim的感悟vim作为鼎鼎大名的文本编辑器,不用多说,江湖地位显赫。爱她的人爱的死去活來,不爱她的人对她恨之入骨,她就是这样一个让人又爱有恨的工具。初学之人被她的繁琐吓退,熟练的人却又离不开她。我个人的对她的看法是,不建议将其当作IDE使用,但是也不建议将其当作简单的文本编辑器使用。我觉得使用vim最优雅的姿势就是将其当作IDE和文本编辑器之间连接的桥梁,简单的工作不必打开IDE,使用vim迅速解决,复杂的编程工作就应该属于IDE。如果你非要使用vim当作IDE进行编程,那又为何不在IDE

2020-05-28 23:39:59 1913 3

原创 sudo rosdep init命令报错ERROR: cannot download default sources list from:....Website may be down【绝对有用】

问题在安装ros的时候需要使用sudo rosdep init和rosdep update初始化rosdep,但是此时会出现如下错误:ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.原因网上各种说法,我几乎试了都不行,有的甚

2020-05-28 16:00:17 5062 1

原创 evo安装、evo使用方法详细介绍使用教程,SLAM轨迹精度评估工具,如何用来评估ORB-SLAM2生成的轨迹精度,评估激光雷达SLAM与视觉SLAM的轨迹精度,量化SLAM的误差

evo在视觉SLAM中是一个极为有用的工具,对于论文党、科研党、工程党都非常有帮助,它可以用于评估SLAM输出的轨迹的精度,可以自动生成均值、方差、轨迹等等信息的图或者表,总之评估SLAM精度用它足以。    它目前支持的公开数据集格式有:“TUM”、“KITTI”、“EuRoC MAV"以及"ROS bagfile”。如果你使用的数据集格式为这些中的某一种,那么你无须额外的数据格式处理,就可...

2020-03-01 19:49:35 28809 13

原创 解决Linux,Ubuntu下使用python包管理工具pip命令安装和下载包速度很慢、失败或者connection timeout等问题

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。1.原因pip命令在Linux系统下使用频率非常高,但是国内使用时常常会下载很慢,或者经常提醒连接超时,其主要问题就是它的默认服务器在国外,所以速度很慢,此时我们只要将服务器地址改为国内的地址就可以完美解决下载慢或者失败的问题。推荐几个国内的源:清华:https://pypi.tuna.ts...

2020-03-01 15:33:09 3243 3

原创 OpenCV报错:error: (-215:Assertion failed) type == B.type() in function 'gemm'的原因,修改方法

1.问题OpenCV在做Mat矩阵运算的时候报如下错误:error: (-215:Assertion failed) type == B.type() in function 'gemm'如下代码就会报此错误: cv::Mat A(3,3,CV_32F); cv::Mat B(3,3,CV_64F); std::cout << A*B <<...

2020-02-01 20:58:47 6720

原创 OpenCV中cv::recoverPose()函数详细介绍和用法,以及求解出的R,t的坐标相对关系

在OpenCV中cv::recoverPose()函数主要是用来从本质矩阵中恢复R,tR,tR,t 该函数在OpenCV中一共有以下这几种形式:int recoverPose( InputArray E, InputArray points1, InputArray points2, InputArray cameraMatrix, OutputArra...

2020-01-30 17:13:13 14289 75

原创 解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 12 讲 回环检测

在开始讲回环检测之前,我们先看下我们面临的问题!

2020-01-07 19:50:40 757

原创 解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 11 讲 后端 2

解读在上一讲的解读中,我介绍了基于图的后端优化,我们也了解了SLAM优化问题的稀疏性,基于稀疏性我们可以在很短的时间内对特征点位置相机姿态进行优化。不过更大的场景下,大量的特征点的存在会严重的降低计算效率,导致计算量越来越大以至于无法实时化1 。    经过观察发现,在做BA优化的时候,特征点的优化占了计算资源的大部分,而实际上经过几轮优化之后,空间位置估计会收敛到一个值保持不动,而发散的外...

2020-01-06 19:58:22 643 1

原创 解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 10 讲 后端1

从这一讲开始我们要开始学习SLAM的后端,前面我们学习了视觉里程计(VO),通过视觉里程计,我们可以构建一个短时间内效果还不错的轨迹和地图,但是长时间的误差的累计,还是会迅速的降低我们的轨迹和地图的精度,所以维护一个更大的地图和轨迹,使其达到最优状态,在实际中还是非常需要的。而这项任务的完成就离不开——后端。概述状态估计和概率解释我们再来看一下SLAM过程的运动方程和观测方程:{xk=f(...

2020-01-03 23:24:14 842 2

原创 解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 9 讲 实践:设计前端

Hello,各位朋友,新年快乐!我们要进入第9讲的解读了,第9讲是纯实践的一讲,我觉得作者的这个布置实在是对初学者太友好了,前面我们学习了前端的所有内容,然后来一个手写前端,一方面复习了前面的内容,另一方面可以让我们简单地窥探一下一个SLAM系统大概长啥样!我还是很希望你好好学习一下这部分代码,如果你是初学者,这可能是见过的最完整的SLAM系统了,如果你掌握了它,你再去看别的优秀开源SLAM框架...

2020-01-02 21:01:50 1319 6

原创 解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 8 讲 视觉里程计2

在第七讲中,作者介绍了基于特征点估计相机运动的方法。特征点法存在以下几个缺点:1.关键点的提取和描述子的计算非常耗时间;2.特征点是提取出来的一些代表性的点,但是忽略了特征以外的所有点;3.对于纹理信息很弱的地方,特征点法往往会失败。于是乎一些改进的思路就出现了:1.保留特征点,但是只计算关键点,去掉耗时的描述子计算过程,然后使用光流法跟踪特征点的运动;2.只计算关键点,不计算描...

2019-12-31 17:30:28 513

原创 解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲 视觉里程计1 ( 下 )

上一篇博客我解读了如何根据已经匹配上的特征点对求解相机的运动《解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲视觉里程计1 ( 中 )》,这一篇博客我们来看一下如果通过已经求得的相机运动恢复出特征点的空间位置,以及一些别的求解相机运动的方法。三角测量两个图像I1,I2I_1,I_2I1​,I2​,它们之间的变换矩阵已知为T12T_{12}T12​,它们图像上分别有一个特...

2019-12-30 21:30:11 841 5

原创 解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲 视觉里程计1 ( 中 )

上一篇博客《解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲视觉里程计1 ( 上 )》,我解读了特征点,讲述了关键点的提取和描述子的计算,以及特征点的匹配。经过匹配之后就会获得很多匹配点对。那么怎么从匹配的点对中获得相机的运动关系呢?解读对极约束作者首先通过三点共面关系,推导出了对极约束。实际上这个推导过程还有一种更加简洁的方法,首先将书中对极几何约束示意图简化成如下...

2019-12-28 23:20:41 906 6

原创 SLAM相关的算法和数学知识点,持续更新

一、数学理论知识《奇异值分解 SVD 的数学解释》

2019-12-28 16:32:59 641 2

原创 解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲视觉里程计1 ( 上 )

解读《十四讲》到现在已经是第七讲了,基本上用于SLAM的数学知识已经差不多够了。我相信如果你先前没有接触过开源的SLAM框架的话,前面学习的这些数学知识的应用,可能你不会有一个很深刻的认识,但是往后的内容我们会一点一点的用上这些数学知识。这一讲我们要开始接触到SLAM的前端了,作者在这一讲中提到了很多细小的知识点,但是很多却一句话带过,并没有进一步的介绍,这一讲我也要着重介绍一下这些被一句话带过...

2019-12-27 15:38:13 900 8

原创 图像金字塔在基于特征点SLAM中的作用,以及ORB-SLAM中的应用详解,如何解决特征点尺度不变性

图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低1。上述是百度百科关于图像金字塔的定义,看完觉得也不咋形象。我们先看一张金字塔的示意图:下面我从图...

2019-12-26 00:03:59 4448 4

空空如也

空空如也

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

TA关注的人

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