摘要: 本文主要是学习《Factor Graphs for Robot Perception》一书是记录的笔记,耗时较长,篇幅较大,后续再做细致的分节以及补充相关知识。 问题表达 Measurement predictions and noise models are the core elements o 阅读全文
posted @ 2020-12-29 17:00 hardjet 阅读(4470) 评论(0) 推荐(2) 编辑
摘要: 优化问题定义以及求解 通用定义 解决问题的开始一定是定义清楚问题。这里引用g2o的定义。 $$ \begin{aligned} \mathbf{F}(\mathbf{x})&=\sum_{k\in \mathcal{C}} \underbrace{\mathbf{e}_k(\mathbf{x}_k, 阅读全文
posted @ 2019-11-09 20:06 hardjet 阅读(2225) 评论(0) 推荐(1) 编辑
摘要: 该方法源于《Least-Squares Rigid Motion Using SVD》,原文推导十分详细,这里自己也仔细推导了一遍,有些地方加以注释整理。 问题定义 假设我们有两个点云集合$\mathcal=\left{\mathbf{1}, \mathbf{2}, \ldots, \mathbf\ 阅读全文
posted @ 2019-10-21 16:59 hardjet 阅读(1436) 评论(3) 推荐(0) 编辑
摘要: 视觉slam中相邻帧特征点匹配时,动辄上千个特征点,匹配错误的是难免的,而误匹配势必会对位姿精度以及建图精度造成影响,那么如何分辨哪些是误匹配的点对儿呢?如果已知两帧的的单应矩阵,假设单应矩阵是没有误差的,那么两帧中匹配正确的特征点通过单应矩阵是重投影是不应该有误差的或者误差十分小,而误匹配的特征点 阅读全文
posted @ 2019-10-20 17:21 hardjet 阅读(2266) 评论(0) 推荐(0) 编辑
摘要: 建图模块 mapping_module在初始化系统的时候进行实例化,在构建实例的时候会实例化local_map_cleaner和local_bundle_adjuster。系统启动的时候会在另外一个线程中启动该模块。 对新增的关键帧进行建图 观测门限清理 在跟踪模块优化局部地图optimize_cu 阅读全文
posted @ 2019-09-21 20:07 hardjet 阅读(2122) 评论(0) 推荐(0) 编辑
摘要: 在成功初始化之后,会创建地图以及局部地图。 创建地图 在初始化正常过后,紧接着会创建地图 计算lm的描述子 一个lm可能被很多帧看到,每个帧中由于拍摄的时间、空间、光照条件的原因导致相同的特征点的描述子会稍微不同,通过计算找到一个与其他描述子距离相近的描述子作为最终lm的描述子。 计算lm的几何信息 阅读全文
posted @ 2019-09-12 16:40 hardjet 阅读(2347) 评论(0) 推荐(0) 编辑
摘要: 视觉里程计(Visual Odometry, VO),通过使用相机提供的连续帧图像信息(以及局部地图,先不考虑)来估计相邻帧的相机运动,将这些相对运行转换为以第一帧为参考的位姿信息,就得到了相机载体(假设统一的刚体)的里程信息。先上一张本文主要内容的框图: 初始化实例 在实例化跟踪器的时候会实例化一 阅读全文
posted @ 2019-09-04 18:28 hardjet 阅读(3614) 评论(0) 推荐(1) 编辑
摘要: 配置文件 在进入正题之前先做一些铺垫,在openvslam中,配置文件是必须要正确的以.yaml格式提供,通常需要指明使用的相机模型,ORB特征检测参数,跟踪参数等。 相机参数 可以看到openvslam支持单目(Monocular)、双目(Stereo)以及RGBD相机,成像模型支持Perspec 阅读全文
posted @ 2019-09-02 19:28 hardjet 阅读(3723) 评论(1) 推荐(1) 编辑
摘要: 尺度空间 参考 "尺度空间理论" 金字塔 当用一个机器视觉系统分析未知场景时,计算机没有办法预先知道图像中物体尺度,因此,我们需要同时考虑图像在多尺度下的描述,获知感兴趣物体的最佳尺度。所以在很多时候,我们会在将图像构建为一系列不同尺度的图像集,在不同的尺度中去检测我们感兴趣的特征。比如:在Harr 阅读全文
posted @ 2019-08-31 14:01 hardjet 阅读(3438) 评论(1) 推荐(1) 编辑