自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Robotics_Notes

日常一些公式和知识点的记录

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

原创 RSA 加密算法的基础数论、基本原理与 Python 实现 (包含扩展欧几里得算法)

Title: RSA 加密算法的基础数论、基本原理与 Python 实现文章目录前言I. 数学原理1. 整数环2. 单位元3. 欧拉定理II. 算法原理1. 扩展欧几里得算法2. RSA 非对称加密算法III. 算法实现1. 源代码2. 测试结果总结参考文献前言1977 年美国 MIT 的三位数学家 Ronald L. Rivest、Adi Shamir 和 Leonard M. Adleman 一起提出了著名的非对称加密算法 —— RSA 算法. RSA 算法利用计算机无法快速实现大数的质因数

2024-06-20 19:28:59 880

原创 Docker 环境下 3D Guassian Splatting 的编译和配置

很火, 也想看一下.下面简单记录一下 Docker 环境下编译和配置 3D Guassian Splatting (下面简称 GS) 的过程.GS 开源代码地址 https://github.com/graphdeco-inria/gaussian-splatting?

2024-05-31 16:22:02 834 4

原创 iSAM2 部分状态更新算法 (II - 源码阅读 - GTSAM)

上一篇博文中, 我们尝试解读了 iSAM2 算法中的部分状态更新子算法的原理.这里我们看一下 GTSAM (https://github.com/borglab/gtsam) 中源码如何实现 “部分状态更新” 的.

2024-03-22 22:35:11 878

原创 iSAM2 部分状态更新算法 (I - 原理解读)

Title: iSAM2 部分状态更新算法 (I-原理解读)文章目录I. 前言II. 部分状态的更新 (Partial State Update)III. 因子图的线性化 (Linearization of Factor Grahps)1. 简单实例的设定2. 一个线性化计算3. 其他线性化计算4. 状态更新量说明IV. 部分 QR 分解实现变量消元 (Eliminating Variables Using Partial QR)1. 首变量的消元2. 中间变量的消元3. 最末变量的消元V. 状态更新的

2024-03-21 20:44:36 979

原创 贝叶斯树增量式更新的细嚼慢咽

Kaess 等人在论文 “The Bayes Tree: An Algorithmic Foundation for Probabilistic Robot Mapping”[1]中提出了一种新型的数据结构 ——贝叶斯树 (Bayes Tree)之前的博文对贝叶斯树的特性进行了介绍, 也介绍如何基于已获得的贝叶斯网络构建贝叶斯树.本篇博文应用实例介绍在获得新的因子 (如测量因子、里程计因子、GPS因子等) 后贝叶斯树的增量更新算法。

2024-03-11 21:56:52 1131

原创 贝叶斯树定义与构建的寻行数墨

之前博客写到 SLAM 问题的因子图建模以及因子图计算中通过消元获得贝叶斯网络的过程. 这里我们继续跟着原作者的研究一起看看并记录一下.Kaess 等人在论文 “The Bayes Tree: An Algorithmic Foundation for Probabilistic Robot Mapping”[1]中提出了一种新型的数据结构 ——贝叶斯树 (Bayes Tree)本篇博文中,- 先简单翻译原作者对贝叶斯树的介绍, 以了解该数据结构的特性;- 然后应用实例。

2024-03-06 21:34:47 1225 1

原创 GTSAM 中的鲁棒噪声模型与 M-估计 (GTSAM Robust Noise Model and M-Estimator)

查看GTSAM文档[1](/gtsam/doc/robust.pdf) 过程中做了一些推导, 记录一下.主要围绕对因子图优化计算中对离群点的抑制而展开.本文介绍了因子图计算中的鲁棒噪声模型、鲁棒参数估计、M-估计、非线性加权最小二乘问题、迭代重加权最小二乘法等.主要围绕因子图计算中的离群点抑制以获得不受污染的优化估计——这一关键目标进行叙述和推导.

2024-02-26 20:53:36 1034

原创 基于 GTSAM 的因子图简单实例

针对上一篇博文中提到的 “一个简单的 SLAM 中的因子图例子”, 基于 GTSAM 进行了简单应用测试.

2024-02-21 19:36:03 1230

原创 因子图、边缘化与消元算法的抽丝剥茧 —— Notes for “Factor Graphs for Robot Perception“

Title: 因子图、边缘化与消元算法的抽丝剥茧 —— Notes for “Factor Graphs for Robot Perception”文章目录I. 前言II. 因子图的基本概念1. 因子图的定义2. SLAM 中的因子图A. 因子图的图示B. 因子图的因式C. 因子图的二分图形式III. 边缘化与消元运算的基本原理1. 边缘化的定义2. SLAM 中的边缘化3. SLAM 中的变量消元算法A. 变量消元算法伪代码B. 消除第一个状态变量C. 消除第二个状态变量C. 消除第三个状态变量C.

2024-02-01 20:42:39 1317 4

原创 非线性最小二乘问题的数值方法 —— 狗腿法 Powell‘s Dog Leg Method (II, Python 简单实例)

本篇博文作为对前述 “非线性最小二乘问题的数值方法 —— 狗腿法 Powell‘s Dog Leg Method (I - 原理与算法)” 的简单实践扩展.理论部分参见前述博文, 此处不再重复. 这里只是补充一个简单的 Python 实例.

2024-01-22 22:24:16 1160

原创 非线性最小二乘问题的数值方法 —— 狗腿法 Powell‘s Dog Leg Method (I - 原理与算法)

Title: 非线性最小二乘问题的数值方法 —— 狗腿法 Powell’s Dog Leg Method (I - 原理与算法)文章目录I. 前言II. 线搜索类型和信赖域类型1. 线搜索类型 —— 最速下降法2. 信赖域类型3. 柯西点III. 狗腿法的原理1. 狗腿法的构建2. 狗腿法的优化说明3. 狗腿法的插值权重IV. 狗腿法的流程1. 狗腿法的信赖域控制2. 狗腿法的停止条件条件一. 梯度不再下降条件二. 迭代点不更新条件三. 残差足够小条件四. 达到最大迭代数3. 狗腿法的实现流程IV. 总

2024-01-18 23:14:24 822

原创 非线性最小二乘问题的数值方法 —— 从高斯-牛顿法到列文伯格-马夸尔特法 (II, Python 简单实例)

本篇博文作为对前述 “非线性最小二乘问题的数值方法 —— 从高斯-牛顿法到列文伯格-马夸尔特法 (I)” 的简单实践扩展.理论部分参见前述博文, 此处不再重复. 这里只是补充一个简单的 Python 实例.

2024-01-11 20:34:37 1064

原创 非线性最小二乘问题的数值方法 —— 从高斯-牛顿法到列文伯格-马夸尔特法 (I)

关联博客非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (I)非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (II)非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (III)非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (IV)非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (实例篇 V)本篇博客从高斯-牛顿法开始, 引入阻尼高斯-牛顿法. 阻尼高斯-牛顿法视作为 “初级/原始” 的列文伯格-马夸尔特法.

2024-01-09 19:54:23 1291 5

原创 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (实例篇 V)

本篇博文作为对前述 “非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法” 的实践扩展, 理论部分参见前述博文, 此处不再重复.

2024-01-02 19:52:32 1204

原创 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (IV)

本篇博客按照如下先后顺序回顾了, 高斯-牛顿法这一广泛应用于最小二乘问题求解的数值方法的来龙去脉- 牛顿迭代法解一元非线性方程;- 牛顿迭代法推广到高维形式;- 最小二乘问题的牛顿迭代法求解;- 由牛顿迭代法推出高斯-牛顿法;- 高斯-牛顿法的依据、优势、优化观点下的解读;- 最小二乘法历史与高斯的贡献.需要强调的是, 高斯-牛顿法的应用基于如下先决条件- 误差函数rir_iri​i12⋯mi12⋯m) 在包含最优参数x∗x∗。

