- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 ORBSLAM3运行记录(单目+IMU)
ORBSLAM3运行记录1.单目+IMU数据集运行记录自己做的其它测试2.单目+IMU自己采集数据运行记录测试结果1.单目+IMU数据集运行记录ORBSLAM3没有预留ROS下单目+IMU的结点,这个需要自己去写代码添加,可以参考这篇博客,《ORBSLAM3 用ROS接口运行双目IMU和单目IMU模式》。我的ROS结点为Mono-IMU,字典文件ORBvoc.txt在ORBSLAM3 / Vocabulary文件夹中,配置文件EuRoC.yaml在ORB_SLAM3 / Examples / Monoc
2020-08-27 20:35:54
10434
38
原创 LearnVIORB运行记录(单目+IMU)
LearnVIORB运行记录1.LearnVIORB在数据集下运行自己做的其它测试2.单目+IMU自己采集数据运行记录自己做的其它测试1.LearnVIORB在数据集下运行选取的数据集是EuRoC下的MH_05_difficult.bag。1.打开终端1,直接运行:roslaunch ORB_VIO testeuroc.launch2.打开终端2,直接运行:rosbag play /home/xiaoqiang/Downloads/MH_05_difficult.bag运行结果如下图所示,
2020-08-27 19:57:27
754
4
原创 VINS-Mono运行记录(单目+IMU)
VINS-Mono运行记录1.VINS-Mono在数据集下运行自己做的其它测试2.单目+IMU自己采集数据运行记录自己做的其它测试1.VINS-Mono在数据集下运行选取的数据集是EuRoC下的MH_05_difficult.bag。1.打开终端1,直接运行:roslaunch vins_estimator vins_rviz.launch2.打开终端2,直接运行:roslaunch vins_estimator euroc.launch3.打开终端3,直接运行:rosbag play
2020-08-27 19:20:58
2464
6
原创 华为机试练习题1
牛客网华为练习题1题目代码题目题目描述有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入描述输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<
2020-08-18 13:29:05
737
原创 kalibr下载编译安装教程
kalibr下载编译安装教程kalibr源码下载kalibr源码编译安装安装依赖,可以参考这几篇文章安装python-numpy开始编译kalibr源码下载众所周知,在github上下载kalibr源码太慢了,这里我给出了码云下的下载地址:https://gitee.com/hggaoqiang/kalibr下载下来后解压,并把解压的文件夹kalibr放在你的ros空间下的src文件夹里kalibr源码编译安装安装依赖,可以参考这几篇文章https://blog.csdn.net/Panche
2020-08-12 12:07:31
4748
原创 基于金字塔LK的光流法实现—根据论文自己实现的c++代码
自己实现代码与opencv的接口函数对比在VINS-Mono上效果对比在两张图片上效果对比PyrLKTracking()源码总结最近自己在研究VINS-Mono源码的特征提取与追踪部分的原理以及代码实现。发现VINS-Mono的光流匹配用的是Opencv自己的API接口函数calcOpticalFlowPyrLK,关于这个函数的参数含义及意义在此不在详述,有兴趣的朋友可以自行上网查找。这个函数的底层代码我们是看不到的,又由于我对光流法的具体代码实现产生了浓厚兴趣,所以,我自己就看着《Pyramidal I
2020-07-12 11:49:11
2315
3
转载 Ubuntu16.04忘记密码后如何找回(亲测可用)
原文链接:https://blog.csdn.net/qq_27182767/article/details/79660452 忘记Ubuntu系统密码,从网上查找各种方法,不过都会遇到一些问...
2020-04-30 18:59:53
1316
原创 对C++ float类型的数据精度的认识(基于实例运行)
对C++ float类型的数据精度的认识1.自己对float的简单认识2.实例验证1.自己对float的简单认识网上大部分人对于float类型的精度认识可以总结为一句话:float的有效数字最多是6或7位,第7位不一定有效,前6位一定有效。这句话经过我的实际测试,我认为是对的。还有一些人说:小数点也是有效位。这句话我认为是不对的。2.实例验证我手头上有如下图所示的数据,前五列的数据有效数...
2020-04-24 19:13:11
1248
原创 将matlab下的.mat数据存储为txt文件(实例讲解)
将matlab下的.mat数据存储为txt文件【实例讲解】已知一个SINS_DATA.mat数据文件,其数据内容如下图所示,上图第7~12列的数据代表的是IMU的陀螺和加计数据,现在要将它们分离出去,单独存到一个txt文件中,代码如下,raw=load('SINS_DATA.mat');%将.mat文件的数据读入raw中%%将IMU的陀螺和加计数据以增量形式存储到变量imu中(北-东-...
2020-04-24 11:26:07
1959
原创 严恭敏老师组合导航Matlab工具箱在ubuntu下的初始化
严恭敏老师组合导航Matlab工具箱在ubuntu下的初始化1.我的环境说明2.我的工具箱存放目录3.在MATLAB下打开psinsinit.m文件4.修改psinsinit.m文件1.我的环境说明ubuntu16.04MATLAB 2017bpsins1706172.我的工具箱存放目录/home/yourself system name/Documents/MATLAB/psin...
2020-04-23 19:53:34
1918
原创 DBoW2中的词典创建原理k-means++算法及代码分析
DBoW2中的词典创建代码及原理分析1.DBoW2创建词典源码分析ORBSLAM中的词典是通过一个145.3MB的txt文件加载的,VINS-Mono中的词典是通过一个60MB的bin文件加载的,它们都是事先已经生成好的词典,我们需要用到的时候直接按照相应的格式调用就可以了。本文主要讲述的是我们如何通过手头上的图像,自己去创建一个词典。至于应该选取多少图像,选取什么场景下的图像才能创建出稳健的词...
2020-04-16 14:48:51
642
原创 图像金字塔LK光流法原理分析
图像金字塔LK光流法原理分析1.LK光流法原理分析2.基于图像金字塔的LK光流法原理分析1.LK光流法原理分析 光流法是一种根据时域上连续图像间的相关性来描述像素在前后两帧中的瞬时速度的方法,可用来完成特征点的追踪。稀疏(Lucas–Kanade,LK)光流算法是计算机视觉中常用的一种两帧间差分的光流估计算法。 LK光流法不是没有条件限制的,它的应用必须基于以下三个假设: 1.灰度不...
2020-04-13 23:19:12
6068
原创 VINS-Mono中的DBoW2关键代码注释
VINS-Mono中的DBoW2关键代码注释在阅读VINS-Mono源码时对DBoW2中代码顺手做的注释,怕以后会忘记,在这里记录一下,注释有不当之处,望各位大神看到后多多指点。理论参考高翔的《视觉SLAM十四讲》第12章的内容。...
2020-04-12 18:21:14
1111
5
原创 ORBSLAM中的DBoW2关键代码注释
ORBSLAM中的DBoW2关键代码注释在阅读ORBSLAM源码时对DBoW2中代码顺手做的注释,怕以后会忘记,在这里记录一下,注释有不当之处,望各位大神看到后多多指点。ORBSLAM的main.cpp文件中有这么一句代码ORB_SLAM::ORBVocabulary Vocabulary;bool bVocLoad = Vocabulary.loadFromTextFile(strVoc...
2020-04-11 17:14:26
599
原创 VINS-Mono源码分析7— pose_graph2(四自由度位姿图优化)
VINS-Mono源码分析7— pose_graph2在上一篇博文中,大概分析了一下VINS-Mono回环检测和重定位的代码实现,这里主要分析四自由度的位姿图优化。关于这部分的原理可以参考VINS-Mono论文第8部分的A、B和C以及崔神的文章《VINS论文推导及代码解析》中的7.4节。接下来开始进行代码分析,PoseGraph::PoseGraph(){ ...... t_opt...
2020-04-10 19:39:01
981
2
原创 VINS-Mono源码分析6— pose_graph1(回环检测与重定位)
VINS-Mono源码分析6— pose_graphros::init(argc, argv, "pose_graph");ros::NodeHandle n("~");pose_graph包的入口,ROS程序的初始处理。posegraph.registerPub(n);void PoseGraph::registerPub(ros::NodeHandle &n){ ...
2020-04-07 21:48:58
906
2
原创 VINS-Mono源码分析5— vins_estimator4(边缘化)
VINS-Mono源码分析5— vins_estimator4【边缘化】1.边缘化理论2.边缘化代码分析1.边缘化理论在阅读本篇博客前,建议读友先去看看崔神的文章《VINS论文推导及代码解析》的第6节和高神的《视觉SLAM十四讲》的10.2.3节的内容,边缘化是VINS-Mono系统中比较难理解的地方,本人理解的也不是很透彻,只是想把自己的一些浅见分享出来,希望各位大佬看到后能够指点一二。边...
2020-04-07 00:04:17
578
3
原创 VINS-Mono源码分析3— vins_estimator2(初始化)
VINS-Mono源码分析3— vins_estimator2本文的分析对象是vins_estimator包下estimator.cpp文件中的processImage()函数代码。话不多说,下面开始分析,ROS_DEBUG("new image coming ------------------------------------------");ROS_DEBUG("Adding fea...
2020-04-04 17:50:00
755
2
原创 VINS-Mono源码分析2— vins_estimator1(预积分)
VINS-Mono源码分析2— vins_estimator初始化ros::init(argc, argv, "vins_estimator");ros::NodeHandle n("~");ros::console::set_logger_level(ROSCONSOLE_DEFAULT_NAME, ros::console::levels::Info);vins_estimator包...
2020-04-03 10:56:49
417
原创 VINS-Mono源码分析1— feature_tracker(视觉前端)
VINS-Mono源码分析—feature_tracker阅读提示:本博客逐行分析,有意者请耐心阅读。ros::init(argc, argv, "feature_tracker");ros::NodeHandle n("~");ros::console::set_logger_level(ROSCONSOLE_DEFAULT_NAME, ros::console::levels::Inf...
2020-04-02 17:03:11
498
翻译 VINS-Mono论文翻译
VINS-Mono:一种鲁棒且通用的单目视觉惯性状态估计器摘要关键词1.引言2.相关工作3.概述摘要一个摄像机和一个低成本惯性测量单元(IMU)构成了一个单目视觉惯性系统(VINS),这是用于度量六自由度(DOF)状态估计的最小传感器套件(在尺寸、重量和功率方面)。在这篇文章,我们提出了VINS-Mono:一种鲁棒且通用的单目视觉惯性状态估计器。我们的方法从一个健壮的估计器初始化过程开始。采用...
2020-04-01 23:06:16
1902
原创 ORBSLAM源码理论分析5—Loop Closing线程
ORBSLAM源码理论分析5—Loop Closing线程由于时间久远,记不清楚具体细节分析了,先把流程图发出来,以后有时间了再补上。
2020-04-01 15:54:08
218
原创 ORBSLAM源码理论分析4—Local Mapping线程
ORBSLAM源码理论分析4——Local Mapping线程1.关键帧CurrentKF的处理1.计算词袋模型Bow映射2.对关键帧CurrentKF和其地图点的初始处理2.剔除不合格的地图点3.创建新的地图点4.地图点融合5.局部BA优化6.剔除不合格的关键帧 建图线程的目的就是维护局部地图mvpLocalMapPoints,处理的对象是Tracking线程新构造的关键帧。我们就以关键帧C...
2020-04-01 12:35:46
234
原创 ORBSLAM源码理论分析3—tracking线程的追踪
ORBSLAM源码理论分析3—tracking线程的追踪1.创建帧32.跟踪前一帧1.特征匹配2.特征再匹配第一种情况第二种情况3.位姿优化3.跟踪局部地图1.匹配局部地图2.优化F3的位姿4.检查是否插入关键帧5.更新mvpMapPoints6.其它相关参数更新1.创建帧3 与构造初始化帧2步骤完全相同,只不过提取的特征点数量减少为帧2的一半。帧3的关键点记为mvKeys3,帧3就是当前的...
2020-04-01 12:35:08
796
2
原创 ORBSLAM源码理论分析2—单目初始化
ORBSLAM源码理论分析2—单目初始化1.构造初始化帧12.第一次初始化3.构造初始化帧24.F1与F2特征匹配5.初始化解算位姿5.1.计算单应矩阵5.2.计算基础矩阵5.3.评估特征点场景模型5.3.1.单应矩阵模型(RH > 0.40)5.3.2.基础矩阵模型(RH ⩽\leqslant⩽ 0.40)6.创建初始化地图6.1.位姿传递6.2.关键帧的创建与词袋模型说明6.3.关键帧和...
2020-03-30 17:33:20
769
1
原创 ORBSLAM源码理论分析1—特征点提取
orbslam源码理论分析1—特征点提取1.读取待处理图片并灰度化2.利用图像金字塔将灰度图尺度化为若干层3.特征点提取4.高斯模糊化5.计算描述子1.读取待处理图片并灰度化 原图 灰度化图像(第0层)2.利用图像金字塔将灰度图尺度化为若干层 程序中为8层金字塔,这里只展示前五层,原灰度图为第0层,则 第1层 ...
2020-03-29 18:25:16
948
1
原创 ORBSLAM源码理论分析0—灰度质心法
orbslam源码理论分析0—灰度质心法1.灰度质心法原理2.灰度质心法程序实现思路1.灰度质心法原理1.选择某个图像块B,然后将图像块B的矩 mpqm_{pq}mpq 定义为: x,yx,yx,y 表示像素坐标,I(x,y)I(x,y)I(x,y)表示此像素坐标的灰度值。 2.图像块B的质心 CCC 可以通过步骤1中的矩找到: 3.方向向量 O...
2020-03-29 18:24:31
5854
1
原创 ORBSLAM 编译运行记录
ORBSLAM 编译运行记录1.编译环境2.ORB-SLAM源码下载3.数据集下载4.依赖库安装Boost安装Eigen3安装OpenCV安装g2o库安装DBoW2安装5.ORB_SLAM部分文件的修改6.开始编译ORB_SLAM7.开始运行ORB_SLAM1.编译环境 计算机操作系统:Ubuntu16.04 机器人系统:ROS-kinetic2.ORB-SLAM源码下载 ORB-...
2020-03-29 11:38:08
428
1
ORBSLAM关键部分注释版代码.zip
2020-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人