
SLAM从小白到大黑
文章平均质量分 91
对基础知识的记录
雨luo凡城
一直行走着,一直期待着~
展开
-
四元数非正式笔记梳理_Quaternion kinematics for the error-state Kalman filter
Introduction本文是针对对papers [Quaternion kinematics for the error-state Kalman filter]的非正式阅读笔记。原papers写的非常好,通俗易懂,本文笔记记录过程中总是丢了连贯性,强烈推荐阅读英文原版。 之所以说是非正式,一方面是因为与其说是笔记,倒不如说是公式速查笔记,丢了公式的一些来龙去脉,另一方面原因是里面保留着一些来至于翻译软件的直接翻译(太懒敲字),以及个人随性的笔记。为了便于对照原文,这里保留了与原paper相同的公式序原创 2022-03-08 21:11:08 · 2539 阅读 · 1 评论 -
优化库——GTSAM(一)
???? 前言本文主要从代码架构方面,简要了解一下框架,使得使用的时候“踏实一点”,想要细致了解以下的,我在后面参考链接里面放置一些推荐链接,可以作为了解以example_odomtry为例讲解一下主要流程0 创建图对象1 添加先验一元边2 添加约束因子3 设定初值(观测值)4 进行优化1-1 ???? FactorGraph & Factor图对象的顶层基类为FactorGraph,常用的非线性图属于派生类NonlinearFactorGraph-->Facto原创 2021-08-16 23:17:09 · 4290 阅读 · 1 评论 -
优化库——ceres(三)实战案例
实战案例1.1 CmakeLists.txt配置//CMakeLists.txt:cmake_minimum_required(VERSION 2.8)project(ceres)find_package(Ceres REQUIRED)include_directories(${CERES_INCLUDE_DIRS})add_executable(test test.cpp)target_link_libraries(test ${CERES_LIBRARIES})1.2 示例:ce原创 2021-08-03 22:47:01 · 2601 阅读 · 1 评论 -
优化库——ceres(二)深入探索ceres::Problem
文章目录1-1 :bookmark: Problem类函数总览1-2 :bookmark: ceres::LocalParameterization1-2-1自定义LocalParameterization1-2-2 案例:QuaternionParameterization解析1-2-3 ceres::LocalParameterization的其他用法1-3 :bookmark: 关于添加残差块,参数块,设置参数化的区别和调用关系参考链接1-1 ???? Problem类函数总览整个Problem函原创 2021-08-03 22:22:04 · 3785 阅读 · 3 评论 -
滤波_1_卡尔曼滤波理解
1 ???? 导文(入门)卡尔曼滤波是无人驾驶中最基本的算法之一,在传感器融合与定位中几乎无处不在。这里借助笔记顺一顺卡尔曼滤波的过程适用系统:线性高斯系统宏观意义:噪声既加权(下面与理想状态的低通滤波进行对比)加权公式低通滤波低频信号×1\times{1}×1+高频信号×0\times{0}×0这里的低指的是低频信号值,高指的是高频噪声,对高频噪声给定权重,才是最理想的状态卡尔曼滤波估计值×p1\times{p_1}×p1+观测值×p2\times_{p_2}×原创 2021-06-13 20:19:36 · 835 阅读 · 0 评论 -
优化库——g2o(二)ORB-SLAM2在局部建图线程中的优化
文章目录4.0 参考链接4.1 ORB-SLAM2在局部建图线程中的优化4.0 参考链接ORB-SLAM2代码阅读笔记(七):LocalMapping线程DreamWaterFound/self_commit_ORB-SLAM24.1 ORB-SLAM2在局部建图线程中的优化局部建图线程调用// Local BA// 当局部地图中的关键帧大于2个的时候进行局部地图的BAif(mp...原创 2020-03-06 00:08:59 · 1268 阅读 · 0 评论 -
优化库——g2o(一)整体介绍
文章目录0 参考链接1 基本流程梳理2 代码文件3 代码使用举例0 参考链接[从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码][深入理解图优化与g2o:g2o篇]本文参考上面两个链接,想要了解详细内容,参考上面两个1 基本流程梳理图的核心SparseOptimizer是整个图的核心, is-a 是实心箭头,表示这个SparseOptimizer它是一个Opt...原创 2020-03-05 10:47:38 · 2928 阅读 · 0 评论 -
优化库——ceres(一)快速概览
文章目录1 :book: ceres快速概览1.1 :bookmark:问题建模和求解1.2 ::bookmark:ceres使用流程1.3 :bookmark: 求导方法:构建代价函数(STEP2)1.3.1 解析求导(自定义求导)1.3.2 其他求导1.4 :bookmark: 构建优化问题并求解(STEP3)参考链接1 ???? ceres快速概览基本概念对于任何一个优化问题,我们首先需要对问题进行建模,之后采用合适的优化方法,进行求解。在求解的过程中,往往需要进行梯度下降求取最优,这里涉及了原创 2021-08-02 23:35:14 · 4781 阅读 · 2 评论 -
SLAM基础——聊一聊信息矩阵
文章目录前言1 :book: 信息矩阵1-1 :bookmark: 信息矩阵是什么?有什么作用?1-2 :bookmark: 信息矩阵与Hessian矩阵的关系1-2-1 Hessian矩阵和H矩阵的关系1-2-2 Hessian或H矩阵和信息矩阵的关系2 :book: 信息矩阵与最小二乘的关联2-1 :bookmark: 先谈一谈常规的最小二乘2-2 :bookmark: 包含信息矩阵的最小二乘3 :book: 信息矩阵如何更新的?3-1 :bookmark: 舒尔补介绍3-2 :bookmark: 在原创 2021-07-31 01:19:04 · 11021 阅读 · 4 评论 -
SLAM基础——舒尔补介绍
文章目录1:book: 舒尔补介绍1-1:bookmark: 舒尔补定义1-2:bookmark: 舒尔补的定理推导1-3 :bookmark: 用途:快速求矩阵的逆1-4:bookmark:用途:舒尔补在信息矩阵求解中的使用1-5:bookmark:用途: 舒尔补应用于多元高斯分布通过舒尔补分解多元高斯分布边际概率和条件概率的信息矩阵总结参考资料1???? 舒尔补介绍1-1???? 舒尔补定义给定任意的矩阵块 M\mathbf{M}M , 如下所示:M=[ABCD]\mathbf{M}=\lef原创 2021-07-31 00:32:04 · 6563 阅读 · 4 评论 -
VINS——初始化过程
1 ???? 前言初始化总体流程如下:旋转外参数 qbc\mathbf{q}_{b c}qbc 未知, 则先估计旋转外参数.利用旋转约束估计陀螺仪 bias.qc0bk=qc0ck⊗qbc−1\mathbf{q}_{c_{0} b_{k}}=\mathbf{q}_{c_{0} c_{k}} \otimes \mathbf{q}_{b c}^{-1}qc0bk=qc0ck⊗qbc−1利用平移约束估计重力方向,速度,以及尺度初始值.sp‾c0bk=sp‾c0ck−Rc0b原创 2021-07-31 00:13:52 · 1761 阅读 · 0 评论 -
SLAM基础——常见矩阵以及矩阵分解
0 ???? 前言本篇,多出自其他大佬的文章,厚着脸皮总结组织一下1 ???? 矩阵求解参考链接https://blog.youkuaiyun.com/wangshuailpp/article/details/80209863https://www.cnblogs.com/AndyJee/p/3846455.html1-1 ???? 内容一:直接给出AX=B\bf{AX=B}AX=B解的情况。(1)R(A)< r(A|B),方程组无解(2)r(A)=r(A|B)=n,方程组有唯一解(3)r(A)原创 2021-07-20 23:45:34 · 1564 阅读 · 2 评论 -
SLAM基础——最小二乘
1 ???? 概念入门:最小二乘估计(LSE)最小二乘估计,简写为LSE(Leart Squares Estimate)1-1 ???? 最小二乘模型的引出线性模型如下:Y=AX+ε\mathbf{Y}=\mathbf{A} \boldsymbol{X}+\boldsymbol{\varepsilon}Y=AX+ε其中:Y=(y1,y2,…,yn)T\mathbf{Y}=\left(y_{1}, y_{2}, \ldots, y_{n}\right)^{T}Y=(y1,y2,…,原创 2021-07-20 23:34:08 · 1375 阅读 · 0 评论 -
SLAM基础——部分预备知识
1 ???? 四元数1-1 ???? 四元数介绍四元数 q 有一个实部和三个虚部。我们把实部写在前:q=[q0,q1,q2,q3]T 或 q=[w,x,y,z]T\mathbf{q}=\left[q_{0}, q_{1}, q_{2}, q_{3}\right]^{T} \text { 或 } \mathbf{q}=[w, x, y, z]^{T}q=[q0,q1,q2,q3]T 或 q=[w,x,y,z]T其中 q0q_0q0 为实部,[q原创 2021-07-20 23:09:32 · 279 阅读 · 1 评论 -
SLAM基础——预积分流程梳理
文章目录1 :book: 前言1 :book: IMU模型1-1 :bookmark: 测量误差模型1-2 :book: 状态传递过程(连续形式)1-3 :book: 状态传递过程(离散形式)2 :book: IMU预积分2-1 :bookmark: 连续形式2-2 :bookmark: 离散形式(欧拉法)3 :book: 误差递推方程、协方差和雅可比矩阵3-1 :bookmark: 连续形式下 PVQ 增量的误差、协方差及 Jacobian3-2 :bookmark: 离散形式下 PVQ 增量的误差、协方原创 2021-05-24 18:14:28 · 974 阅读 · 0 评论 -
SLAM基础——关于SLAM三大矩阵
文章目录1 :book: 参考资料2 :book: 对极几何模型3 :book: 本质矩阵和基础矩阵的推导3-1 :bookmark: 本质矩阵推导3-2 :bookmark: 基础矩阵推导3-4 :bookmark: 基础矩阵的模型退化情况3-5 :bookmark: 基础矩阵的简化情况3-6 :bookmark: 基础矩阵求解(待整理)STEP1 DLT过程STEP2 第一次SVD求解FSTEP3 第二次SVD分解进行矩阵重构4 :book: 单应矩阵(射影变换)1 :bookmark:解法一: 最小二原创 2021-05-22 21:45:59 · 1847 阅读 · 0 评论 -
矩阵(二):为什么Ax=0的解为最小奇异值对应的向量?
参考资料解超定方程 Ax=01 ???? 解超定方程工程中很多问题会归结为求超定方程Ax=0\mathbf{A x}=\mathbf{0}Ax=0 , A\mathbf{A}A是 m*n的矩阵,且m>n 。如SLAM中三角化地图点,PnP等一些问题都是求解这个方程。很显然,这个方程有一个0解,但这不是我们想要的,我们实际想求非零解。为了求非零解,我们对 A\mathbf{A}A加上一个约束∥x∥2=1\|\mathbf{x}\|^{2}=1∥x∥2=1。也就是限制 x\mathbf{x原创 2021-05-22 21:26:55 · 3588 阅读 · 9 评论 -
矩阵(一):SVD分解
文章目录0 参考链接(尊重原著)1 SVD分解原理2 SVD分解意义3 SVD分解的应用4 SVD数学举例0 参考链接(尊重原著)下面这个讲的很好很全面视觉SLAM常见的QR分解SVD分解等矩阵分解方式求解满秩和亏秩最小二乘问题(最全的方法分析总结)矩阵分解SVD原理1 SVD分解原理奇异值和特征值有相似的重要意义,都是为了提取出矩阵的主要特征。假设A是一个m∗n阶矩阵,如此则存在一个...原创 2020-03-12 23:52:45 · 12889 阅读 · 1 评论 -
SLAM系统demo运行
1 ORB-SLAM2代码测试数据集ORB-SLAM2的编译运行以及TUM数据集测试2 VINS代码测试数据集原创 2019-11-29 18:50:15 · 523 阅读 · 0 评论 -
SLAM三角测量程序理解
函数 triangulationvoid triangulation ( const vector< KeyPoint >& keypoint_1, const vector< KeyPoint >& keypoint_2, const std::vector< DMatch >& matches, ...原创 2019-05-30 22:16:33 · 1381 阅读 · 0 评论