自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木独的博客

个人学习历程&笔记分享

  • 博客(45)
  • 收藏
  • 关注

原创 论文审稿回复LaTeX模板

论文写作

2022-10-06 19:39:01 2725 1

原创 室外3D雷达地图构建流程

3D雷达进行室外点云地图构建

2022-10-06 19:32:34 1713

原创 九月SLAM相关论文速递

2022年九月份SLAM相关论文一览

2022-10-06 19:30:15 938

原创 深度滤波器推导

深度滤波器推导测量不确定性图像IrI_rIr​与IkI_kIk​对应的相机中心分别为Cr,CkC_r,C_kCr​,Ck​。二者的转换关系为Tk,rT_{k,r}Tk,r​,并且平移距离为ttt, 估计场景中的3d点为rPrPrP.假设匹配误差为一个像素,得到的误差距离为τk2=(∥rP∥−∥rP+∥)2\tau_k^2=(\|rP\|-\|rP^{+}\|)^2τk2​=(∥rP∥−∥rP+∥)2。因此有:a=rP−ta = rP - t a=rP−t角度α=arccos⁡(f⋅t∥t∥

2022-05-21 17:01:04 646

原创 轨迹跟踪—线性 MPC 控制算法

在自动驾驶和无人车领域的路径规划常常被分为运动轨迹生成与车辆路径跟踪控制两个部分。传统的基于几何条件的跟踪算法如pure-pursuit由于没有考虑车辆运动学导致控制精度和稳定性等方面存在不足,因此目前大部分采用线性MPC控制算法,从而平衡控制精度与计算量。本文首先介绍通用的MPC控制流程,对这一基于优化的控制理论有一定的认知。然后对常见的差速运动模型和自行车模型进行运动学分析,最后针对轨迹跟踪问题介绍如何将通用MPC算法应用至轨迹跟踪问题。

2022-04-17 19:13:53 8491

原创 SuperGlue: Learning Feature Matching with Graph Neural Networks 论文解析

SuperGlue: Learning Feature Matching with Graph Neural Networks 论文解析简介出发点快速最临近邻搜索(FLANN)算法常常被用于匹配得到最近邻特征点,从而得到图片A和图片B中的特征点的匹配对。但是本文认为,特征点的提取与描述采用复杂的深度学习算法后不再是限制因素,而Naive的匹配方法才是限制其性能的关键点。因此本文在SuperPoint的基础上提出了一种匹配算法,取得了匹配性能的极大改进。相关工作经典的局部特征匹配流程提取特

2022-01-18 16:17:15 3528

原创 UnSuperPoint:End-to-End Unsupervised Interest Point Detector And Descriptor 论文解读

UnSuperPoint:End-to-End Unsupervised Interest Point Detector And Descriptor 论文解读简介特征点的语义信息并不明确难以用人工标注特征点位置的方法得到一个巨大的数据集,是深度学习方法用在特征点提取上的最大问题。之前工作:TILDE 用类似于sift的特征点作为真实值Quad-network 基于图片单应变换结果训练,但输入为单个patchLIFT,LF-Net 利用SfM中的特征点作为真实值SuperPoint 利用模拟

2022-01-03 16:46:36 2172

原创 SuperPoint:Self-Supervised Interest Point Detection and Description 论文阅读

SuperPoint:Self-Supervised Interest Point Detection and Description 论文阅读简介监督学习从图像中提取点的方法被广泛研究物体检测人体关节位置检测等等特征点的语义信息不明确,难以进行人工标注,如何进行网络训练?文中的思路为自动标注得到伪真实值生成特征点位置无歧义的虚拟数据集训练得到特征提取网络MagicPoint对图片进行旋转、缩放等变换并利用MagicPoint进行提取,集合所有提取得到的特征点位置作为伪真

2022-01-02 19:52:16 1690

原创 LIFT: Learned Invariant Feature Transform 论文解读

LIFT: Learned Invariant Feature Transform论文概述创新点使用统一的模型进行端到端的有监督训练利用了传统特征提取的先验知识方法训练过程* 分阶段训练 * 利用SfM中sift的位置和角度,训练描述符网络 * 利用SfM中sift的位置,和训练好的描述符网络,训练旋转估计网络 * 利用已经训练好的旋转估计和描述符网络训练特征点提取网络* 损失函数 * 同一个3d点的角度尽可能近 * 匹配点描述符距离尽可能近,非匹配点尽

2021-12-30 10:16:53 856

原创 ORB(Oriented FAST and Rotated BRIEF) 特征点

ORB(Oriented FAST and Rotated BRIEF) 特征点在Fast角点与brief描述子的基础上,拓展得到ORB特征点。具有实时性好,提取效果也不错的优势,被广泛应用于需要实时处理处理任务的场景中。特征提取预备知识:FAST角点Fast角点不具备尺度不变性,某些点在较小尺度下可能是角点而在大尺度下则变成了边缘,如图所示因此ORB在提取特征点时进行了改进,利用单张图像金字塔进行多尺度特征提取,得到多尺度下的特征点。特征描述ORB特征点的描述子是在brief描述子基

2021-12-29 15:10:42 1954

原创 SIFT 特征点

SIFT 特征点sift特征点是非常传统计算机视觉中非常重要的方法,也是最广为人知的算法之一。它也是一个复杂的算法,考虑了尺度特性、旋转特性等。具有如下的优势:局部性:特征点是局部的,不会受到遮挡的影响可区分性:能从巨大的数据集中区分每个特征质量:提取特征点的质量非常高高效:能够取得接近实时的表现可拓展性:能够轻易的拓展成其他类型的特征点,以提高其鲁棒性算法主要包括如下几个步骤:尺度空间极值检测特征点定位方向估计特征点描述子尺度空间极值选择尺度空间同一个物体在不同尺度下呈

2021-12-29 14:44:35 3199

原创 Harris 特征点原理介绍

Harris 特征点原理提出思想找到一个小区域,该区域无论上下左右如何轻微变化均将导致区域内的图像发生明显的变化。例如:角点,不论怎么移动均会导致图像发生较大变化图像中间点,局部运动时区域内图像内容不变图像边缘,横向运动时区域内图像内容不变因此,采用类似的思想提出了Harris角点,具体步骤如下:计算像素值对区域左右移动的导数矩阵,变化剧烈等价于导数大分析矩阵性质,仅当变化最剧烈的两个方向同时具有较大的数值时才表明该区域为角点区域像素变化速度设当前窗口中心位置为(x,y)(

2021-12-29 14:36:56 1553

原创 FAST 特征点概述

Fast 特征点的原理十分的简单清晰,即基于如下的先验知识寻找角点。首先在某个点ppp附近画一个圈,选取16个像素点,如上图1-16数字区域。将16个像素点分为三类,d(darker更暗),s(similar相似),b(brighter更亮)d(darker更暗),s(similar相似),b(brighter更亮)d(darker更暗),s(similar相似),b(brighter更亮)如果存在连续的12个以上的像素点均为ddd类或者均为bbb类则说明该点为角加速方法: 1,5,9,13四

2021-12-29 14:33:40 1738

原创 cartographer 代码分析

cartographer 代码分析相关注释代码链接为:cartographer代码注释代码主要分为两个部分,其一为cartographer的核心实现,另一个为cartographer的ros封装壳。首先介绍其ros封装,可以看到大概的调用流程,然后再深入源码去剖析其实现过程。但是其代码可以说十分的繁琐且复杂,在只能大致理清楚其逻辑。Cartographer-ROS根据运行的命令 roslaunch cartographer_ros offline_backpack_2d.launch bag_fi

2021-03-07 21:38:39 2407

原创 VINS-Mono算法代码解读

个人注释版本的代码链接如下https://github.com/linyicheng1/OpenSLAM-Notes/tree/main/VINS-Mono-master算法分为三个部分,分别在3个独立的ros工程中,分别为 feature_tracker vins_estimator pose_graph运行算法的launch文件,如euroc.launch中则运行该三个节点,并获取配置文件 config/euroc_config.yaml 路径,传递给各程序四个模块之间的数据交互(加上可视化数据

2021-03-03 22:50:31 2624 1

原创 复数和四元数的几何意义

将平面看成是复数空间平面时,绕原点O旋转θ\thetaθ角度等价于乘上下面的数eiθ=cos⁡(θ)+sin⁡(θ)e^{i\theta} = \cos (\theta) + \sin (\theta)eiθ=cos(θ)+sin(θ)这些数字的集合构成一个单位圆或者称为1-d球体S1={z:∣z∣=1}S^1 = \{z:|z| = 1\}S1={z:∣z∣=1}其中S1S^1S1不仅是一个几何实体,在复数乘法下也构成一个代数结构,称之为群。其乘法运算eiθi⋅eiθ2=ei(θ1+θ2)

2021-02-14 00:11:03 1995

原创 采用逆深度参数表达的BA问题导数推导

采用逆深度参数表达的BA问题导数推导由于大部分的slam算法均采用逆深度参数表达地图点的结构,但是网上对该方法的介绍比较少因此本文将详细说明其推导过程。逆深度参数表达具有优化变量少、能表达非常远的点以及分布接近高斯分布等优势,这也是大家选择逆深度参数的原因。图结构表达从上图可以看出一个约束项Ep12E_{p_{12}}Ep12​​连接三个节点分别是当前帧、参考帧和逆深度参数表达的地图点。这是因为在逆深度参数的表达下需要当前帧、参考帧位姿及地图点才能共同确定误差函数,这将在下文中看到。优化节点

2020-06-28 22:34:33 1537

原创 g2o学习笔记(二):Bundle Adjustment 应用

Bundle Adjustment预备知识:g2o学习笔记(一):曲线拟合Bundle Adjustment简述1. 问题定义已知:一系列图片以及图片内对应的特征点匹配关系图片: 特征点:待求:特征点的3d位置以及图片对应的相机位姿3d点位置: 相机位姿:2. g2o相关API介绍3. 代码实现4. 小结...

2020-06-21 13:33:06 1354 1

原创 g2o学习笔记(一):曲线拟合

前言:g2o对于slam等问题来说十分的重要,将一个slam问题构建成图结构表达的优化问题是目前大多数的slam算法的通用做法。之前在学习了高博对g2o的讲解后至今感觉意犹未尽,表现在对于简单问题能够理解其含义而在slam问题中构建的各种复杂的优化问题则感到无力,因此决定按照g2o源码给出的实例系统的学习g2o库的使用。预备知识:《视觉slam14讲》ch6部分博文风格:由于这是第一篇博客,先介绍撰写博客时的思路。首先介绍每篇博客需要求解的问题定义,然后介绍使用到的g2o接口最后便是源码剖析。曲

2020-06-20 18:49:10 1105 1

原创 A Robust and Easy to Implement Method for IMU Calibration without

误差模型来源:零飘随机游走三轴不绝对垂直白噪声三轴测量灵敏度不一坐标系建立加速度计:原始传感器坐标:AF(不正交)正交传感器坐标:AOFAOF确定规则x轴AOF和AF相同y轴AOF在AF的x,y构成的平面内z轴为x,y叉乘陀螺仪:原始传感器坐标:GF(不正交)正交传感器坐标:GOF载体坐标系:BF=AOF误差模型确定三轴不垂直对于小角度的不垂直,可采用如下的表达(参考文献18)sB=TsST=[1−βyzβzyβxz1−βzx−βxyβyx1]s

2020-06-19 16:26:24 665

原创 Cartographer三部曲(三):Real-Time Loop Closure in 2D LIDAR SLAM

Real-Time Loop Closure in 2D LIDAR SLAM主要贡献:提出一种实时运行的激光slam,精度能达到5cm,前端采用CSM后端采用SPA,并采用分枝定界算法添加回环检测功能。采用构建submap的形式使得系统能够在大型环境中运行。前端scan每当获取到一帧扫描数据后快速的与子地图进行匹配得到相对的坐标变换关系Tξp=(cos⁡ξθ−sin⁡ξθsin⁡ξθcos⁡ξθ)⏟Rξp+(ξxξy)⏟tξT_{\xi} p=\underbrace{\left(\begin{a

2020-05-29 22:46:44 1500

原创 cartographer三部曲(二):Efficient Sparse Pose Adjustment for 2D Mapping

前言:前端多技巧,后端多理论是slam的一个特性。因此要理解本论文需要一定的理论基础。即需要对加权LM算法十分熟悉,对矩阵求导、SO(3)上的导数、稀疏线性方程组求解等理论非常熟悉,还有slam问题中图结构的构造。总体评价:创新点不大,将视觉中的BA问题直接类比到了激光中,使用了一些工程技巧提高了算法性能。主要工作:采用和视觉BA问题类似的方法构建图结构进行优化,利用矩阵的稀疏结构对算法进行加速。优势:考虑约束中的协方差信息使结构更加精确SPA对于初始值不敏感,只有非常小的概率陷入局部最优收敛

2020-05-27 22:29:39 1889

原创 Cartographer三部曲(一):Real-Time Correlative Scan Matching

前言:本文是和Cartographer相关的三篇论文之一的《Real-Time Correlative Scan Matching》的阅读总结,主要介绍了激光slam的前端部分。创新点:以往的方法总是希望强调较小的计算量而更少的关注计算结果的质量,由于计算能力的提高这已经不那么重要了,加上文中论证误差函数往往是存在多个局部最优值的使得其他算法结果质量不高,因此本文提出的方法能够在提高计算复杂度的条件下求解出全局最优值。以往只是单纯的求解最优值,而本文可以计算当前估计的概率分布为后续优化工作提供更多信

2020-05-22 12:33:14 1772

翻译 g2o:一种通用的图优化框架(g2o a general framework for graph optimization)

凸优化最常用库之一g2o原始论文的翻译工作

2020-05-07 21:05:36 2774 1

原创 粒子滤波器的Matlab实现

前言:粒子滤波器相较于卡尔曼滤波器或者UKF无迹卡尔曼滤波器而言,可以表达强非线性的变换且无需假设后验分布为高斯分布,在描述多峰分布时具有非常大的优势。粒子滤波器被广泛的应用于机器人系统中,如著名的Gmapping算法便是在粒子滤波器的基础上实现的,但是当前网络中对粒子滤波器的描述往往浅尝则止或长篇大论,导致学习起来往往是了解大概流程而不懂实际代码实现,无法应用于自己机器人中或困于理论推导。因此本...

2020-05-03 18:16:34 4718 1

原创 卡尔曼滤波器的数学推导

前言:这可能是网上最数学化的推导了,相较于其他的推导方法在数学上更加完备,这意味着对于其他的非线性滤波器如EKF或者信息滤波器IF很多其他地方都可以采用同样的方法进行推导,一通百通。本文的卡尔曼滤波器的推导从最基础的概率论中的贝叶斯准则和全概率公式推起,一步一步的完成卡尔曼滤波器,适合对卡尔曼有一定概念上的理解希望深入学习滤波器方法的同学。卡尔曼滤波算法μˉt=Atμt−1+Btut\bar...

2020-04-29 23:01:58 912 1

翻译 veo 学习笔记

configurationevo_config 是一个小工具,可以用于更改全局设置或者生成自定义配置文件。自定义配置文件有时,将实验的参数存储在专用文件中,而不是每次都手动输入作为命令行的参数是非常有用的。evo大多数命令行工具都可以用-c或者–config参数加载.json配置文件。示例假设要运行下面这条命令计算位置的相对误差evo_rpe tum groundtruth.txt e...

2020-04-16 16:48:42 1819

原创 基于采样的路径规划算法——RRT

基于采样的路径规划算法——RRT*​ 在上一篇博客中简介了基于搜索的路径规划算法A*的原理,这篇博客则会从另外一个角度去解决路径规划的问题。首先我们要从RRT算法说起,然后再探讨其优势和缺点然后给出一些改进的方法并介绍RRT*的改进之处。​ 以RRT为代表的路径规划算法基于以下的思路:一个一个的栅格去找非常的费劲,若能找到一些点构成图代表这个地图,在这个图上再去搜索路径则会十分的快速。...

2020-02-24 16:11:15 6569

原创 基于无迹卡尔曼滤波器(UKF)的9轴IMU姿态解算算法

2020-02-16 17:49:04 4388 6

原创 基于搜索的路径规划算法

基于搜索的路径规划算法是较为成熟和广泛使用的一种路径规划算法,常常被用于移动机器人或者游戏中的人物的路径规划。

2020-01-28 00:03:00 8466 1

原创 CS231n第一次作业_问题1

深度学习第一次作业由于notebook环境的配置较为麻烦,我直接使用pycharm配置本地的python环境完成了cs231n课堂的第一次作业任务。下面是具体的任务要求:Q1:k-最近邻分类器Q2:训练一个SVMQ3:实现Softmax分类器Q4:实现两层神经网络Q5:更高层次的表达:图像特征Q6:加分:做点其他的接下来一个一个问题的分析并完成代码的编写...

2019-10-11 22:04:48 867 1

原创 手写VIO笔记--概述

最近深蓝学院在视觉slam之后又推出了进阶版的手写VIO教程,看上去能学到很多东西的样子,唯一一点不足之处在于价格实在是太贵了好吧!!!表示穷学生党学不起,好在最近找了几个志同道合的朋友一起承担这个费用才勉强能获得学习资源。怀着强烈的期待与好奇并希望借这个机会提高一下自己的能力,我决定每一次的课程都写一篇笔记来巩固自己学的东西,并把课后习题贴在这里,逼迫自己好好学习,day day up!在预...

2019-08-17 17:17:16 1395

原创 IMU原理及姿态融合算法详解

IMU原理及姿态融合算法详解一、组成IMU全称是惯性导航系统,主要元件有陀螺仪、加速度计和磁力计。其中陀螺仪可以得到各个轴的加速度,而加速度计能得到x,y,z方向的加速度,而磁力计能获得周围磁场的信息。主要的工作便是将三个传感器的数据融合得到较为准确的姿态信息。二、原理a)陀螺仪陀螺仪是通过测量科氏力来检测角速度的,科氏力在大学物理中提到过,如图一个物体以固定的线速度v运动,同时受到...

2019-07-28 16:59:26 69992 15

原创 姿态描述—四元数,旋转矩阵以欧拉角

写在前面上一篇博客中讲解了IMU的几个模块的基本原理,对于陀螺仪来说我们获取到的是物体运动的角速度,相信有高数基础的同学都很容易想到角速度对时间积分后就能得到三轴的角度。这便是最接近我们思维的一种表达方式——欧拉角。欧拉角有一个动图很形象的表达了欧拉角的概念在图片中绕z轴水平旋转的是YAW即偏航角,第二次旋转是俯仰角Pitch,最后的称为偏航角Roll。是不是感觉超级简单,十分直观符合我...

2019-02-20 11:32:59 3418 5

原创 IMU简介

简介IMU(英文Inertial measurement unit,简称 IMU),是测量物体三轴姿态角及加速度的装置。一般IMU包括三轴陀螺仪及三轴加速度计,某些9轴IMU还包括三轴磁力计。首先介绍这三种传感器的原理,其中部分图片来自网络。陀螺仪陀螺仪的测量原理有简单点来说就是角动量守恒,需要理解的可以观看以下视频https://www.youtube.com/watch?v=ty9QS...

2019-02-19 17:21:31 48380

原创 从keil中导出内存数据到matlab中分析

一、简介很多时候我们需要将单片机内部的数据导出进行分析与处理,但是实际上内存数据是以HEX格式存储在内存中的并且不同类型的数据的存储格式也是不一样的。为了方便统一使用浮点型数组存储数据然后一并导出,并采用matlab进行转换得到原始数据。二、工具1.Keil2. Vim3. matlab三、预备知识3.1 SAVE命令    命令格式:SAVE filename s...

2018-12-10 22:48:06 4430

原创 使用Clion进行ROS开发

写在前面:      之前写ROS都是按照维基百科上的教程,没有对编译器有过太多的选择只是用Vim或者gedit来写代码。但是这样是十分低效的,因为至少以我的水平用gedit写的代码是有很多细节的语法问题与单词拼写问题。所以我一直想着用一款编译器来写ROS,由于我个人比较喜欢Clion的风格,觉得很漂亮而且功能也很强大。问题就在于官方没有给出CLion的配置方法,只有Qt等的配置方法,但是实际...

2018-09-01 20:13:34 5932 2

原创 使用ROS开源代码和激光雷达进行小车的定位导航——里程计信息的计算

写在前面: 之前挖了个坑,大致讲了一下导航定位的思路但是设计到实际的东西还是有很多细节问题需要注意。最近把一个项目做完了,正好有时间可以总结一些技术要点和大家分享一下。 我采用的是gmapping算法来对环境进行地图的构建,这就需要里程计的信息。首先是gmapping根据我的实际效果在场地不是很大的情况下还是能够较好的完成建图的过程的,下面可以给出一张效果图。由于gm...

2018-09-01 00:37:16 17230 25

原创 使用ROS开源代码和激光雷达进行小车的定位导航

前面的话 之前我做了一个使用激光雷达进行定位的项目,开始了一段时间对ROS、激光雷达的slam等应用的研究。以下我只是记录下我学习的历程以及一些结论,供大家参考。下面主要分为以下四个部分分别进行介绍。一、前期准备 在前期准备阶段我们需要掌握一定的其他方面的知识 1.linux令的使用:要求能记住一些基本命令其他的多用多查不要...

2018-04-30 16:25:51 22041 8

原创 ROS学习笔记一:基础教程(下)

     在上一篇博客里面我们创建了ros包,还新建了msg和srv现在让我们一起做点有意思的事情吧,让我们写的程序跑起来。一 编写简单的Publisher和Subscriber     1.1   首先,进入目录新建一个src文件夹(如果没有source先source一下)   mkdir -p src     在src文件夹内新建一个文件talker.cppcd srctouch talke...

2018-02-25 19:54:18 709

空空如也

空空如也

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

TA关注的人

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