机器人感知
文章平均质量分 96
wzf@robotics_notes
随手记记,顺带分享
展开
-
三维点云深度网络 PointNeXt 源码阅读 (IV) —— PointNeXt-B
到此我们对 PointNeXt 模型的构建和结构有了基本理解.原创 2024-08-16 20:52:33 · 931 阅读 · 0 评论 -
三维点云深度网络 PointNeXt 源码阅读 (III) —— 骨干网络模型
Title: 三维点云深度网络 PointNeXt 源码阅读 (III) —— 骨干网络模型 (BaseSeg、PointNextEncoder、PointNextDecoder、SetAbstraction 和 FeaturePropogation)感谢原作者 Guocheng Qian 开源 PointNeXt 供我们学习 !完成前述博文的分析后, 我们学习和分析一下 PointNeXt 的网络模型的构建方法及实现.如果运行就会产生三维点云深度网络 族中最简单的 网络.下面我们尝试从整体到局部分析原创 2024-08-14 21:18:58 · 833 阅读 · 0 评论 -
三维点云深度网络 PointNeXt 源码阅读 (II) —— 点云数据集构造与预处理
接上一篇博文, 我们继续.本篇博文我们主要关注 PointNeXt 点云数据集的构造、点云数据的预处理/数据增强.PointNeXt供我们学习!数据预处理或者数据增强后, 就可以进入模型训练了.针对深度网络模型的分析学习将是重点也是难点.原创 2024-08-08 23:06:46 · 725 阅读 · 0 评论 -
三维点云深度网络 PointNeXt 源码阅读 (I) —— 注册机制与参数解析
学习了部分PointNeXt源码, 先记录一下, 以备忘.本篇博文分为两部分, 注册机制和参数解析, 理解的重点是注册机制.相关注释和调试信息都是基于下面测试 session.在的main()通过调用, 进而执行BaseSeg(原创 2024-08-02 22:00:15 · 863 阅读 · 0 评论 -
三维点云深度网络 PointNeXt 的安装配置与测试
PointNet (2016年) 和 PointNet++ (2017年) 实现了三维点云的部件分割、目标分类、场景语义解析, 是深度神经网络应用于三维点云理解的开山之作.PointNeXt (2022年, the neXt version PointNet) 是在前辈基础上的优化, 提出了训练策略的优化和网络结构的优化, 旨在进一步提升对三维点云理解的性能.原创 2024-07-25 22:42:21 · 817 阅读 · 0 评论 -
Docker 环境下 3D Guassian Splatting 的编译和配置
很火, 也想看一下.下面简单记录一下 Docker 环境下编译和配置 3D Guassian Splatting (下面简称 GS) 的过程.GS 开源代码地址 https://github.com/graphdeco-inria/gaussian-splatting?原创 2024-05-31 16:22:02 · 1078 阅读 · 7 评论 -
iSAM2 部分状态更新算法 (II - 源码阅读 - GTSAM)
上一篇博文中, 我们尝试解读了 iSAM2 算法中的部分状态更新子算法的原理.这里我们看一下 GTSAM (https://github.com/borglab/gtsam) 中源码如何实现 “部分状态更新” 的.原创 2024-03-22 22:35:11 · 942 阅读 · 0 评论 -
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 · 1114 阅读 · 0 评论 -
贝叶斯树增量式更新的细嚼慢咽
Kaess 等人在论文 “The Bayes Tree: An Algorithmic Foundation for Probabilistic Robot Mapping”[1]中提出了一种新型的数据结构 ——贝叶斯树 (Bayes Tree)之前的博文对贝叶斯树的特性进行了介绍, 也介绍如何基于已获得的贝叶斯网络构建贝叶斯树.本篇博文应用实例介绍在获得新的因子 (如测量因子、里程计因子、GPS因子等) 后贝叶斯树的增量更新算法。原创 2024-03-11 21:56:52 · 1245 阅读 · 0 评论 -
贝叶斯树定义与构建的寻行数墨
之前博客写到 SLAM 问题的因子图建模以及因子图计算中通过消元获得贝叶斯网络的过程. 这里我们继续跟着原作者的研究一起看看并记录一下.Kaess 等人在论文 “The Bayes Tree: An Algorithmic Foundation for Probabilistic Robot Mapping”[1]中提出了一种新型的数据结构 ——贝叶斯树 (Bayes Tree)本篇博文中,- 先简单翻译原作者对贝叶斯树的介绍, 以了解该数据结构的特性;- 然后应用实例。原创 2024-03-06 21:34:47 · 1371 阅读 · 1 评论 -
GTSAM 中的鲁棒噪声模型与 M-估计 (GTSAM Robust Noise Model and M-Estimator)
查看GTSAM文档[1](/gtsam/doc/robust.pdf) 过程中做了一些推导, 记录一下.主要围绕对因子图优化计算中对离群点的抑制而展开.本文介绍了因子图计算中的鲁棒噪声模型、鲁棒参数估计、M-估计、非线性加权最小二乘问题、迭代重加权最小二乘法等.主要围绕因子图计算中的离群点抑制以获得不受污染的优化估计——这一关键目标进行叙述和推导.原创 2024-02-26 20:53:36 · 1188 阅读 · 0 评论 -
基于 GTSAM 的因子图简单实例
针对上一篇博文中提到的 “一个简单的 SLAM 中的因子图例子”, 基于 GTSAM 进行了简单应用测试.原创 2024-02-21 19:36:03 · 1424 阅读 · 0 评论 -
因子图、边缘化与消元算法的抽丝剥茧 —— 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 · 1495 阅读 · 4 评论 -
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 · 1920 阅读 · 0 评论 -
Scan Context / Scan Context ++ 论文和源码阅读
Scan Context/Scan Context ++ 论文[1], [2]和源码[3]理解起来并不难, 但还是记录一下以备忘.以上为对 Scan Context 内容的整理笔记.论文提到了部分点云特征描述子需要依赖法线, 而自动驾驶环境比较杂乱获得稳定地法线比较困难;论文也提到了点云稀疏程度和扫描距离有关, 而极坐标形式能够很好的兼容这种问题.认可和赞赏论文的这些描述并得到了较好的结果.原创 2023-12-01 21:44:06 · 11934 阅读 · 9 评论 -
Umeyama 算法之源码阅读与测试
SLAM 轨迹的对齐和评估时, 多用 Umeyama 算法实现.该算法从给定的两个欧几里得空间的关联点集中找出最小误差平方意义下的相似变换参数 (Similarity Transformation, 旋转+平移+缩放)[1]在上一篇博文中, 我们已经详细推导了该算法的数学原理.这里我们看一下实际应用中 Umeyama 算法的源码实现, 分别是- Eigen[2]中 Umeyama 算法源码- PCL[3]中 Umeyama 算法源码- evo[4]中 Umeyama 算法源码。原创 2023-11-14 21:24:08 · 578 阅读 · 2 评论 -
激光雷达和 IMU 标定中的运动方程
阅读论文中[1]遇到刚体运动学, 好久没用都忘了, 从新推导记录一下. 事实上, 关于自由刚体运动学和动力学有比较多的细节需要注意和留心, 不然很容易出错.这是一个关于自由刚体运动学方程的推导过程.后面的激光雷达和 IMU 的外参标定是利用得到的运动方程去做最小二乘法估计, 这是另一个有趣故事了.原创 2023-10-18 23:33:54 · 359 阅读 · 0 评论 -
激光雷达的运动补偿投影矩阵
扫描式的激光雷达, 没有 “全局快门”, 同一帧内的激光数据是不同时刻的测量值. 这样存在激光雷达运动导致的激光点云变形, 或者被测物体运动导致的点云变形.机器人 SLAM 应用中, 一般是为了对固态环境建模, 动态被测物体多数情况要被滤除. 故我们先不考虑 “被测物体运动导致的点云变形”.这里我们简单记录 LOAM 及相关演变算法的运动补偿投影矩阵的推导计算[1] [2]符号含义j一帧激光点云中包含的第 i 个激光点, 也可视作被测物体点如果激光雷达每一帧共扫描nnn个点, 则j∈1。原创 2023-10-12 22:21:33 · 241 阅读 · 0 评论 -
基于 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 · 753 阅读 · 0 评论 -
Docker 环境下运行 Fast_LIO 进行三维建模的前/后处理设置
按照测绘行业术语, 我们将建图视作后处理, 先 “外业” 扫图, 再 “内业” 建图.内业建图基于 Docker 上部署的 Fast_LIO (https://github.com/hku-mars/FAST_LIO).建图完成后还需要注意 PCD 点云显示的设置等后处理.这里记录下一些设置以备忘.以上只是一些简单记录.(如有问题, 请指出)原创 2023-09-25 20:30:12 · 1468 阅读 · 0 评论 -
写给 Baby 的 Kd-tree 实现原理
这里主要涉及 2 维的Kd 树的构建、最近邻搜索 (Nearest neighbor search, NN search)、K 最近邻搜索 (K-nearest neighbor search, KNN search).K 最近邻搜索与最近邻搜索的思想和实现都差不多, 两个实现之间可以继承, 只是要在计算过程中维护一个前 K 个最近邻的数组.Kd 树是一种树形的描述空间点云的数据结构和算法.关键就两点最小距离的更新、分支界定的剪枝.完整 demo 程序见本文绑定资源.原创 2023-08-10 23:06:59 · 158 阅读 · 2 评论