- 博客(15)
- 收藏
- 关注
原创 SLAM源码分析(十二)
2021SC@SDUSCImuTypes.ccCopyFrom函数;复制上一帧的预积分;pImuPre为上一帧的预积分void Preintegrated::CopyFrom(Preintegrated* pImuPre){ std::cout << "Preintegrated: start clone" << std::endl; dT = pImuPre->dT; C = pImuPre->C.clone(); Info
2021-12-19 21:04:33
330
原创 SLAM源码分析(十一)
2021SC@SDUSCImuTypes.ccIMU参数,imu到相机、相机到imu、协方差、游走协方差class Calib{ template<class Archive> void serializeMatrix(Archive &ar, cv::Mat& mat, const unsigned int version) { int cols, rows, type; bool continuous;
2021-12-19 21:02:16
346
原创 SLAM源码分析(十)
2021SC@SDUSCImuTypes.cc主要实现李群李代数角度归一化;强制让R变成一个正交矩阵,通过NormalizeRotation的得到一个优化后的矩阵。const float eps = 1e-4;cv::Mat NormalizeRotation(const cv::Mat &R){ cv::Mat U,w,Vt; cv::SVDecomp(R,w,U,Vt,cv::SVD::FULL_UV); return U*Vt;}计算反对称
2021-12-12 21:57:03
516
原创 SLAM源码分析(九)
2021SC@SDUSCInitializer.cc,Normalize函数,归一化特征点到同一尺度,作为后续normalize DLT的输入。[x' y' 1]' = T * [x y 1]'归一化后x', y'的均值为0,sum(abs(x_i'-0))=1,sum(abs((y_i'-0))=1Step 1 计算特征点X,Y坐标的均值Step 2 计算特征点X,Y坐标离均值的平均偏离程度Step 3 将x坐标和y坐标分别进行尺度归一化,使得x坐标和y坐标的一阶绝对矩分别为1
2021-12-05 22:52:47
229
原创 SLAM源码分析(八)
2021SC@SDUSCInitializer.cc,ComputeH21函数,用DLT方法求解单应矩阵H。vP1:参考帧中归一化后的特征点;vP2:当前帧中归一化后的特征点;基本原理:|x'| | h1 h2 h3 ||x||y'| = a | h4 h5 h6 ||y| 简写: x' = a H x, a为一个尺度因子1 | | h7 h8 h9 ||1|使用DLT(direct linear tranform)求解该模型x' =...
2021-11-28 19:47:05
1639
原创 SLAM源码分析(七)
2021SC@SDUSCInitializer.cc;Initializer为单目初始化器根据参考帧构造初始化器,ReferenceFrame为参考帧,sigma为测量误差,iterations为迭代次数Initializer::Initializer(const Frame &ReferenceFrame, float sigma, int iterations){ mpCamera = ReferenceFrame.mpCamera; //从参考帧中获取相机的内参数矩阵
2021-11-21 23:35:11
377
原创 SLAM源码分析(六)
2021SC@SDUSCTwoViewReconstruction.ccTriangulate函数;三角化恢复三维点void TwoViewReconstruction::Triangulate(const cv::KeyPoint &kp1, const cv::KeyPoint &kp2, const cv::Mat &P1, const cv::Mat &P2, cv::Mat &x3D){ cv::Mat A(4, 4, CV_32F.
2021-11-14 23:47:47
637
原创 SLAM源码分析(五)
2021SC@SDUSCTwoViewReconstruction.cc函数ReconstrustF,通过基础矩阵重建K 相机内参R21 旋转(要输出的)t21 平移(要输出的)vP3D 恢复的三维点(要输出的)vbTriangulated 大小与mvKeys1一致,表示哪个点被重建了minParallax 1minTriangulated 50bool TwoViewReconstruction::ReconstructF(vector<bool>..
2021-11-08 15:51:15
180
原创 SLAM源码分析(四)
2021SC@SDUSCTwoViewReconstruction.ccComputeH21函数,通过特征点匹配求homograpy计算公式:|x'| | h1 h2 h3 | |x||y'| = a | h4 h5 h6 | |y| 简写: x' = a H x, a为一个尺度因子|1 | | h7 h8 h9 | |1|使用DLT(direct linear tranform)求解该模型x' = a H x---> (x')...
2021-10-31 23:45:51
164
原创 SLAM源码分析(三)
2021SC@SDUSCTwoViewerReconstruction.cc主要完成单目初始化环节Reconstruct函数,完成位姿估计。是单目初始化的重要环节,先获得rt再通过三角化回复3D坐标vkeys1:第一帧的关键点vkeys2:第二帧的关键点vMatches12 匹配关系,长度与vKeys1一样,对应位置存放vKeys2中关键点的下标vP3D 恢复出的三维点vbTriangulated 是否三角化成功,用于统计匹配点数量bool TwoViewReconstr
2021-10-24 22:13:49
328
原创 orb-slam3环境配置
2021SC@SDUSCSLAM(Simultaneous Localization and Mapping),即同时定位与地图构建。搭载特定传感器的主体。其中视觉SLAM的主要传感器为相机。SLAM的主要目的示解决“定位”和“地图构建”。即在估计传感器自身位置的同时建立周围环境的模型。SLAM系统分模块:视觉里程计、后端优化、建图、回环检测。使用库:Eigen、OpenCV、PCL、g2o、Ceres等;并掌握这些库在Linux系统中的使用方法。书代码源:https://githu
2021-09-30 16:38:50
626
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人