随笔分类 - SLAM
摘要:内外点之分最简单的说法就是是否符合当前位姿的判断:如果根据当前位姿,之前帧二维特征点所恢复出的地图点重投影到当前帧与实际的二维特征点匹配不上了,那么认为这个是质量差的点是outlier,抛弃掉,如果能匹配上,那就是inlier,保留。 还有一种情况,根据地图点3D位置,当前帧位姿理论上看不到这个地图
阅读全文
摘要:SE(3) SE(3)是欧式变换。 例如 欧式变换不改变物体的形状和长度,可以理解为就是把一个物体移到另一个位置 Sim(3) Sim(3)是相似变换 例如 $$ S=\begin{bmatr
阅读全文
摘要:思路 第一帧为参考帧 对后面每一帧 找到极限方向 进行极线搜索 找出NCC最高的 高斯深度滤波 计算不确定度 高斯融合 dense_mapping.cpp #include<iostream> #include<vector> #include<fstream> using namespace st
阅读全文
摘要:Ceres实现代码如下: #include <iostream> #include <ceres/ceres.h> #include "common.h" #include "SnavelyReprojectionError.h" using namespace std; void SolveBA(
阅读全文
摘要:经过前面的学习,我们的问题变为如何在有噪声的数据中进行准确的状态估计。 状态估计问题 经典SLAM模型,由一个运动方程和一个观测方程构成: $$
阅读全文
摘要:单层光流 void OpticalFlowSingleLevel( const Mat &img1, const Mat &img2, const vector<KeyPoint> &kp1, vector<KeyPoint> &kp2, vector<bool> &success, bool in
阅读全文
摘要:ICP中的使用SVD和使用BA的代码如下: #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/highgui/high
阅读全文
摘要:##代码 #include<iostream> #include<opencv2/core/core.hpp> #include<opencv2/features2d/features2d.hpp> #include<opencv2/highgui/highgui.hpp> #include<chr
阅读全文
摘要:g2o简介 g2o(General Graphical Optimization),是一个在SLAM领域广为使用的优化库。基于图优化理论。 图优化理论 把优化问题表现成图的一种方式。一个图由若干个顶点和连接着这些顶点的边组成。 用顶点表示优化变量,用边表示误差项。对于一个非线性最小二乘问题,我们可以
阅读全文
摘要:Ceres简介 Ceres是一个最小二乘问题求解库。其求解的最小二乘问题的一般形式如下: 在这个问题中,x_1,...x
阅读全文
摘要:对‘cv::String::deallocate()’未定义的引用 检查CMakeLists.txt路径拼写 错误:target_link_libraries(gaussNewton ${OpenCV_INCLUDE_LIBS}) 正确:target_link_libraries(gaussNewt
阅读全文
摘要:相机模型 描述了一束光线通过针孔之后,在针孔背面投影成像的关系。 相机透镜的存在会使得光线投影到成像平面的过程中产生畸变。 因此,我们用针孔和畸变两个模型来描述整个投影过程。这两个模型能够把外部的三维点投影到相机内部成像平面,构成相机的内参数。 针孔相机模型 $$ \frac{Z}{f}=\frac
阅读全文
摘要:群 定义 群(Group)是一种集合加上一种运算的代数结构,记作(A,⋅)。其中A代表集合,⋅是定义在该集合上的二元运算。那么,如果这个运算满足以下几个条件,则称G=(A,⋅)为群 封闭性 结合律 幺元 逆 李群的定义 李群是指具有光滑连续性质的群 特殊正交群 特殊正交群SO(n) 也就是所谓的旋转
阅读全文