自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yngz_Miao的博客

优秀是一种习惯。

  • 博客(254)
  • 资源 (12)
  • 收藏
  • 关注

原创 【SLAM】最最最简单的直线拟合情形下的多种求解方法

本文我们讨论一个最最最简单情况下的拟合的情形,并尝试使用不同的方法来进行求解。假如有一组数x1​x2​x3​...xn​,对应的值为y1​y2​y3​...yn​,并且y和x之间近似满足ykxb的关系。求解出最佳的k的值。为了方便后续的代码编写,这边就将xi​和yi​。

2024-07-22 21:13:22 1077

原创 【状态估计】偏差,匹配和外点

总是有非理想的因素(例如偏差和外点),使得实际的估计问题与本书中纯数学的推导不同。这些非理想因素是实际应用中误差的主要来源。在某些情况下,我们可以将估计的偏差叠加到估计框架中,而在有些情况不能这么做。这是由问题的能观性来决定的。在大多数实际的估计问题中,外点是真实存在的,因此有必要使用某种形式的预处理(如RANSAC)以及鲁棒代价函数。

2024-07-22 21:11:49 1020

原创 【状态估计】非线性非高斯系统的状态估计——离散时间的批量估计

上一篇文章介绍了离散时间的递归估计,本文着重介绍离散时间的批量估计。上一篇位置:【状态估计】非线性非高斯系统的状态估计——离散时间的递归估计。利用高斯-牛顿法来解决估计问题的非线性版本,这种优化方法也可以认为是MAP方法。首先建立最小化的目标函数,然后考虑如何解决它。构建目标函数,优化变量为:x=[x0x1⋮xK]x=\begin{bmatrix}x_0\\x_1\\\vdots\\x_K\end{bmatrix}x=​x0​x1​⋮xK​​​即需要估计整条轨迹。对于非线性情况,定于相对于先验和测量的误差为

2024-07-09 20:59:09 712

原创 【状态估计】非线性非高斯系统的状态估计——离散时间的递归估计

本章我们将研究如何处理现实世界中的系统——这些系统往往不是线性高斯的。可以说非线性非高斯(nonlinear non-Gaussian, NLNG)系统的状态估计仍然是一个非常热门的研究课题。限于篇幅,本章仅对一些常见的处理非线性和或非高高斯系统的方法进行讲解。首先,针对递归滤波问题,我们将介绍一种称为贝叶斯滤波的通用理论框架。我们熟知的扩展卡尔曼滤波、sigmapoint卡尔曼滤波和粒子滤波都可以看作是贝叶斯滤波的的近似。然后,我们再探讨非线性非高斯系统的批量估计问题。当然,全部的这部分内容比较多,这里将

2024-07-09 20:58:25 529

原创 【状态估计】线性高斯系统的状态估计——离散时间的递归滤波

前两篇文章介绍了离散时间的批量估计、离散时间的递归平滑,本文着重介绍离散时间的递归滤波。前两篇位置:【状态估计】线性高斯系统的状态估计——离散时间的批量估计、【状态估计】线性高斯系统的状态估计——离散时间的递归平滑。批量优化的方案及其对应的平滑算法方案,是LG问题下能找到的最好的方法了。它利用了所有能用的数据,来估计所有时刻的状态。不过这个方法有一个致命的问题:无法在线运行,因为它需要用未来时刻的信息估计过去的状态。为了在实时场合下使用,当前时刻的状态只能由它之前时间的信息决定,而卡尔曼滤波则是对这样一个问

2024-07-03 20:04:20 694

原创 【状态估计】线性高斯系统的状态估计——离散时间的递归平滑

上一篇文章介绍了离散时间的批量估计,本文着重介绍离散时间的递归平滑。上一篇位置:【状态估计】线性高斯系统的状态估计——离散时间的批量估计。批量优化方法给出了一个简洁漂亮的结论。它容易创建,也容易从最小二乘的角度来理解。然而,大多数时候暴力求解线性方程是非常低效的。事实上,等式左边的逆协方差矩阵有稀疏结构,可以利用这一点加速方程的求解:一次向前递推,一次向后递推。这种做法被称为典型的固定区间平滑算法。在上一篇中,最终的优化问题转化为了:(HTW−1H)x^=HTW−1z(H^TW^{-1}H)\hat x =

2024-07-03 20:03:24 1086

