![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器视觉
文章平均质量分 97
iwander。
还是slam有意思
展开
-
【SLAM】基于线特征的三维路标及其图像序列生成工具(VO仿真工具)
这个工具的作用就是构造一个三维的路标,再根据一系列的pose将这些路标投影到一系列照片上,也就是视频。可以用来进行VO-SLAM的仿真,也很容易拓展为VIO-SLAM的仿真工具。github地址:[LISS]原创 2020-06-17 16:39:51 · 703 阅读 · 0 评论 -
pyplot颜色大全
colors = ['#F0F8FF','#FAEBD7','#00FFFF','#7FFFD4','#F0FFFF','#F5F5DC','#FFE4C4', '#000000','#FFEBCD','#0000FF','#8A2BE2','#A52A2A','#DEB887','#5F9EA0', '#7FFF00','#D2691E','#FF7F50','#6495ED','#FFF8DC','#DC143C','#00FFFF', ..原创 2020-06-08 15:18:02 · 3948 阅读 · 0 评论 -
【openCV踩坑日记】人工数据集Synthetic Shapes dataset的生成方法
1.为什么要介绍这个方法?2018年的时候,D.DeTone等人发表了Self-Supervised Interest Point Detection and Description,提出了一种特征提取SuperPoint的方法。他们在训练Superpoint的时候,构造了一组人工合成数据集Synthetic Shapes dataset(这个数据集能提供角点的坐标作为groundtruth),因此也可以测试superpoint最后的效果。所以说,Synthetic Shapes dataset它最大的原创 2020-05-14 12:56:07 · 1980 阅读 · 3 评论 -
【openCV踩坑日记】openCV3.X.X: nonfree模块的安装、调试和使用(SIFT的使用)
opencv2/nonfree的安装要想用SIFT,就需要#include <opencv2/nonfree/nonfree.hpp>但是在编译的时候,会报错:fatal error: opencv2/nonfree.hpp: No such file or directory所以说这个时候,你就需要安装openCV的nonfree模块,输入以下内容,sudo apt-get updatesudo add-apt-repository --yes ppa:xqms/opencv-原创 2020-05-12 16:19:11 · 4273 阅读 · 5 评论 -
【SLAM】VINS-MONO解析——基于vins-mono的双目slam系统开发
这个系统是基于香港科技大学飞行机器人组的开源框架VINS-Mono开发的,原开源框架是针对单目SLAM。本双目SLAM系统是在原单目开源框架基础上的二次深度开发,外部接口与原框架一致。这个项目是我的研究课题项目,非商业用途,感谢HKUST的沈老师课题组提供的开源框架。该项目的github地址请点击这里。1.需要的基本配置Ubuntu 16.04ROS KineticCeres Solver...原创 2020-03-23 16:16:39 · 3614 阅读 · 10 评论 -
【SLAM】VINS-MONO解析——对vins-mono的一点小改动
vins-mono刷了三遍,手写vio刷了两遍,从一开始完全看不懂是啥,再到自己写总结写攻略,真的有很多感慨。学习开源代码的目的其实就是是为了自己能够去开发一个vio,一个slam系统。slam最难的就是工程化了,公式很多人推导了一遍又一遍,道理大家都懂,但是转化为c++项目就是另一码事了。vins系列真的是神作,对沈老师和对秦神真的是佩服。在这里我对vins-mono进行了一下小小的提升和修...原创 2020-03-17 17:45:26 · 6200 阅读 · 2 评论 -
【SLAM】VINS-Fusion解析——流程
VINS-Fusion分析因为时间原因,没有像vins-mono看的和写的那么具体。vins-fusion不像mono那样有三个node,它只有一个node,在rosNodeTest.cpp里。我推测之所以这样做,是为了方便非ros版的c++项目使用。先上流程图。基本上所有的内容都在estimator.cpp。几个比较印象深刻的的地方。feature_tracker里面,并没有对i...原创 2020-03-13 11:27:32 · 8059 阅读 · 4 评论 -
【SLAM】VINS-MONO解析——sliding window
8.sliding window8.1 理论基础实际上,这一部分跟后端非线性优化是一起进行的,这一部分对应的非线性优化的损失函数的先验部分。理论基础部分的代码基本在第7章部分。8.1.1 上一次非线性优化结束,最后的H矩阵就是本轮非线性优化的先验矩阵的前身。8.1.2 构造先验矩阵(1)移动需要marg掉的pose和路标点对应的,J矩阵的一些列需要删除掉;H矩阵的一些行需要删掉。在操作...原创 2020-03-08 11:59:38 · 13938 阅读 · 6 评论 -
【SLAM】VINS-MONO解析——后端优化(代码部分)
7.2 代码在estimator.cpp的processImage()的最后,代码如下: else//solver_flag = NON_LINEAR,进行非线性优化 { solveOdometry(); //<--1 //边界判断:检测系统运行是否失败,若失败则重置估计器 if (failureDetection()) /...原创 2020-03-08 11:45:48 · 5774 阅读 · 7 评论 -
【SLAM】VINS-MONO解析——后端优化(理论部分)
7.后端非线性优化7.1 理论基础7.1.1 bayes模型,因子图和最小二乘这一部分主要是对董靖博士在公开课《因子图的理论基础》上的回忆和总结。(1)bayes模型假设有黄色是机器人在不同时刻的位姿,蓝色是机器人观测到的路标点,红色是机器人对路标点的观测,绿色是机器人对自身运动的观测。那么,这个过程可以用下面这个bayes-net来描述:那么,可以有这样的定义:黄色——机器人...原创 2020-03-08 11:32:35 · 19848 阅读 · 4 评论 -
【SLAM】VINS-MONO解析——初始化(代码部分)
6.2 代码解析这部分代码在estimator::processImage()最后面。初始化部分的代码虽然生命周期比较短,但是,代码量巨大!主要分成2部分,第一部分是纯视觉SfM优化滑窗内的位姿,然后在融合IMU信息,按照理论部分优化各个状态量。 if (solver_flag == INITIAL)//进行初始化 { if (frame_count == WIN...原创 2020-03-08 11:11:02 · 8276 阅读 · 23 评论 -
【SLAM】VINS-MONO解析——初始化(理论部分)
6.初始化第一个问题,为什么要初始化?对于单目系统而言,(1)视觉系统只能获得二维信息,损失了一维信息(深度),所以需要动一下,也就是三角化才能重新获得损失的深度信息;(2)但是,这个三角化恢复的深度信息,是个“伪深度”,它的尺度是随机的,不是真实的,所以就需要IMU来标定这个尺度;(3)要想让IMU标定这个尺度,IMU也需要动一下,得到PVQ的P;(4)另外,IMU存在bias,视觉...原创 2020-03-05 12:50:05 · 19824 阅读 · 9 评论 -
【SLAM】VINS-MONO解析——vins_estimator流程
5.vins_estimator基本上VINS里面绝大部分功能都在这个package下面,包括IMU数据的处理(前端),初始化(我觉得可能属于是前端),滑动窗口(后端),非线性优化(后端),关键帧的选取(部分内容)(前端)。我第一次看的时候,总是抱有一个疑问,就是为什么把这么多内容全都放在这一个node里面。为了回答这个问题,那么首先先搞清楚vins_estimator里面分别具体都是什么,为什...原创 2020-03-03 16:46:48 · 19897 阅读 · 13 评论 -
【SLAM】VINS-MONO解析——IMU预积分
4.IMU预积分IMU预积分主要干了2件事,第一个是IMU预积分获得α、β、γ值,另一个是误差传递函数的获取。本部分的流程图如下图所示。4.1 IMU预积分4.1.1 连续形式第一个问题,为什么要IMU积分?IMU获取的是加速度和角速度,通过对IMU测量量的积分操作,能够获得机器人的位姿信息。IMU测量值包括加速度计得到的线加速度和陀螺仪得到的角速度。其中 t下标表示在IMU坐标...原创 2020-03-03 00:03:17 · 24650 阅读 · 14 评论 -
【SLAM】VINS-MONO解析——前端
3. feature_trackerfeature_tracker是vins的前端,它的目录在src/ feature_tracker下,功能主要是获取摄像头的图像帧,并按照事先设定的频率,把cur帧上满足要求的特征点以sensor_msg::PointCloudPtr的格式发布出去,以便RVIZ和vins——estimator接收。这个package下面主要包括4个功能:feature_t...原创 2020-03-02 21:24:40 · 22830 阅读 · 14 评论 -
【SLAM】VINS-MONO解析——综述
目前网上有很多分析文章,但是都只是一些比较基础的原理分析,而且很多量,虽然有推倒,但是往往没有讲清楚这些量是什么,为什么要有这些量,这些量是从哪来的,也没有刷通整个代码,或者太简练了,对新手不友好。这一次我计划从原理/代码一步步刷通整个VINS,并且说清楚代码中遇到的每一个数据结构对应的作用是什么。github官方上开源了VINS-mono,VINS-Fusion和VINS-mobile,还有另...原创 2020-03-02 19:38:00 · 51220 阅读 · 8 评论 -
roboware安装包
不客气,我的名字叫雷锋。好用,忘了从哪弄来的了。加油,奥利给!首先,你得知道这个是ubuntu上用的,安装方法我就不说了哈,网上很多。复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1ELQa6y5TTMgC5dCweV88Qg 提取码:o216...原创 2020-02-20 17:45:05 · 2000 阅读 · 1 评论 -
KLT稀疏光流法跟踪特征点详解
由于要做SLAM的project,而KLT是这个项目中第一个算法,做个记录顺便让自己记住。定义一个矩阵frame,用于盛放caputure对象发过来的每一帧图像,gray是frame对应的灰度图,features中盛放着通过detectFeatures()在gray中识别出来的特征的坐标。frame——当前帧(彩色)gray——当前帧(灰度)prev_frame,prev_gray盛放着上...原创 2019-09-23 23:21:52 · 5263 阅读 · 5 评论