SLAM
文章平均质量分 94
泠山
欢迎提出任何想法和指正,没回复多半是太忙了
展开
-
DBSCAN原理
DBSCAN是一种非常著名的基于密度的聚类算法。其英文全称是,意即:一种基于密度,对噪声鲁棒的空间聚类算法。直观效果上看,DBSCAN 算法可以找到。DBSCAN 通常适合于对较低维度数据进行聚类分析。转载 2024-01-25 17:12:13 · 107 阅读 · 0 评论 -
ORB-SLAM内的卡方检验
(向量元素的平方和)。但是,这又有一个问题,不同金字塔层的特征点都用同一个阈值,是不是不合理呢?因为上面吸烟的比例为33%,因此在吸烟与肺癌没有关系的时候,肺癌患者吸烟与不吸烟的比例应该是33%,没有得肺癌的吸烟与不吸烟的比例也应该是33%为多维标准正态分布,也就是说不同金字塔层提取的特征,计算的重投影误差都被归一化了,或者说去量纲化了,那么,我们只用一个阈值就可以了。自由度的计算方法,可以简单抽象成:(行数-1)*(列数-1),所以这里的自由度为。反之,观察频数与期望频数差别越大,两者之间的差异越大,原创 2023-05-26 16:54:09 · 1336 阅读 · 0 评论 -
三角化:Triangulation: Why Optimize?
当三角化的点有负深度时,违反了 3D 点的正景深约束。这可能有很多原因产生,如点对的关联错了或极点附近的图像点有噪声。通常它不会造成严重的问题,因为可以很轻易检查每个点的正景深并抛弃坏点。给出的为加权中点通常会导致两幅图像不成比例的重投影误差,Fig.3c 给出了一个例子。但对于该文中给出的方法是不能这样确认的,因为给出的深度总为正。在 Fig.2 描述的例子里,当我们估计一个远离相机的点时,通常(传统三角化方法)会导致估计的视差角较小。以前经典的中点方法是,每条光线的两个点是有着相同权重的最接近点对。原创 2023-05-24 17:44:12 · 1074 阅读 · 0 评论 -
解超定方程 Ax=0 与奇异值分解
很显然,这个方程有一个零解,但这不是我们想要的,我们实际想求非零解。问题来了,那么多的特征向量,应该选择哪个作为解呢?前文已经介绍了奇异值分解,现在来聊聊奇异值分解的一个应用。也就是说(1)式的解,就是这些特征向量中的一个。上方公式(7)的推导,利用了公式(6) 及。工程中很多问题会归结为求解超定方程。这是一个带约束的最小二乘问题,我们把。等一些问题都是求解这个方程。为了求极值,我们分别对。方程(1)的非零解就是。转载 2023-04-13 11:24:08 · 356 阅读 · 0 评论 -
Lie theory for the roboticist
什么是群?群是一些元素组成的集合,例如含有元素XYZ\{X,Y,Z\}XYZ的集合GGG,它群通过四个公理定义。这里十四讲讲的完全一样群带有一些运算,被称为封闭性(Composition),即两个元素的组合得出的一个元素也在该群中;存在这样的一个元素-----单位元素(Identity element) ,当我们用任何其他元素与单位元素进行操作时,我们所得到的都是该元素本身;群内有一个逆元素(Inverse element),当我们用其逆元素操作元素时,我们会得到单位元素;原创 2023-03-22 23:54:08 · 329 阅读 · 0 评论 -
四元数的球面线性插值(slerp)
等份, 可以看出其对应的弧长并不相等。靠近中间位置的弧长较长,而靠近两段处的弧长较短,这就意味着当。通常Slerp会用在SLAM轨迹插值中,设。的表达式如下,即要找到合适的。,即为所求,于是比例系数。按一般的插值公式写出。转载 2023-03-22 14:20:20 · 1674 阅读 · 1 评论 -
PROJ将WGS84转UTM坐标
PROJ是一个通用的坐标转换软件,它将地理空间坐标从一个坐标参考系统(coordinate reference system, CRS)转换到另一个坐标参考系统。这包括地图投影以及大地测量转换。平面直角坐标系是一种直角坐标系,用于在地图上将地球表面的位置表示为平面上的二维坐标,它是一种局部坐标系,适用于较小区域的地图制图和定位。原创 2023-03-18 14:02:01 · 2396 阅读 · 0 评论 -
AVP-SLAM 小结: Semantic Visual Mapping and Localization for Autonomous Vehicles in the Parking Lot
由于停车线和停车线角点是从IPM图像(Fig. 4(b) 中的白点和黄线)检测出来的,因此很容易自动检测停车点。比如 Fig. 5(a) 与 Fig. 5(b) 两个 local map 要是直接合并重叠的效果如 Fig. 5© 一样不是太好,但要是用这个值作为初始值优化出一个回环检测的相对位姿,那效果就很 nice 了,如 Fig. 5(d) 所示。如果算力足够,应该将里程计得到的位姿作为初值,如前面得到的本次的local map做个2D的ICP是否更合适?通过这种方式,可以生成全局一致的map。原创 2023-03-10 23:11:11 · 682 阅读 · 0 评论 -
轨迹误差评估指标[APE/RPE]和EVO[TUM/KITTI]
在实际工程中,我们经常需要评估一个算法的估计轨迹与真实轨迹的差异来评价算法的精度。真实轨迹往往通过某些更高精度的系统获得,而估计轨迹则是由待评价的算法计算得到的。考虑一条估计轨迹Testii和真实轨迹Tgti,其中i1⋅⋅⋅N,那么我们可以定义一些误差指标来描述它们之间的差别。原创 2023-02-15 17:37:45 · 8516 阅读 · 3 评论 -
多传感器融合定位十五-多传感器时空标定(综述)
以思路讲解为主,并给出参考文献和开源代码,不做过多细节展开;对已有方法做汇总分析,以求能在新的任务中掌握标定方案设计思路。这些方法中,推荐优先级从高到低为:a. 基于共视的标定b. 融合中标定c. 手眼标定建议应在良好环境下标定,尽量避免不分场景的在线标定。良好环境指观测数据优良的场景,例如:a. GNSS 信号良好;b. 点云面特征丰富,没有特征退化;c. 动态物体较少时间差估计,在某些情况下不得已而为之,实际中应尽量创造条件实现硬同步;原创 2023-02-10 19:58:24 · 1359 阅读 · 0 评论 -
多传感器融合定位十四-基于图优化的定位方法
核心思路是把融合方法从滤波换成图优化,其元素不再是简单的惯性解算,而是预积分。一个暴力的模型可以设计为:缺陷:随着时间的进行,图模型会越来越大,导致无法达到实时性。解决方法:不断删除旧的帧,只优化最新的几帧,即维持一个滑动窗口。模型如下:问题:直接从模型中删除,等于损失了信息。解法:通过模型把旧帧的约束传递下来,即边缘化(后面讲具体细节)。整个流程:不断往滑窗里添加新信息,并边缘化旧信息。需要注意的是:优化问题具有如下通用形式:HX=bH X=bHX=b并可拆解成如下形式:[Hmm原创 2023-02-10 19:57:17 · 1736 阅读 · 4 评论 -
多传感器融合定位十三-基于图优化的建图方法其二
在融合时,需要给不同信息设置权重,而权重 由方差得来,因此对于IMU积分,也要计算其 方差。方差的计算形式与第四章相同,即Pi,k+1=FkPi,kFk⊤+BkQBk⊤\boldsymbol{P}_{i, k+1}=\mathbf{F}_k \boldsymbol{P}_{i, k} \mathbf{F}_k^{\top}+\mathbf{B}_k \boldsymbol{Q} \mathbf{B}_k^{\top}Pi,k+1=FkPi,kFk⊤+BkQBk⊤但需注意的是,此处 Fk\b原创 2023-02-10 19:56:19 · 736 阅读 · 0 评论 -
多传感器融合定位十二-基于图优化的建图方法其一
优化问题可以等效为如下形式:三种约束分别通过以下方式获得:问题:位姿每次优化后会发生变化,其后的IMU惯性积分就要重新进行,运算量过大。解决思路:直接计算两帧之间的相对位姿,而不依赖初始值影响,即所谓的预积分。由于此处讨论的优化方案包含组合导航系统,且认为外参已标定,因此会和常见的lio/vio中的方案有所不同,它不包含以下内容:在第6讲中,已知导航的微分方程如下p˙wbt=vtwv˙tw=atwq˙wbt=qwbt⊗[012ωbt]\begin{aligned}& \dot{\mathbf{原创 2023-02-10 19:55:30 · 941 阅读 · 0 评论 -
多传感器融合定位十一-基于滤波的融合方法Ⅱ
感应轮子的旋转,并在旋转时输出脉冲,脉冲数与转过的角度呈线性比例关系。脉冲对应的是角度增量,有时也用增量除以时间,转成轮子转动的角速度输出。需要注意的是,编码器只是各种转角测量方式中的一种,其他还有轮速计、霍尔传感器等,本课程以编码器为例子讲解模型,但同样适用于其他形式的传感器。编码器安装方式有单轮、双轮、三轮,本课程推导仅围绕双轮差分模型进行展开。该模型中,需要用到以下变量:实际使用时,标定完成后, rL\boldsymbol{r}_LrL、rR\boldsymbol{r}_RrR、d\boldsy原创 2023-02-10 19:54:05 · 782 阅读 · 0 评论 -
多传感器融合定位十-基于滤波的融合方法Ⅰ其二
实际状态估计任务中,待估计的可以表示为:p(xk∣xˇ0,v1:k,y0:k)p\left(\boldsymbol{x}_k \mid \check{\boldsymbol{x}}_0, \boldsymbol{v}_{1: k}, \boldsymbol{y}_{0: k}\right)p(xk∣xˇ0,v1:k,y0:k)其中:xˇ0\check{\boldsymbol{x}}_0xˇ0 表示的是状态初始值v1:k\boldsymbol{v}_{1: k}v1:k 表示从 111原创 2023-02-10 19:52:58 · 807 阅读 · 0 评论 -
多传感器融合定位九-基于滤波的融合方法Ⅰ其一
好处就在于下面求逆的时候,公式中 对角阵的逆、上三角及下三角的逆 都是比较好求的,这样上面方差矩阵的逆就更好求出来了。实际中,预测与观测均从传感器而来,因此滤波器的作用便是结合各传感器得到一个最好的融合结果。最后得到两个二次项的和,由于同底数幂相乘后,底数不变,指数相加,且。),而此处联合概率的方差是一个高维矩阵,对它求逆的简洁办法是运用。贝叶斯推断可以理解为贝叶斯公式的运用,它是指,如果已知。把矩阵分解成上三角矩阵、对角阵、 下三角矩阵乘积的形式。, 在实际中指的是观测噪声。求逆,这个是不太好展开的。原创 2023-02-09 14:49:21 · 734 阅读 · 0 评论 -
多传感器融合定位八-惯性导航解算及误差分析其二
目的: 利用IMU测量的角速度、加速度,根据上一时刻导航信息,推算出当前时刻导航信息,包括姿态解算、速度解算、位置解算。(根据角速度+加速度,推算位姿+速度)方法: 由姿态、速度、位置的微分方程,推导出它们的解,并转变成离散时间下的近似形式,从而可以在离散时间采样下,完成导航信息求解。优点: IMU不受外界信号干扰,可以得到稳定、平滑的导航结果。缺点: 误差随时间累计,一般时间越长,累计误差越大。因此需要融合,而导航解算(本小节)及其误差分析(下一小节),是融合的基础。因此通常用于与其他传感器做一个优势互补原创 2023-02-07 13:46:10 · 677 阅读 · 0 评论 -
多传感器融合定位七-惯性导航解算及误差分析其一
多传感器融合中三维运动的导航信息包含姿态、速度、位置,其中姿态的处理最为复杂,也最为核心。姿态有三种表示形式:、、,此外还有等效,但它一般在中间计算过程中使用。(等效旋转矢量推导过程中的一些计算,推导会更加简单方便。)注:这里只介绍基于四元数和旋转矩阵的姿态更新,不介绍基于欧拉角的更新。(我们做姿态更新的时候,不会给出欧拉角的姿态更新和误差形式,欧拉角在实际过程中不会参与这种性质的运算,更多的是给人看的,很直观,但是在公式中会非常复杂。)欧拉角等同于把姿态绕三次不同轴旋转。不同的旋转顺序会得到不同的欧原创 2023-02-04 14:39:06 · 1414 阅读 · 3 评论 -
多传感器融合定位六-惯性导航原理及误差分析
前面几章讲了怎样用单个传感器把图建出来然后再做定位。接下来就进入了融合的环节,即怎样把图和定位建的更好。1687年,伟大的英国科学家牛顿提出力学三大定律,为惯性导航技术奠定了理论基础。自20世纪60年代起,出现了挠性陀螺仪和动力谐调陀螺仪,同时平台式惯导系统发展迅速,并大量装备各种飞机、舰船、导弹和航天飞行器。Sagnac效应由法国物理学家 Sagnac 于 1913 年发现,其原理是干涉仪相对惯性空间静止时,光路 A 和 B 的光程相等,当有角速度时,光程不相等,便会产生干涉。同样基于Sagnac效原创 2022-12-31 10:54:39 · 1851 阅读 · 0 评论 -
多传感器融合定位五-点云地图构建及定位
前面做出了一个比较好的里程计,但是在实际项目使用的时候,都是基于地图的。原因如下:建图流程如下:目前比较可靠的方法还是ICP和NDT两个比较基础的方法(小范围可以使用里程计确定是不是在之前帧周边,大范围就需要用到GPS了)。论文:Scan Context: Egocentric Spatial Descriptor for Place Recognition within 3D Point Cloud Map基本思想为,将一圈点云分成很多的扇形,每个扇形在纵向上再切割成小段。三维点云展开,就成了二维原创 2022-12-20 19:41:12 · 1790 阅读 · 1 评论 -
多传感器融合定位四-3D激光里程计其四:点云线面特征提取
假如我们求一个点到线的距离的时候,假如这个线上有一百个点,不可能这一百个点都求一个点到线的距离,这个计算量会大到无法接受,这时只能选一部分点来计算点到直线的距离。应该将曲率最大的几个点选出来-----曲率大的点有更大的概率属于一个良好的线特征(错误归进来的点可能并不属于线特征,它们的曲率一般都是比较小的),反之亦然。假设我们有一个残差,我们需要对残差求雅可比,如果将雅可比直接输到代码里,叫做解析求导,就是说已经解析式的,将求导的公式告诉算法了。帧之前的某些帧,共同构建出来了一个特征集合的map。原创 2022-12-18 15:59:26 · 1189 阅读 · 0 评论 -
SLAM 几何基础
内积,又叫数量积,是向量的点乘。ax1y1z1bx2y2z2a⋅bx1x2y1y2z1z2ax1y1z1bx2y2z2a⋅bx1x2y1y2z1z2外积,又叫叉积、向量积,是向量的叉乘。原创 2022-12-17 20:25:26 · 431 阅读 · 0 评论 -
多传感器融合定位三-3D激光里程计其三:点云畸变补偿
时刻,激光雷达的相对旋转和相对平移变化即可。实际上,雷达点云是局部坐标系下的表示,当以0时刻雷达的位姿为基准坐标系时,此时。对每个激光点坐标做补偿,补偿量为激光点原点(即当时雷达坐标)相对于该帧起始时刻的变化。:每个激光点的坐标都是相对于雷达的,雷达运动时,不同激光点的坐标原点会不同。:有足够数量的点云才能进行匹配,且一周正好是周围环境的完整采集。:通常指雷达内部旋转一周扫描得到的点的集合。转一圈是需要时间的,过程中雷达可能是运动的。为当前采集时刻雷达的位置;为一帧点云中激光点的坐标。为激光束打到的位置;原创 2022-12-17 17:23:13 · 654 阅读 · 0 评论 -
多传感器融合定位二-3D激光里程计其二:NDT
这里的联合概率说的是将 X 划分成栅格(如上图),每个栅格里面都有很多点,这些点可以计算一个 均值/协方差,这是一个概率的概念。而联合概率是:Y 往 X 上旋转的时候,它落在栅格中的哪个格子里知道的。根据落在格子里的点,本身 X 格子已经有了一个 均值/协方差,而 Y 的这些落在格子里的点可以形成一个联合概率。与ICP这里有些区别,ICP的是点到点的距离,这里变成了联合概率。旋转和平移后的点与目标点集中的点在同一坐标系下,此时可计算各点的。目标是让所有点的联合概率最大。目标是让所有点的联合概率最大。原创 2022-12-17 16:19:56 · 809 阅读 · 0 评论 -
多传感器融合定位一-3D激光里程计其一:ICP
存在问题:在找配准点的时候,找的点是最近的,但是找的这个点不见得是真正在刚体里面匹配的点。这个时候点找错了,那么根据这个点计算出来的 R, t,肯定是不精确的。优化的思想在于让点逐渐收敛,不想做 SVD 分解,就给一初值,让这个初值按照一定策略逐渐搜索,直到搜索到要的 R 和 t 满足一定条件,就认为得到了最终确定的结果。解决思路:如上图所示,从蓝色的点云里面选一些点,根据这些点,在红色的点云里面找离它最近的一些点,根据这些匹配点,可以将 R, t 计算出来。,选取的是两个点集中能够互相关联的那些点,即。原创 2022-12-17 14:00:55 · 956 阅读 · 1 评论 -
因子图学习笔记其三
还没写完,占个坑。正如我们在之前的章节所看到的那样,在非线性 SLAM 的例子中进行最大后验概率推断,需要迭代求解大型 (但是稀疏) 的线性系统。尽管有一些高效的软件库可用来求解大型稀疏线性系统,但是求解线性系统本身也仅仅是一个更加通用的算法的特例。稀疏线性系统只是线性高斯因子图的一种特殊形式,即所有的先验和观测都被假设是符合高斯分布的,并且只涉及线性观测函数。因子图的稀疏结构是理解这个更加通用的算法的关键因素,也是理解(和改进)稀疏分解方法的关键因素。求解稠密线性系统的方法无法应用于大规模真实 SLAM原创 2022-10-24 11:21:57 · 784 阅读 · 1 评论 -
因子图学习笔记其二
下面我们将讨论算法,这个算法代表了离线批处理 SLAM 方法中最新的技术发展水平。我们将介绍用于求解任意非线性因子图的非线性迭代优化技术。我们在本章中不会过多地涉及稀疏线性代数的细节,而是将其留到第 3 章。对于一个更加真实的 SLAM 问题,而非第 1 章中的小型 SLAM 例子来说,因子图会像下图所示。这个因子图是模拟如下过程得到的:一个机器人在二维平面上运动大概 100 个时间步长,同时观测路标点。为了方便进行可视化,图中每个机器人位姿及路标点都由其在二维空间中的位置真值所提供。从图上可以看到,里程计原创 2022-10-19 16:35:05 · 865 阅读 · 0 评论 -
因子图学习笔记其一
为了使机器人在现实世界中灵活地运动,需要基于先验知识,通过其传感器推断出关于外部世界的信息。在 SLAM 问题中,目标是利用机器人传感器收集到的信息对机器人自身进行定位。在简单的情况下,传感器测量到的信息可能是的方位。如果路标点位置已知,那么这个问题就退化为一个经典的三角化问题-----船在海上如何进行导航。然而,SLAM 问题中的难点在于,无法提前知道路标点的位置,因此,不得不在利用已有地图进行定位的同时,建立新的地图(意思是又要建图,又要在已有地图上定位吧)。由于测量具有不确定性,所以我们不可能恢复出外原创 2022-10-19 16:34:33 · 714 阅读 · 1 评论