原创 【状态估计】线性高斯系统的状态估计——离散时间的批量估计

本章将介绍含有高斯随机变量的线性系统状态估计问题中的一些经典结论,包括重要的卡尔曼滤波器。我们将从离散时间的批量(batch)优化问题开始讨论,这可以导出随后非线性情况下的一些重要的结论,作为后文的铺垫。从批量式处理过程中,我们将导出递归式(recursive)算法的流程。最后,我们再讨论最重要的卡尔曼滤波器。当然,全部的这部分内容比较多,这里将会分为三篇文章进行论述。本文主要讨论的是:离散时间的批量估计。对于离散时间线性时变系统,定义运动模型:xk=Ak−1xk−1+vk+wkx_k=A_{k-1}x_{

2024-07-02 20:07:27 702

原创 【状态估计】概率论基础

《机器人学的状态估计》是入行SLAM的经典书籍之一,其中有大量的公式相关的内容,看起来还是比较艰涩的。最近重新读一遍,顺便将其中的一些内容记录下来,方便以后回看。概率密度函数定义定义xxx为区间[a.b][a.b][a.b]上的随机变量,服从某个概率密度函数p(x)p(x)p(x),那么这个非负函数必须满足:∫abp(x)dx=1\int_a^b p(x)dx=1∫ab​p(x)dx=1这个积分等干1的条件,实际上是为了满足全概率公理。请注意公式里面的p(x)p(x)p(x)是概率密度而不是概率

2024-03-20 21:19:38 1331

原创 【SLAM】IMU预积分的理解、手把手推导(4/4)

在优化过程中,残差计算和残差对状态量的雅可比矩阵是迭代的核心内容。本章对IMU预积分优化过程中,残差和对应的雅可比矩阵的计算进行推导。同时对整个IMU预积分过程进行总结。在实际应用中,通常以 Ri\mathbf{R}_{i}Ri​、pi\mathbf{p}_{i}pi​、vi\mathbf{v}_{i}vi​、Rj\mathbf{R}_{j}Rj​、pj\mathbf{p}_{j}pj​、vj\mathbf{v}_{j}vj​ 等为导航求解的目标,同时由于IMU的零偏也是不可忽视的,因此,全部的导航状态是

2023-09-26 21:41:12 4383 1

原创 【SLAM】IMU预积分的理解、手把手推导(3/4)

上一篇文章对IMU预积分噪声进行分离,并对其递推形式进行推导,最终引出了其信息矩阵的递推形式。本文对零偏改变时IMU预积分的速算进行推导。这是IMU预积分节省计算量的关键。前面的计算和推导,都是在假设积分区间内陀螺和加计的零偏恒定的基础上推导的。当零偏发生变化时,若仍按照前述公式,PVQ增量测量值需要整个重新计算一遍,这将非常的耗费算力。为了解决这个问题,提出了利用线性化来进行零偏变化时的一阶近似更新方法。具体来说,我们把PVQ增量观测值看成 big\mathbf{b}_{i}^{g}big​、bia\ma

2023-09-19 20:04:37 5791

原创 【SLAM】IMU预积分的理解、手把手推导(2/4)

本章开始将会开始对IMU预积分进行详细的推导。本次的推导采用李群李代数的形式来表示旋转,对应的是ORB-SLAM3的方案。比如VINS,采用的四元数方案,可能从推导过程上看有一些不同。先说一下李群李代数的定义吧:其中,R 为李群SO(3),ϕ 为对应的李代数so(3),两者之间相差一个指数对数的关系。如果是Exp ⁡ 括号里面是李代数向量,如果是exp ⁡括号里面是李代数向量对应的反对称

2023-09-15 01:54:07 6400

原创 【SLAM】IMU预积分的理解、手把手推导(1/4)

在工程实践中我们常常使用视觉与IMU融合的解决方案,即视觉惯性里程计(VIO)来估计运动,而不是简单地使用视觉里程计(VO)。当使用到IMU时,预积分就是绕不开的一个话题。IMU,中文名叫惯性测量单元,英文名:Inertial measurement unit。它可以测量两个东西,加速度aaa是沿三个轴ax、​ay、az​方向的线加速度,而角速度w就是这三个方向的角速度wx、​wy、​wz​。IMU的频率比较高,一般都在100HZ以上。在IMU内部,除了通常的白噪声,还有个特别的量零偏bias。

2023-09-11 20:06:38 9790

原创 【SLAM】Sophus库的超详细解析

在视觉SLAM中,李群李代数是描述位姿比较常用的一种表达形式。但是,在Eigen中并不提供对它的支持,一个较好的李群和李代数的库是Sophus库,它很好的支持了SO3、so3、SE3、se3。Sophus简介 本文所对照的源码版本是2023.9.7日期,因此和网上其他的一些教程版本有些出入,但是总体相差不大。总体来说,

2023-09-08 20:33:41 8488

原创 【SLAM】G2O优化库超详细解析

通用图优化。为何叫通用呢?G2O的核里带有各种各样的求解器,而它的顶点、边的类型则多种多样。通过自定义顶点和边,事实上,只要一个优化问题能够表达成图,那么就可以用G2O去求解它。常见的,比如bundle adjustment、ICP、数据拟合,都可以用G2O来做。所谓图优化,是把优化问题表现成图的一种方式,这里的图是图论意义上的图。一个图由若干个顶点,以及连着这些顶点的边组成。在这里,我们用顶点表示优化变量,而用边表示残差项。

2023-09-05 20:44:34 9799 6

原创 【Math】导数、梯度、雅可比矩阵、黑塞矩阵

导数、梯度、雅可比矩阵、黑塞矩阵都是与求导相关的一些概念,比较容易混淆,本文主要是对它们的使用场景和定义进行区分。梯度是雅可比矩阵的一个特例:当向量函数为标量函数时(f\mathbf{f}f向量维度为1),雅可比矩阵是梯度向量黑塞矩阵是多元函数fxfx的梯度对自变量x\mathbf{x}x的雅可比矩阵。

2023-08-29 20:01:22 9778

原创 【SLAM】光流 - LK光流 - 金字塔分层LK光流

在SLAM的视觉里程计中,比较常用的就是和。而直接法中,光流则是其中的重点内容,比如LSD-SLAM中就使用到了光流的方法。本文将会就光流的理论原理、公式推导进行详细的剖析,以帮助读者深刻地理解。光流是关于视域中的物体运动检测中的概念,它用来描述相对于观察者的运动所造成的观测目标、表面或边缘。简单来讲,光流描述了场景中物体运动在视觉中的变化。光流的概念,由Gibson在1950年提出,其通过相邻帧之间像素点的对应关系计算像素点的瞬时速度,从而描述物体信息。为了应用光流计算物体运动法,相邻帧需要满足两个假设:

2023-08-25 17:15:55 10007

原创 【Math】特征值和奇异值辨析

奇异值与特征值都被用于描述矩阵作用于某些向量的标量,都是描述该向量模长变化幅度的数值。矩阵与向量的乘积得到一个新的向量,几何上相当于对向量进行了旋转和拉伸,就像是对向量施加了一个作用,或者说是变换。如果有向量vvv能使得矩阵AAA与之的积AvλvAvλvλ\lambdaλ为标量,那么λ\lambdaλ和vvv就分别是AAA的特征值与特征向量如果存在单位正交矩阵UUU和VVV,使得AUDVTA=UDV^TAUDVTDDD为对角矩阵,对角线上的值被称为奇异值。

2023-08-18 21:59:03 13308 1

原创 【Math】线性方程组的最小二乘解

在SLAM问题中,经常需要解一些方程数远大于未知量的超定线性方程组Ax=0或Ax=b,那么这种情况下,从解析解的角度上看,是无解的,但是我们又需要给出一个答案,此时求解的就是最小二乘解。线性方程组分为齐次线性方程组Ax=0和非齐次线性方程组Ax=b,其区别在于常数项是否为0向量。其中,x是n维向量。

2023-08-14 21:19:55 11773

原创 【C++】模板中template、typename的非常见用法

模板是指:C++程序设计中采用类型作为参数的程序设计,用于支持通用程序设计。C++的标准库提供许多有用的函数大多结合了模板的观念,如STL、IO Stream等。在模型的声明中,最最最常见的用法就是:值得注意的是:模板在编译的时候并不知道这个T是什么类型,只有在实例化的时候才能够知晓。因此,这会导致在模板较复杂的时候,可能会产生很多意想不到的理解上的歧义。为了规避这种歧义性,typename和template在某些特定的情况下,需要点明。这就是它们的非常见用法。

2023-08-12 17:12:56 12725

原创 【C++】浅析关于STL容器迭代器失效的情况

最近写代码想要实现一个功能,对于一个vector,需要将后续添加的元素进行反序操作。由于不想使用一个临时的vector,想要在原vector进行功能实现,因此就直接利用std::reverse方法进行操作。理论上说,。那么按照这个思路:end()迭代器指向的就是3的下一个元素,那么就是4。再进行reverse操作,最后的结果就应该是1 2 3 6 5 4了。完完全全不是我们所设想的内容!这究竟是怎么回事呢?

2023-08-07 20:04:17 11884 2

原创 【C++】unordered_map在Windows和Linux上的不同行为

我目前手头上的项目,需要编译在板端Linux上运行,但是日常daily调试多在Windows上开发。这就涉及到同一份代码在多平台上的编译个运行。有一次遇到了一个奇怪的现象:跑同样的一份代码,Windows和Linux出来的结果是不一致的。最终确定到不一致的原因出现在unordered_map上,就把这次记录总结下来。这次不一致发生在:处理一个状态序列的投票操作。从编程的角度而言,最适合投票操作的容器就是键值对,key放置投票的内容,value放置投票的次数。在C++中,STL提供了两个相关容器:map和un

2023-08-02 20:33:47 12466

原创 【C++】枚举类型作为map/unordered_map的key键

C++中`map`和`unordered_map`提供的是一种键值对容器,在实际开发中会经常用到,它跟Python的字典很类似,所有的数据都是成对出现的,每一对中的第一个值称之为关键字(key),每个关键字只能在map中出现一次;第二个称之为该关键字的对应值(value)。那么**枚举类型(enum)可以作为键值对容器的key么**?

2023-07-24 19:52:56 13014

原创 【Eigen】Eigen内存对齐超详细讲解

只有固定大小向量化Eigen类型(fixed-size vectorizable Eigen types)才有可能需要用户额外进行内存对齐的操作,如Vector3f、MatrixXd等,都不需要用户操心。STL容器使用固定大小向量化Eigen类型对象成员自定义类含有固定大小向量化Eigen类型对象成员基本思想就是:对于基本数据类型和自定义类型,我们需要用预编译指令来保证栈内存的对齐,用重写operator new的方式保证堆内存对齐。

2023-07-17 21:34:18 13124

原创 【SLAM】Ceres优化库官方实例详细解析(SLAM相关问题)

在ceres-solver官方教程中提供了三个SLAM相关的优化问题,分别为:bundle_adjuster、pose_graph_2d、pose_graph_3d。本文就这三个问题进行拆解和分析。在阅读本文之前,你需要确保已经知晓了Ceres的基础用法,这部分可以参考文章:【SLAM】Ceres优化库超详细解析。(BA、光束平差)问题是视觉SLAM中最基础最常用的优化方法和思路。给定一组测量的图像特征位置和对应关系,光束平差的目标是优化3D空间点和相机参数来最小化重投影误差。这个优化问题通常是被定义为一个

2023-07-13 21:17:29 13733 1

原创 【SLAM】Ceres优化库超详细解析

Ceres是由Google开发的开源C++通用非线性优化库,与g2o并列为目前视觉SLAM中应用最广泛的优化算法库。对于任何一个优化问题,我们首先需要对问题进行建模,之后采用合适的优化方法,进行求解。在求解的过程中,往往需要进行梯度下降求取最优,这里涉及了导数计算。所以在代码中使用Ceres进行优化时,需要包含基本内容:建模、优化、求导方法。Ceres库简介Ceres库主要用于求解无约束或者有界约束的最小二乘问题。其数学形式如下:

2023-07-10 19:59:00 21021 4

原创 【C++】泛型算法之std::for_each

用于逐个遍历容器元素,它对迭代器区间所指的每一个元素,执行由单参数函数对象f所定义的操作。它是for循环的一种替代方案。尽管,我们仍可以使用for循环进行一个容器元素的遍历,但是std::for_each额外给我们提供了一种途径,而且丰富了更多的语义信息,在并行上会比朴素的for循环更有优势。

2023-07-03 22:10:38 12675

原创 【滤波】自适应滤波器

%matplotlib inline#format the bookimport book_formatbook_format.set_style()简介到目前为止,我们已经考虑了跟踪与我们的过程模型相关的表现良好的对象的问题。例如,我们可以使用恒速滤波器来跟踪直线运动的物体。只要物体以合理的恒定速度沿直线移动,或者非常缓慢地改变其轨迹或速度,这个滤波器都会表现得比较好。相反,假设我们正试图跟踪机动目标,例如草原上的马、天空中飞行的鸟等。在这些情况下,滤波器的性能相当差。或者,考虑一种情况,

2023-06-29 19:56:32 13138

原创 【滤波】平滑

当你考虑未来的数据时,卡尔曼滤波器的性能并不是最优的。在接近稳定状态的一段时间后,观测值突然有一个很大的变化。假设该变化已经超过了飞机飞行的极限。尽管如此,卡尔曼滤波器还是会根据当前的卡尔曼增益,将新的观测值合并到滤波器中。它不能拒绝噪声,因为观测的结果可能反映转弯的开始。飞机之前就开始转弯,但之前的观测值结果很嘈杂,没有显示变化;飞机正在转弯,观测值比较嘈杂;飞机没有转弯,观测值非常嘈杂;飞机正在相反方向转弯,观测值比较嘈杂;根据这些未来的观测结果,我们可以推断出:飞机开始转弯。

2023-06-28 20:44:45 13051

原创 【滤波】粒子滤波(PF)

本文只触及这个庞大话题的表面。我的目标不是教会你这个领域,而是让你接触实用的贝叶斯蒙特卡罗滤波技术。粒子滤波是一种集成滤波。卡尔曼滤波器用高斯函数表示状态,利用贝叶斯定理对高斯模型进行观测,利用状态空间方法进行预测。相比之下,集成滤波使用点和相关概率的离散集合来表示概率分布。观测应用于这些点,而不是高斯分布。同样,系统模型应用于点,而不是高斯分布。然后我们这些点集合的统计特性。这些方法各有利弊。卡尔曼滤波是非常有效的,并且在线性和高斯噪声假设成立的情况下是一种最优估计。

2023-06-22 01:33:18 15027

原创 【滤波】扩展卡尔曼滤波器(EKF)

%matplotlib inline#format the bookimport book_formatbook_format.set_style()我们发展了线性卡尔曼滤波器的理论。然后在上两章中,我们提出了使用卡尔曼滤波器解决非线性问题的主题。在本章中,我们将学习扩展卡尔曼滤波器(EKF)。EKF通过在当前估计点对系统进行线性化来处理非线性,然后使用线性卡尔曼滤波器对该线性化系统进行滤波。这是最早用于非线性问题的技术之一,也是最常用的技术。EKF为滤波器的设计者设置了较大的数学挑战,因此我

2023-06-20 20:59:21 17398 6

原创 【滤波】无迹卡尔曼滤波(UKF)

%matplotlib inline# format the bookimport book_formatbook_format.set_style()前文在上一章中,我们讨论了非线性系统带来的困难。这种非线性可以出现在两个地方。它可能出现在我们的观测值里,也可能发生在过程模型中。对于这些问题,标准卡尔曼滤波器的性能可能会很差。在上一章中,我向你们展示了这样的一个现象(为了强调非线性的影响,我对方程做了一些修改):from kf_book.book_plots import set_fi

2023-06-13 11:58:22 14321 2

原创 【滤波】非线性滤波

我们开发的卡尔曼滤波器使用线性方程组,因此该滤波器只能处理线性问题。但是这个世界是非线性的,所以我们一直在研究的经典滤波器的使用范围非常有限。过程模型可能存在非线性。假设我们想要追踪一个从大气坠落的物体,物体的加速度取决于它遇到的阻力。阻力取决于空气密度,空气密度随高度降低。x¨0.0034ge−x22000x˙22β−gx¨2β0.0034ge−x/22000x˙2​−g非线性的第二个来源是观测模型。

2023-05-30 20:12:44 13740

原创 【滤波】设计卡尔曼滤波器

%matplotlib inline#format the bookimport book_formatbook_format.set_style()简介在上一章节中,我们讨论了教科书式的问题。这些问题很容易陈述,只需几行代码就可以编程,也很容易教学。但现实世界的问题很少这么简单。在本章中,我们将使用更实际的示例,并学习如何评估滤波器性能。我们将首先在二维空间中跟踪一个机器人,比如一个场地或仓库。我们将从一个简单的传感器开始,该传感器输出有噪声的(x,y)(x, y)(x,y)坐标,我们需

2023-05-29 11:18:21 13641

原创 【滤波】卡尔曼滤波数学

%matplotlib inline#format the bookimport book_formatbook_format.set_style()简介如果你已经学习到了这一步,我希望你会认为卡尔曼滤波器有些名不副实。当然,我所书写的一些方程式,我希望对你来说是相当简单的。卡尔曼滤波的基本概念非常简单——进行两次观测,或者一次预测一次观测,然后选择介于两者之间的输出。如果你越相信观测值,你的估计值就越接近观测值;如果你越相信预测值,你的估计值就越接近预测值。老实说,我一直在仔细地选择我所

2023-05-19 20:26:27 12676 2

原创 【滤波】多元卡尔曼滤波器

%matplotlib inline#format the bookimport book_formatbook_format.set_style()简介我们现在准备研究和实现完整的、多元形式的卡尔曼滤波器。在上一章中,我们学习了多元高斯如何表达多个随机变量之间的相关性,例如飞机的位置和速度,我们还了解了变量之间的相关性如何显著提高后验概率。如果我们只粗略地知道位置和速度,但它们是相关的,那么我们的新估计可以非常准确。我更希望你通过几个示例,来培养这些滤波器工作原理的直觉。本文中,我将要掩

2023-05-11 20:49:22 12709

原创 【滤波】多元高斯

上一篇文章中的技术非常强大,但它们只适用于一个变量或维度。它们无法表示多元数据,例如狗在野外的位置和速度。位置和速度是相互关联的,而我们永远不应该丢弃信息。在本文中,我们将学习如何从概率的角度来描述这种关系,并获得明显更好的滤波器性能。我们利用了系统的相关性,得出了非常精确的估计。数学并不关心我们是在处理两个位置,还是一个位置和一个相关的速度,或者其他的空间维度。如果建筑面积和房价相关,你可以写一个卡尔曼滤波器来跟踪房价;如果年龄与疾病发生率相关,你可以编写一个卡尔曼滤波器来跟踪疾病;

2023-05-05 20:35:25 12235

原创 【滤波】一维卡尔曼滤波器

本文中描述的卡尔曼滤波器,是我们将在下一文章中学习到的更一般的滤波器的一个特殊的、受限的情况。大多数文章并不讨论这种一元形式。然而,我认为这是一个至关重要的垫脚石。我们从离散贝叶斯滤波器开始,到现在实现了一元卡尔曼滤波器。我试着向你们展示,这些滤波器中的每一个都使用相同的算法。我们不久将学习的卡尔曼滤波器的数学是相当复杂的。这种复杂性带来了显著的好处:性能将明显优于本文中的滤波器。本文需要时间来理解。要真正理解这一点,你可能要把本文多读几遍。我鼓励你更改代码中的各种变量并观察结果。

2022-12-14 20:14:48 14365 2

原创 【滤波】概率、高斯和贝叶斯

%matplotlib inline#format the bookimport book_formatbook_format.set_style()前言上一章讨论了离散贝叶斯滤波器的一些缺点。对于许多跟踪和滤波问题,我们希望有一个单峰和连续的滤波器。例如,我们确定一架飞机的位置在(12.34,−95.54,2389.5)(12.34, -95.54, 2389.5)(12.34,−95.54,2389.5),三个数字分别表示纬度,经度和高度。我们不想让我们的滤波器告诉我们:它可能在(1.6

2022-12-02 20:05:47 12294

原创 【滤波】离散贝叶斯滤波器

%matplotlib inline#format the bookimport book_formatbook_format.set_style()前言卡尔曼滤波器属于贝叶斯滤波器的一种。大多数教科书中对卡尔曼滤波的讲解几乎都是直接上贝叶斯公式,然后一大堆公式推导。这种方式也许说明了贝叶斯公式是如何影响到卡尔曼滤波方程的,但大多数的讨论都停留在一个非常抽象的层次上。这种讲解方法需要对某些数学领域有一个深刻的理解,比如概率统计、矩阵运算等,对于初学者来说还是稍许晦涩难懂。我将用另一种方式

2021-01-25 23:35:37 15195 2

原创 【C++】两个类的相互引用

有时候在设计数据结构的时候,可能会遇到两个类需要相互引用的情形。比如类A有类型为B的成员,而类B又有类型为A的成员。那么这种情形下,两个类的设计上需要注意什么呢?本文实例源码github地址:https://github.com/yngzMiao/yngzmiao-blogs/tree/master/2021Q1/20210103。同一文件尝试方案将A和B的定义都放在一个文件中,例如:#include <iostream>class A { public: A()

2021-01-03 05:54:29 21922 8

ESP8266 WIFI模块使用资料(STM32控制程序)

ESP8266 WIFI模块使用资料包,包括并不限于: 1、ESP8266 WIFI模块原理图; 2、ESP8266模块使用说明; 3、ESP8266的STM32程序版本; 4、配套软件。

2019-04-21

MATLAB在语音信号分析与合成中的应用

MATLAB在语音信号分析与合成中的应用,包括但不限于: 1、MATLAB在语音信号分析与合成中的应用__宋知用编著_北京航空航天大学出版社.pdf。

2019-04-04

DS18B20温度传感器模块使用资料包(stm32控制程序)

DS18B20温度传感器模块使用资料包,包括并不限于: 1、DS18B20温度传感器模块原理图; 2、DS18B20温度传感器模块相关资料; 3、DS18B20温度传感器模块测试程序(51版本和STM32版本)。

2019-04-03

Aria2-master

Aria2-master.rar,包括但不限于: 1、Aria2; 2、BaiduExporter-master…… 作用:可在Google浏览器中添加Aria2插件,然后可以通过Aria2来进行百度网盘的快速下载。

2018-09-15

Linux高级编程笔试题答案

Linux高级编程笔试题答案,包括但不限于: 1、Linux高级编程笔试题答案.pdf。 pdf内容:Linux网络编程、Linux进程调度、Linux文件系统、Linux进程的互斥与同步……(包含题目和答案)

2018-09-15

动态规划之邮局选址

动态规划之邮局选址包括但不限于: 1、邮局选址源代码程序; 2、邮局选址超详细问题分析.pdf; 3、邮局选址超详细代码分析.pdf; 4、邮局选址超详细PPT……

2018-08-11

嵌入式操作系统基础μCOSII和Linux

嵌入式操作系统基础μCOSII和Linux,包括但不限于: 1、嵌入式操作系统基础μC OSII和Linux 第2版__任哲,樊生文编著_北京:北京航空航天大学出版社.pdf。

2018-07-21

嵌入式Qt实战教程

嵌入式Qt实战教程,包括并不限于: 1、嵌入式Qt实战教程.pdf; 2、嵌入式Qt实战教程程序源代码。

2018-06-16

HC-05蓝牙模块使用资料包(STM32控制程序)

HC-05蓝牙模块使用资料包,包括并不限于: 1、HC-05蓝牙模块使用手册和AT指令集; 2、STM32单片机串口收发程序; 3、PC通用串口助手; 4、安卓通用串口助手; 5、封装文件和实物照片。

2018-05-19

STM32F103学习资料和开发手册

STM32F103学习资料和开发手册,包括但不限于: 1、STM32F1开发指南-库函数版本_V3.1 .pdf; 2、STM32F1开发指南-寄存器版本_V3.1 .pdf; 3、STM32F1 EMWIN开发手册_V2.0.pdf; 4、STM32F1 FreeRTOS开发手册_V1.0.pdf; 5、STM32F1 LWIP开发手册(DM9000版)_V1.1.pdf; 6、STM32F1 UCOS开发手册_V2.0.pdf。

2018-05-10

ULN2003芯片控制28BYJ48步进电机资料

ULN2003控制步进电机资料内容包括: 1、ULN2003英文数据手册、ULN2003中文数据手册; 2、28BYJ48步进电机规格书; 3、步进电机驱动板原理图; 4、基于51单片机的加速、减速、正反转控制程序。

2018-04-03

TMS320VC5509A的TI官方文档

TMS320VC5509A的TI官方文档,包括但不限于: 1、TMS320VC5509A Data Sheet (Rev. B).pdf; 2、TMS320C55x DSP Library Programmer's Reference (Rev. F)【DSP库函数的使用手册】.pdf; 3、TMS320C55x Chip Support Library API Reference Guide (Rev. G) 【CSL库的使用手册】.pdf ……

2018-03-23

空空如也

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

TA关注的人

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