- 博客(80)
- 收藏
- 关注
原创 orbslam3 <B>时序融合 10/99
按时间戳同步视觉帧与对应时段IMU数据。将IMU数据预积分,获得惯性预测。以IMU预测为先验,视觉为观测,通过优化器完成融合。这种方式确保了时间上的数据流严格对齐,视觉与IMU信息互补,提高了系统在快速运动、低光等恶劣场景下的鲁棒性和精度。如果你需要ORB-SLAM3相关代码的具体片段或核心函数详细解释,可以进一步指定!
2025-11-05 15:43:49
354
原创 orbslam3 <B> RANSAC 基础、单应矩阵 8/99
如需代码示例或OpenCV使用方法(如。在RANSAC或其他算法中估算。(如RANSAC等鲁棒估计时)参数),可进一步提问!
2025-10-28 13:35:08
580
原创 orbslam3 <B> Frame 7/99
Frame类的变量设计覆盖了视觉SLAM系统的所有基础需求:运动状态、特征管理、地图点关联、IMU融合、匹配效率、重定位、数据组织等。每一个变量都有明确的功能定位,支撑着Frame对象在SLAM流程中的各个环节高效协作。同一类型下变量具备统一用途,例如所有Eigen::Vector3f类变量用于三维空间矢量描述,所有cv::Mat类变量用于图像或矩阵数据管理。指针类变量用于对象间引用与数据流转,实现模块化和数据共享。标准容器类型用于批量管理和高效访问(如特征点、匹配关系、地图点等)。
2025-10-24 11:23:04
615
原创 orbslam3 <B> mlRelativeFramePoses 6/99
这是一个保存每帧相对于参考关键帧位姿的列表,类型为。用于后期恢复完整相机轨迹。数据结构:理解链表和SE(3)变换的选择及优缺点。变量:关注变量生命周期、赋值方式、与其他变量的协同工作。算法:掌握轨迹数据的生成、维护、遍历和使用流程,以及相关数学变换。建议多查阅的用法,理解矩阵乘法、逆运算的数学含义。用C++实现一个简单版本,练习链表的插入、遍历等操作。结合SLAM整体流程,思考为什么要存储相对位姿以及如何用这些数据做轨迹优化。从 C++ 的角度来看,
2025-10-24 10:24:34
953
原创 orbslam3 <B>Tracking 类 5/99
类中主要成员变量的解释及其作用。如需针对某一类型详细展开或举例,请告知!(即变量的数据类型)对。
2025-10-24 09:54:53
824
原创 embedded <B> RH850 TAUJ input capture 1/99
【代码】embedded <B> RH850 TAUJ input capture 1/99。
2025-10-23 16:25:47
554
原创 7sch graph <B> A* 1/99
Master A Algorithm with a 7-Step Creative Framework* This structured approach transforms complex topics like A* into intuitive understanding: 1️⃣ Define – List 7 key questions (e.g., heuristic admissibility, open/closed lists). 2️⃣ Diverge – Brainstorm pla
2025-10-23 14:33:11
875
原创 7sch C++ <B> weak_ptr circular reference 1/99
Excellent — let’s take the statementand explain it using your 7SCH method — the 7-Step Creative Habit.What’s unclear or worth exploring?🎯 Defined question:How does prevent circular ownership that leads to memory leaks?🎯 Divergent insight: breaks loops
2025-10-23 14:02:12
810
原创 ADV <U> adjoint matrix in slam 4/99
本文探讨了ORB-SLAM3中g2o库的SE3位姿表示与雅可比矩阵计算。研究发现:1) 核心的.adj()函数实现在g2o的se3quat.h中,用于计算SE3位姿的伴随矩阵;2) 在优化过程中,g2o的边缘线性化会调用.adj()来计算雅可比矩阵;3) 点变换的雅可比矩阵[I, -(TP)^]与位姿的伴随矩阵Ad结合,构成了完整的位姿优化雅可比矩阵。这种组合实现了局部坐标系扰动到残差空间的转换,是视觉SLAM位姿图优化的关键数学工具。文章通过理论推导和代码实现相结合,揭示了ORB-SLAM3优化器的底层数
2025-10-14 10:39:39
964
原创 ADV <U> adjoint matrix in slam 3/99
我们称刚体运动非线性 (Non-linear):旋转RRR是非线性的(例如由三角函数或四元数表示,且必须满足RTRIR^T R = IRTRI的约束)。群结构 (Group Structure):它们满足结合律、有单位元、每个元素有逆元。由于这些非线性和群结构,不能简单地使用传统的线性代数工具来计算导数。伴随矩阵AdTAdT的存在,正是为了在保持这种非线性群结构的同时,提供一种在局部切空间(李代数)中进行线性化和导数计算的正确机制。简而言之,这个特殊函数就是SE3。
2025-10-13 17:22:46
309
原创 ADV <B> map in C++ 7/99
To use in C++ effectively, you should apply the Associative Container Pattern, which involves defining the Key-Value relationship and utilizing the map’s logarithmic O(logn)O(\log n)O(logn) lookup property, often replacing a linear search.Here is an anal
2025-10-13 09:22:40
646
原创 ADV <B> priority_queue in C++ 6/99
【代码】ADV <B> priority_queue in C++ 6/99。
2025-10-09 11:09:59
635
1
原创 ADV <B> list(size_ push_front...)in C++ 5/99
Excellent question 🔥 — you want to analyze the C++ (linked list container) itself — not a LeetCode problem — through the Algorithm / Data Structure / Variable pattern.Let’s do that thoroughly. is a doubly linked list — each node links both forward and ba
2025-10-06 07:00:00
908
原创 ADV <B> analyze LeetCode #3 — Longest Substring Without Repeating Characters 3/99
Perfect!
2025-10-05 14:12:10
558
原创 DS tree <B> priority_queue --> tree in Huffman Algorithm 1/99
【代码】DS tree <B> priority_queue --> tree in Huffman Algorithm 1/99。
2025-10-05 11:11:38
748
原创 algorithm <B> data access in huffman algorithm 3/99
Yes — in the Huffman algorithm, there are several points where data is accessed or retrieved. Let’s break it down carefully:What is accessed: each character in the input string.Purpose: increment the frequency count in .Data structure used: → allows
2025-10-04 14:05:32
991
原创 algorithm <B> data access in array 2/99
【代码】algorithm <B> data access in array 2/99。
2025-10-04 13:28:28
696
原创 tech recursion <B> Recursive function to build Huffman codes 1/99
【代码】tech recursion <B> Recursive function to build Huffman codes 1/99。
2025-10-03 19:13:27
136
原创 DS unordered_map <B> in Huffman Algorithm 1/99
使用高效:快速统计每个字符出现次数方便:直接用字符做键,不需要手动管理索引简洁:自动初始化,代码量少💡 如果用数组,也只能统计 ASCII 范围的字符(比如),而可以处理任意字符集合(UTF-8 等扩展字符)
2025-10-03 18:47:38
437
原创 DS unordered_map <T> in Two Sum find&end 1/99
容器末尾之后的位置(past-the-end)作用:用来判断find()是否成功找到 key关键点:不能对end()解引用,否则会出错。
2025-10-03 18:44:40
412
原创 DS container adapters <B> priority_queue in Huffman Algorithm 2/99
好问题 👍在里之所以使用 priority_queue。
2025-10-02 15:58:33
165
原创 algorithm bfs <T> Binary Tree Level Order Traversal 1/99
给定一棵二叉树,返回它的层序遍历(逐层从左到右)。
2025-10-02 14:01:41
181
原创 algorithm hash <T> with two sum 1/99
用题来做一个“小测验”。我先写一部分 C++ 解答,然后挖空一部分地方留给你填写。
2025-10-02 10:32:26
215
原创 orb-slam3:loop closing 2/99
视觉词袋模型(DBoW2):用于高效地在数据库中查询与当前帧相似的关键帧。相对位姿计算:通过计算候选关键帧与当前关键帧之间的相对位姿,判断是否存在回环。图优化(Sim3):在检测到回环后,使用图优化方法对地图进行全局一致性优化,减少地图漂移。啊,你说的4。
2025-10-02 09:16:58
426
原创 algorithm dfs <B> 示例及pseduocode及visited 1/99
DFS(0) → DFS(1) → DFS(2) → 回溯 → DFS(4) → DFS(3)这样你就可以清楚看到:DFS 是“走到最深,再回溯”。就是 DFS 的精髓。
2025-10-01 16:06:58
766
原创 DS container adapters <B> can not use iterator 1/99
容器适配器的主要目的是强制用户只能按照特定的抽象数据类型(ADT)规则来操作数据,从而保证数据结构的完整性和行为的正确性。必须是 LIFO(后进先出)。允许使用迭代器意味着你可以访问和修改栈中任何位置的元素,这会破坏 LIFO 的特性。必须是 FIFO(先进先出)。迭代器会允许你从中间删除或修改元素,破坏 FIFO 的原则。必须是堆结构。迭代器会暴露底层数组的无序状态,并且允许你修改某个元素而不触发堆的重新调整,这会破坏优先级队列的排序保证。
2025-10-01 14:13:47
753
原创 DS graph <B> 图的表示 1/99
图是由节点(Node / Vertex)和边(Edge)构成的数据结构。节点:图中的元素,比如城市、关键帧、网页等边:节点之间的连接关系,可以有权重(Weighted)或无权重(Unweighted)类型无向图:边没有方向,A - BB - A有向图:边有方向,A → B≠B → A加权图:边带权值无权图:边只表示连通关系。
2025-09-30 16:48:24
257
原创 C++ sort中的算法思想 3/999
算法思想在sort中的作用分治(Divide and Conquer)快速排序核心思想,将数组分为子问题递归排序堆思想在递归过深时切换到堆排序,保证最坏情况时间复杂度插入排序优化小规模数组使用插入排序提高效率。
2025-09-30 16:42:16
189
原创 algorithm: find vs search 双指针 2/999
特性分析目标位置是否唯一✅ 是,通过每次比较可以确定唯一子区间是否尝试多条路径❌ 不会同时尝试左、右两边,只沿着一条路径向下时间复杂度O(log n)类比你找朋友知道他住在一栋楼的第几层,你每次只去一半,最终必然直接找到 → 查找,不是探索二分法不是“搜索”,因为没有多条可能路径需要尝试它是有序集合中高效定位元素的查找方法如果你愿意,我可以画一个二分查找路径示意图,用箭头显示查找过程,让查找和搜索的区别直观可见。你希望我画吗?
2025-09-30 14:25:33
947
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