slam
角落小王
哈哈哈
展开
-
vins边缘化问题
先贴几个比较好的文章https://blog.csdn.net/weixin_41394379/article/details/89975386https://blog.csdn.net/heyijia0327/article/details/52822104https://www.cnblogs.com/feifanrensheng/p/10532918.html边缘化在我们这个工科领...原创 2019-12-26 09:27:21 · 430 阅读 · 0 评论 -
四元数的题外话
先贴一个很好的网站四元数博客在预积分的运动学方程中可以看成对坐标轴进行纠正的 角速度变化两帧之间的旋转位移对后式 进行拆分 原旋转 加 新旋转对于旋转正交可以直接两个四元数相乘非正交 需要p‘=q p q.t...原创 2019-11-29 10:30:35 · 235 阅读 · 0 评论 -
Vins-mono系列 各种数据结构 sensor_msgs(零)
前言在看VINS-Mono的代码时,觉得非常有必要整理总结一下其中不同的数据结构,尤其是各种sensor_msgs的格式与具体含义。慢慢补充吧!标准msg结构1、std_msgs/Headerfrom file:std_msgs/Header.msg一般在Image/PointCloud/IMU等各种传感器数据结构中都会出现的头信息Definition:uint32 seq # se...转载 2019-11-21 09:37:33 · 873 阅读 · 0 评论 -
orb-slam系列 LoopClosing线程 CorrectLoop(十二)
CorrectLoop/****************************************** * 根据回环进行位姿矫正 * 1. 请求局部地图线程停止,并且中止现有的全局优化进程 * 2. 根据当前帧求得的相机位姿(相似变换矩阵)来求解矫正前和矫正后的相邻帧位姿变换矩阵(相似变换矩阵) * 3. 将相邻关键帧的所有地图点都根据更新后的相机位姿(相似变换矩阵)重...原创 2019-11-18 20:56:41 · 936 阅读 · 0 评论 -
orb-slam系列 LoopClosing线程 ComputeSim3(十一)
ComputeSim3/******************************** * 计算每一个回环候选关键帧与当前关键帧之间的相似矩阵 * 1. 首先通过BOW向量将回环候选关键帧和当前关键帧进行匹配,得到匹配地图点,通过匹配地图点初始化相似矩阵求解器 * 2. 遍历所有的回环候选关键帧和当前关键帧计算sim矩阵,并优化sim矩阵,根据优化sim矩阵确定匹配内点数量,从...原创 2019-11-18 18:47:54 · 554 阅读 · 0 评论 -
orb-slam系列 LoopClosing线程 DetectLoop(十)
DetectLoop/******************************************************************************* * 功能:检测是否产生了回环 * 检测回环的步骤: * 1 检测上次回环发生是否离当前关...原创 2019-11-18 15:45:45 · 607 阅读 · 0 评论 -
orb-slam系列 LocalMapping线程 后半部分(九)
SearchInNeighbors`/** * 检查并融合当前关键帧与相邻帧(两级相邻)重复的MapPoints * 1. 找到带融合的关键帧(当前关键帧的两级相邻关键帧) * 2. 在目标关键帧中寻找当前关键帧地图点的匹配 并在目标关键帧的地图点中寻找当前关键帧所有地图点的融合点 * 3. 在当前关键帧中寻找目标关键帧(当前关键帧的两级相邻)所有地图点的匹配 并在当前关键帧的地图点...原创 2019-11-17 22:15:27 · 204 阅读 · 0 评论 -
orb-slam系列 LocalMapping线程 开始(八)
总体架构void LocalMapping::Run(){ mbFinished = false; // Loopclosing中的关键帧是LocalMapping发送过来的,LocalMapping是Tracking中发过来的 // 在LocalMapping中通过InsertKeyFrame将关键帧插入闭环检测队列mlpLoopKeyFrameQu...原创 2019-11-17 21:26:11 · 252 阅读 · 0 评论 -
orb-slam系列 Tracking线程 剩余(七)
TrackLocalMap()/***************************************************************************** * 追踪局部地图 * 1. 更新局部地图(更新局部关键帧和局部地图点) * 2. 在局部地图点中寻找在当前帧的视野范围内的点,匹配视野范围内的点与当前帧,匹配点存储到当前帧的地图点容器中 *...原创 2019-11-17 18:33:22 · 251 阅读 · 0 评论 -
orb-slam系列 Tracking线程 重定位(六)
函数属性:类Tracking的成员函数Relocalization()函数功能:(1)计算当前帧的BoW映射(2)找到与当前帧相似的候选关键帧(3)匹配当前帧与找到的候选关键帧,计算相机位姿Tcw(4)优化相机位姿Tcw首先进行优化,将优化的结果存到nGood中,如果优化结果不理想进行映射匹配,然后再进行优化如果优化结果还不理想缩小映射窗口后在进行匹配并优化此时若还不理想就判定该...原创 2019-11-15 20:43:20 · 640 阅读 · 0 评论 -
orb-slam系列 Tracking线程 Track函数(五)
功能/******************************************************************************* * 函数属性:类Tracking的成员函数Track() 跟踪线程有四个状态分别是 没有图片,未初始化(第一张图片),线程完好, 追踪线程失败 * 函数功能:检测当前系统状态是处于NO_IMAGES_YET,...原创 2019-11-15 15:55:42 · 967 阅读 · 0 评论 -
orb-slam系列 Tracking线程 orb特征提取(三)
帧对象的构造主要功能1)ORB extraction的入口2)UndistortKeyPoints();3)ComputeStereoMatches();4)AssignFeaturesToGrid();Frame::Frame(const cv::Mat &imLeft, const cv::Mat &imRight, const double &timeSt...原创 2019-11-14 16:20:11 · 364 阅读 · 0 评论 -
orb-slam系列 Tracking线程 (二)
1 Tracking线程初始化1)加载相机相关参数 * 函数属性:类Tracking的构造函数 * 函数功能:(1)加载相机相关参数(内参数矩阵K以及相机畸变矩阵DistCoef) * (2)重定位最大失帧数 * (3)初始化ORB特征提取器 * 函数参数介绍: * ...原创 2019-11-14 15:21:03 · 323 阅读 · 0 评论 -
orb-slam系列 开始(一)
1 系统架构2 程序入口 // Retrieve paths to images vector<string> vstrImageLeft; vector<string> vstrImageRight; vector<double> vTimeStamp; LoadImages(string(argv[3]), s...原创 2019-11-14 11:08:00 · 244 阅读 · 0 评论