2023-12-28 21:41:50 1025

原创 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (III)

Title: 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (III)姊妹博文**非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (I) ⟵\longleftarrow⟵ 本篇非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (II)非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (III)非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (IV)目录I.引言II.牛顿迭代法解非线性方程   1

2023-12-28 21:40:05 1269

原创 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (II)

Title: 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (II)非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (I)⟵本篇非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (II)非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (III)非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (IV)I.引言III.牛顿迭代法解非线性最小二乘问题1.从方程问题到最小二乘问题的演化。

2023-12-28 21:37:32 1409

原创 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (I)

原本只写一篇博文关于 “非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法”,但因为网站发布字数的限制, 拆成了几篇.

2023-12-28 21:34:29 1322

原创 Livox_ros_driver2 消息 (msg) 类型对 SLAM 应用程序的适配

实际选型中, 拿到最新的 Livox 激光传感器, 比如 HAP, 原厂也提供了 ROS 驱动支持 livox_ros_drivers2 (https://github.com/Livox-SDK/livox_ros_driver2).

2023-12-07 20:35:46 1733

原创 Scan Context / Scan Context ++ 论文和源码阅读

Scan Context/Scan Context ++ 论文[1], [2]和源码[3]理解起来并不难, 但还是记录一下以备忘.以上为对 Scan Context 内容的整理笔记.论文提到了部分点云特征描述子需要依赖法线, 而自动驾驶环境比较杂乱获得稳定地法线比较困难;论文也提到了点云稀疏程度和扫描距离有关, 而极坐标形式能够很好的兼容这种问题.认可和赞赏论文的这些描述并得到了较好的结果.

2023-12-01 21:44:06 9703 9

原创 外骨骼运动控制方法的简单解读

针对如下四种外骨骼运动控制方法, 进行论文调研与简单解读.[1] 关节运动控制 —— 运动轨迹/运动意图的跟踪[2] 柔性交互控制 —— 最常用方法, 提高外骨骼和人交互的 “透明性”[3] 能量成型控制 —— 借鉴双足机器人的无源步态控制[4] 贝叶斯优化 —— 控制参数的优化与学习。

2023-11-29 23:29:32 1290

原创 [科普] 无刷直流电机驱动控制原理图解

本博客文章主要涉及无刷直流电机的电调相关的基本概念:- 直流电机的基本概念和原理- 无刷直流电机的 “六步换向法”- 无刷直流电机的有感控制- 无刷直流电机的无感控制- 无刷直流电机的调速与制动最后列举了开源方案供参考和研究.

2023-11-26 14:14:10 10016 7

原创 Umeyama 算法之源码阅读与测试

SLAM 轨迹的对齐和评估时, 多用 Umeyama 算法实现.该算法从给定的两个欧几里得空间的关联点集中找出最小误差平方意义下的相似变换参数 (Similarity Transformation, 旋转+平移+缩放)[1]在上一篇博文中, 我们已经详细推导了该算法的数学原理.这里我们看一下实际应用中 Umeyama 算法的源码实现, 分别是- Eigen[2]中 Umeyama 算法源码- PCL[3]中 Umeyama 算法源码- evo[4]中 Umeyama 算法源码。

2023-11-14 21:24:08 461 2

原创 相似变换 (旋转、平移、缩放) 参数的最小方差估计 —— Umeyama 算法详细推导 (II)

Title: 相似变换 (旋转、平移、缩放) 参数的最小方差估计 —— Umeyama 算法详细推导 (II)文章目录前言I. Umeyama 算法1. 引理2. 定理II. 推导1. 正则矩阵的定义与性质2. 目标函数3. 平移参数的最优估计4. 旋转参数的最优估计5. 缩放参数的最优估计6. 最小化目标函数总结参考文献相关博文介绍- 矩阵乘法可交换与可同时对角化的关系 —— Umeyama 算法推导的数学准备 (I)- 旋转矩阵约束下的朗格朗日乘子 —— Umeyama 算法推导的数学准备

2023-11-13 22:21:44 601

原创 旋转参数的最小方差估计 —— Umeyama 算法详细推导 (I)

SLAM 轨迹的对齐和评估时, 多用 Umeyama 算法实现.该算法要解决的问题为:给定两个mmm维空间内的点集 {xixi​} 和 {yiyi​} (其中i12ni12n) 找出最小误差平方意义下的相似变换参数 (包括旋转R\mathbf{R}R、平移t\mathbf{t}t、缩放ccc).

2023-11-11 23:13:51 523

原创 矩阵乘操作、三角化、开方特征值 —— Umeyama 算法推导的数学准备 (III)

本篇博客梳理一下如下三个概念[1] 矩阵乘的操作[2] 矩阵的上三角化[3] 已知平方矩阵的特征值求原矩阵的特征值主要目标是为了明确第三个概念, 作为点云配准的奇异值算法 (Umeyama 算法) 推导的一个数学基础.当然这些基本的数学概念在教科书中都能找到[1], 写出来让自己理解更透彻一点.

2023-11-08 22:55:50 311

原创 奇异值分解之 Frobenious-范数下低秩近似的证明

Title: 奇异值分解之 Frobenious-范数下低秩近似的证明其中 2-范数情况已经在 “奇异值分解之常用结论” 中完成证明, 这里开始 Frobenious-范数情况的证明.上一篇博客 “奇异值分解之 Weyl 不等式及其变体” 中已经整理并证明了两种形式的 Weyl 不等式, 包括上述奇异值形式.Proof[1]对 Weyl 不等式进行变量替换X=A−BY=Bj−1=k(1)\begin{aligned}\mathbf{X} &= \mathbf{A} - \mathbf{B}\\\ma

2023-11-07 23:06:13 257

原创 奇异值分解之 Weyl 不等式及其变体

Title: 奇异值分解之 Weyl 不等式 (Weyl Inequality)文章目录引言I. 子空间相交 Subspace Intersection1. 子空间相交引理2. 子空间相交定理II. 特征值形式的 Weyl 不等式 Weyl's Inequality for Eigenvalues1. 一般形式的证明A. 第一个不等式的证明B. 第二个不等式的证明2. 特殊形式的证明3. 正定扰动的证明III. 奇异值形式的 Weyl 不等式 Weyl's Inequality for Singular

2023-11-07 20:38:09 1684

原创 奇异值分解之 Courant-Fischer 定理及其变体

Title: 奇异值分解之 Courant-Fischer 定理文章目录前言I. Rayleigh 商 (Rayleigh Quotient)II. Courant-Fischer 定理一. 证明第一个等式A. 证明 LHS ≤\leq≤ RHSB. 证明 LHS ≥\geq≥ RHSC. 证明 LHS = RHS二. 证明第二个等式A. 证明 LHS ≥\geq≥ RHSB. 证明 LHS ≤\leq≤ RHSC. 证明 LHS = RHSIII. Courant-Fischer 定理的正交补形式一.

2023-11-03 23:12:53 701

原创 奇异值分解之常用结论

Title: 奇异值分解 —— Umeyama 算法推导的数学准备 (III)文章目录前言I. 奇异值分解定义II. 奇异值分解性质性质一. 存在性性质二. 秩 1 矩阵和与截断和性质三. 残余部分的奇异值性质四. 范数性质性质五. 正交投影性质六. 低秩近似III. 低秩近似的简单例子总结参考文献前言奇异值分解 (Singular Value Decomposition, SVD) 在数值算法、数据处理等都有非常重要作用. 做机器人相关研发的话, 奇异值分解是最小二乘法之下的最常用的工具了. 而这

2023-11-01 23:01:10 487

原创 旋转矩阵约束下的朗格朗日乘子 —— Umeyama 算法推导的数学准备 (II)

Title: 旋转矩阵约束下的朗格朗日乘子 —— Umeyama 算法推导的数学准备 (II)文章目录I. 背景II. 推导1. 拉格朗日乘子法2. 旋转矩阵约束A. 正交约束B. 行列式约束C. 拉格朗日函数构造 (3 维)D. 拉格朗日函数构造 (3 维) 的矩阵形式E. 拉格朗日函数构造 (mmm 维)2. 注记参考文献I. 背景Umeyama 算法[1]要解决的问题给定两个 mmm 维空间内的点集 {xi\mathbf{x}_ixi​} 和 {yi\mathbf{y}_iyi​} (其中

2023-10-30 20:53:08 325

原创 矩阵乘法可交换与可同时对角化的关系 —— Umeyama 算法推导的数学准备 (I)

Title: 矩阵乘法可交换与可同时对角化的关系。

2023-10-26 23:53:30 1478

原创 机器人中常用矩阵等式-IV (Identities 11~14 的证明)

and then take determinant (行列式) of the resulting。Title: 机器人中常用矩阵等式-IV (Identities 11~14 的证明)中 Identities 11~14 的证明.The adjugate (伴随矩阵) of。The minor (余子式)反对称矩阵. 具有如下性质。为自变量的标量函数. 故。

2023-10-26 00:00:34 94

原创 激光雷达和 IMU 标定中的运动方程

阅读论文中[1]遇到刚体运动学, 好久没用都忘了, 从新推导记录一下. 事实上, 关于自由刚体运动学和动力学有比较多的细节需要注意和留心, 不然很容易出错.这是一个关于自由刚体运动学方程的推导过程.后面的激光雷达和 IMU 的外参标定是利用得到的运动方程去做最小二乘法估计, 这是另一个有趣故事了.

2023-10-18 23:33:54 303

原创 激光雷达的运动补偿投影矩阵

扫描式的激光雷达, 没有 “全局快门”, 同一帧内的激光数据是不同时刻的测量值. 这样存在激光雷达运动导致的激光点云变形, 或者被测物体运动导致的点云变形.机器人 SLAM 应用中, 一般是为了对固态环境建模, 动态被测物体多数情况要被滤除. 故我们先不考虑 “被测物体运动导致的点云变形”.这里我们简单记录 LOAM 及相关演变算法的运动补偿投影矩阵的推导计算[1] [2]符号含义j一帧激光点云中包含的第 i 个激光点, 也可视作被测物体点如果激光雷达每一帧共扫描nnn个点, 则j∈1。

2023-10-12 22:21:33 205

原创 基于 Boost Preprocessor 的 Manifold Toolkit (MTK) 通用流形类构建 —— IKFoM 中实现的源码解读

我们之前系列解读了 IKFoM 的数学原理 (博客 I博客 II博客III博客 IV博客 V), 也对应用 IKFoM 进行建图的Fast_LIO 的前后处理设置进行了说明.我们本篇对 IKFoM 的基础 —— OpenSLAM 的流形工具箱 (Manifold Toolkit, MTK) 进行部分解读. IKFoM 主要用到 MTK 进行流形构建和流形上的基础数学计算. 这里我们关注 MTK 如何实现各种流形的构建, 尤其复合流形的构建.

2023-10-08 19:30:59 655

原创 Docker 环境下运行 Fast_LIO 进行三维建模的前/后处理设置

按照测绘行业术语, 我们将建图视作后处理, 先 “外业” 扫图, 再 “内业” 建图.内业建图基于 Docker 上部署的 Fast_LIO (https://github.com/hku-mars/FAST_LIO).建图完成后还需要注意 PCD 点云显示的设置等后处理.这里记录下一些设置以备忘.以上只是一些简单记录.(如有问题, 请指出)

2023-09-25 20:30:12 1329

原创 流形上的投影雅可比矩阵 (Jacobian Matrix) - Notes for “Kalman Filter on Differentiable Manifolds” - IKFoM (V)

题目: 流形上的投影雅可比矩阵 (Jacobian Matrix) - Notes for “Kalman Filter on Differentiable Manifolds” - IKFoM (V)文章目录@[toc]前言I. Jacobian MatrixII. SO(3)SO(3)SO(3) 上的 Jk+1j\mathbf{J}_{k+1}^jJk+1j​III. SO(3)SO(3)SO(3) 上的 Lk+1\mathbf{L}_{k+1}Lk+1​IV. S2(r)\mathbb{S}^2(

2023-09-20 20:56:51 315

原创 流形上的迭代测量更新 - Notes for “Kalman Filter on Differentiable Manifolds” - IKFoM (IV)

题目: 流形上的迭代测量更新 - Notes for “Kalman Filter on Differentiable Manifolds” - IKFoM (IV)文章目录@[toc]前言I. 预备知识1. 迭代扩展卡尔曼滤波的测量更新2. 贝叶斯定理3. 最大后验估计II. 误差融合估计1. 初始误差2. 测量残差与似然概率3. 误差投影与先验概率4. 最大后验估计与最小二乘法III. 迭代更新计算1. 状态迭代更新2. 协方差重新投影IV. 融合与更新的几何示意总结参考文献前言

2023-09-15 23:51:40 406 2

原创 流形上的状态预测及误差传播 - Notes for “Kalman Filter on Differentiable Manifolds” - IKFoM (III)

题目: 流形上的误差状态预测方程及误差传播 - Notes for “Kalman Filter on Differentiable Manifolds” - IKFoM (III)文章目录前言I. 流形上的基本运算 The ⊞\boxplus⊞ \ ⊟\boxminus⊟ \ ⊕\oplus⊕ OperationsII. 误差状态预测方程 The Equation of the Error-State Prediction1. 系统状态方程 The Equation of the System Sta

2023-09-08 22:47:00 364 4

写给 Baby 的 Kd-tree 的实现原理 - demo程序

Blog “写给 Baby 的 Kd-tree 的实现原理” 的 demo 程序

2023-08-10

空空如也

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

TA关注的人

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