自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 ORB_SLAM2视觉惯性紧耦合定位算法详解

ORB_SLAM2的作者在2017年提出了具有地图重用功能的单目视觉惯性定位算法,该算法的具体思路和港科大的VINS有着异曲同工之妙,整体过程可分为下面几个部分: 1.整体流程与基础知识总结 2.基于流型的IMU预积分 3.IMU初始化(视觉惯性联合初始化) 4.紧耦合优化模型 下面主要通过这三个方面对整个思路做详细的说明。还是按照VINS相同的方式来讲解,首先对整个理论知识做详细的分析...

2018-06-10 13:43:12 12354 20

原创 深度学习SLAM结合之google开源SFMLearner论文详解-Unsupervised Learning of Depth and Ego-Motion from Video

无监督学习下的深度和位姿估计 摘要:文章提出了一种单目深度和位姿估计的无监督学习网络,本文的创新点是完全无监督的网络。整个网络主要分为两个部分,分别是单视图深度估计和多视图位姿估计。需要注意的是本文最后得到的深度和位姿没有系统尺度。如论文中图1所示(这里注意后面有提到同时训练了第三个网络explainability prediction network暂时翻译成解释预测网络) 论文核心算...

2018-04-26 18:52:50 14227 10

原创 VINS技术路线与代码详解

VINS技术路线 写在前面:本文整和自己的思路,希望对学习VINS或者VIO的同学有所帮助,如果你觉得文章写的对你的理解有一点帮助,可以推荐给周围的小伙伴们,当然,如果你有任何问题想要交流,欢迎随时探讨。话不多说,下面上正文。VINS代码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono参考文档:1.VINS-Mono A R...

2017-11-06 19:58:22 67262 52

原创 状态估计与卡尔曼滤波理解分析

补充材料:高斯系统的均值和协方差(待补充)参考视觉SLAM十四讲中第六讲和第十讲一.状态估计1.贝叶斯法则一个联合概率密度可以分解成一个条件概率密度和一个非条件概率密度的乘积:p(x,y)=p(x∣y)⋅p(y)=p(y∣x)⋅p(x)p(x,y)=p(x|y) \cdot p(y) = p(y|x) \cdot p(x)p(x,y)=p(x∣y)⋅p(y)=p(y∣x)⋅p(x)将上面的公式进行整理,就可以得到贝叶斯公式:p(x∣y)=p(y∣x)⋅p(x)p(y)p(x|y)=\frac

2022-02-27 23:03:25 1159

原创 3D平面SLAM相关总结与思考

平面SLAM的总结性文档,包含平面参数化,平面提取生成,平面SLAM优化

2022-01-16 17:19:06 3116 2

原创 四元数Hanmilton与JPL conventions

主流的四元数标准是Hanmilton convention右手坐标系,但是在表示local坐标系下的旋转四元数的时候使用了JPL convention左手坐标系坐标系(MSCKF系列)参考博客:https://www.cnblogs.com/youzx/p/6387740.html参考文档:Quaternion kinematics for the error-state Kalman fil...

2020-03-07 18:34:10 878 1

原创 S-MSCKF/MSCKF-VIO技术路线与代码详解网上博客汇总

https://github.com/cggos/msckf_cg/blob/master/msckf_vio/docs/msckf_note_cg.pdfhttps://blog.csdn.net/jyb1234/article/details/100562144https://www.sohu.com/a/271370131_715754https://blog.csdn.net/OOR...

2020-02-24 12:27:51 1224

原创 mac安装homebrew总结

1.何为homebrewHomebrew是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,其作用相当于ubuntu的apt-get,或者yum。2.如何安装一般来说直接执行下面的语句即可:ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com/Homebrew/install/maste...

2020-02-19 17:02:35 562

原创 3D点云构建平面方法总结

已知3D点可通过平面拟合,RANSAC以及ICP三种方法构建平面,以下分别介绍相关方法以及实现整体参考博客:https://blog.csdn.net/wishchin/article/details/17505555一.平面拟合参考博客:https://blog.csdn.net/zhangxz259/article/details/90174923二.RANSAC方法三.ICP方法...

2020-01-17 10:53:27 1423

原创 结构化SLAM思路及研究过程汇总

一.基于VIO的稀疏平面构建与优化基于sparkVIO的双目算法,开发单目VIO稀疏平面二.基于MAP的稀疏平面构建与优化在VIO的基础上,引入更高精度的MAP点,可得到精度更高的平面,但速度明显变慢,因此结合VIO/MAP,使用MAP生成平面,VIO和MAP共同扩展平面的方案。目前存在的问题是竖直面在手机上难以生成三.稀疏和半稠密平面精度,平面边界,平面优化SLAM精度四.结构化SLA...

2020-01-15 19:35:12 654

原创 ceres优化器使用方法(自用)

详见VINS代码,本内容供自己查阅使用1.构建factor,继承CostFunction或者SizeCostFunction函数,在Evaluate形参中传递要优化的参数parameters,需要计算的参差residuals和jacobians,然后就是计算参差和雅克比矩阵。2.构建ceres::Problem,然后通过AddParameterBlock将参数添加到problem中,最后是通过...

2020-01-15 17:05:50 460

原创 ubuntu16.04下python和pip的安装使用和升级操作总结

一.python版本以及相关操作查看python版本:python2 --versionpython3 --version查看当前使用的python版本:python --version一般默认的python版本是python2,切换成python3:echo alias python=python3 >> ~/.bashrcsource ~/.bashrc二.pip...

2020-01-15 17:05:16 741

原创 ubuntu16.04为gitlab/github配置ssh协议

目前对gitlab或者github进行代码clone下载主要是通过http协议和ssh协议,本文介绍下如何在ubuntu16.04下为gitlab/github配置ssh协议。一.首先需要安装ssh服务,默认情况下是没有安装的,可以直接查看:ps -e | grep ssh*,显示sshd表明安装成功,否则需要安装:sudo apt-get install openssh-serversud...

2020-01-15 17:04:50 882

原创 ubunut16.04下升级eigen到3.3.5版本

ubuntu16.04通过sudo apt-get install libeigen3-dev下载的是3.2.9版本,而目前很多的软件包都需要eigen3.3.0及以上的版本,因此需要升级eigen3,下载地址为:http://eigen.tuxfamily.org/index.php?title=Main_Page,本文下载的是eigen3.3.5版本,下载完成进入到eigen目录下,安装步骤...

2020-01-15 17:04:23 3860

原创 ubuntu16.04下adb安装以及使用adb给手机安装apk软件

一.ubuntu16.04下adb的安装Ubuntu下安装adb添加源: sudo add-apt-repository ppa:nilarimogard/webupd8更新源: sudo apt-get update安装adb: sudo apt-get install android-tools-adb终端输入lsusb,打印如下Bus 002 Device 001: ID 1...

2020-01-15 17:04:18 1104

原创 小米手机录制数据集软件操作

一.安装ARServer二.安装Hellarc,如果内部包含了libxxxx_slam.so,跳过第三步三.安装libxxxx_slam.so四.查看手机录制的数据集格式是否是640480(43),如果不是,需要修改yaml文件中的resolution1.查找yaml文件位置:adb shellcd data/data/com.standardar.service/files/dev...

2020-01-15 17:04:03 1245

原创 cmake找不到sophus的解法

既然使用下面的语句找不到sophus:include_directories( ${Sophus_INCLUDE_DIRS} )LIST(APPEND LINK_LIBSKaTeX parse error: Expected 'EOF', got '#' at position 17: …OpenCV_LIBS} #̲{Sophus_LIBRARIES}...

2020-01-15 17:03:46 811

原创 Clion下debug调试cmake代码,包含ROS环境下调试过程

二:ROS下调试首先,添加Clion启动文件进入环境变量:gedit ~/.bashrc //这是你的环境变量配置文件export PATH=”/opt/Clion/clion-2018.1.3/bin/:$PATH” //这是你安装clion的文件路径第一步:source 你要打开的工程:source ~/catkin_ws/devel/setup.bash第二步:在终端:...

2020-01-15 17:03:14 1300

原创 C++代码编写问题总结

1.内存释放越界内存在函数变量或者局部变量释放时,如果释放了越界的数据,就会报错,例如定义的vector,里面一共有10个数据大小空间,但是不小心再第11个位置处存放了数据,当释放这个位置内存的时候就会报错:double free or corruption!...

2020-01-15 17:03:04 182

原创 android手机下调试算法性能-耗时

1.simpleperf使用python app_profiler.py -p com.standardar.ar.core.examples.c.helloar -r "-e task-clock:u -f 1000 --duration 20 -g"python report_html.py

2020-01-15 17:02:43 512

原创 git使用总结(自用)

1.从gitlab或者github上创建一个新的仓库方法:git clone project_url如下:git clone [email protected]:wangshuai1/test.git当修改了或者增加了某一个内容,例如修改了Readme.txt的内容:git add README.mdgit commit -m “add README”git pu...

2020-01-15 16:57:56 205

原创 点投影到平面上的方法总结

https://www.cnblogs.com/nobodyzhou/p/6145030.html

2020-01-15 16:57:36 3892

原创 android手机下内存查看脚本

#!/usr/bin/python3# -*- coding:utf-8 -*-import matplotlibmatplotlib.use('TkAgg')import copyfrom collections import OrderedDictimport matplotlib.pyplot as pltimport numpy as npfrom openpyxl im...

2020-01-15 16:57:09 566

原创 terminator如何设置字体显示不同颜色

参考博客:https://blog.csdn.net/weixin_41822560/article/details/80941083https://www.cnblogs.com/Q–T/p/5394993.html

2020-01-15 16:55:11 713

原创 ubuntu系统安装软件问题总结

当安装一个软件的时候,由于系统和软件更新原因,有时候又不知道软件具体的名称是什么,那该如何安装这一个软件?安装软件一般的命令就是:sudo apt-get install ***例如安装libboost_system:sudo apt-get install libboost_system但是很容易发现找不到这个软件,也就是出现下面的问题:Reading package lists… ...

2018-12-21 20:50:05 1018

原创 百度开源ICE-BA安装运行总结

ICE-BA是百度刘浩敏博士开源的视觉惯性系统,主要是对提出了新颖的BA优化算法。 安装教程: 1.安装平台是Ubuntu14.04或者Ubuntu16.04,本问使用的是Ubuntu14.04,请首先安装好此系统 2.boost和eigen安装 直接运行下面的命令即可,较为简单sudo apt-get install libboost-dev libboost-thread-dev ...

2018-08-14 15:53:34 3199 1

原创 ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解3——紧耦合优化模型

4.紧耦合优化模型 视觉惯性紧耦合优化部分分为三个部分,分别是Tracking、LocalMapping和Loopclosing,我只是学习了前两个部分,所以就简单的介绍下这两个内容 (1)Tracking线程中帧间紧耦合优化 论文中说的也比较清楚,分为两中情况,分别是有地图更新和无地图更新。Tracking线程中一开始是没有地图更新的,地图更新是在LocalMapping和LoopClos...

2018-06-11 13:25:53 3551

原创 ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解2——IMU初始化

3.IMU初始化(视觉惯性联合初始化) 终于来到视觉惯性初始化阶段了,这段是视觉和惯性数据融合的第一步,是一段松耦合过程。理论上是将准确的视觉数据(但缺少尺度)和快速的IMU数据(需要重力加速度又存在零偏误差)相结合。具体介绍在VINS的博客中也同样说过,这部分关于最小二乘、尺度收敛等问题请参考我的博客:视觉SLAM常见的QR分解SVD分解等矩阵分解方式求解满秩和亏秩最小二乘问题(最全的方法分析...

2018-06-11 11:07:47 6838 10

原创 ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解1——IMU流型预积分

2.基于流型的IMU预积分 这一部分主要参考论文(2)中的内容,ORB_SLAM2融合惯性数据的算法中预积分处理是参照论文(2)中实现的。前面关于VINS的详解说过预积分计算过程,那篇使用的是四元数旋转求解,和这里的过程是一样的,主要计算三个量,分别是IMU预积分值,预积分测量值的协方差矩阵以及残差的雅各比矩阵,各自用途就不多说,有不懂的可以参照VINS的详解 https://blog.csd...

2018-06-11 09:41:39 7834 13

原创 ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解0——整体框架与理论基础知识

ORB_SLAM2的作者在2017年提出了具有地图重用功能的单目视觉惯性定位算法,该算法的具体思路和港科大的VINS有着异曲同工之妙,整体过程可分为下面几个部分: 1.整体流程与基础知识总结 2.基于流型的IMU预积分 3.IMU初始化(视觉惯性联合初始化) 4.紧耦合优化模型 下面主要通过这三个方面对整个思路做详细的说明。还是按照VINS相同的方式来讲解,首先对整个理论知识做详细的分析...

2018-06-10 13:45:03 4868 6

原创 VINS理论与代码详解0——理论基础白话篇

VINS中比较难办的一个问题就是四元数旋转的计算,求导等问题。所以还是应该单独说明一下这部分内容。 1.涉及到旋转四元数基本性质 在SLAM中所有涉及到的四元数旋转都是单位四元数,这一点很重要,所以要单独说出来,这和SLAM中的旋转矩阵是一致的,因为旋转矩阵是正交阵,他们都不会改变状态量的大小,只是方向上的变化。四元数的表示以及基本运算书上写的很清楚,就不多说了。 2.四元数求导 这部分在...

2018-06-06 20:42:53 13374

原创 ORB_SLAM2关键算法分析1——基础矩阵F和单应矩阵H初始化位姿

1.基础矩阵和单应矩阵分析 基础矩阵和单应矩阵的求法在高博的视觉SLAM十四讲中已经说的很明白了,我就直接将公式搬上来: F矩阵: 通过8点法求得F矩阵后,需要对F矩阵进行SVD分解得到t,R。由于F是t和R矩阵相乘得到,如果观测到的特征点(8点法的点)共面或者相机发生纯旋转,就会出现降维,也就是退化情况,会将噪声的影响放大,最终的结果不稳定。其实很好理解,观测点共面或者纯旋转时t为0...

2018-05-23 18:41:15 6878 1

原创 凸函数的Hessian矩阵与高斯牛顿下降法增量矩阵半正定性的理解

1.正定矩阵,半正定矩阵以及负定矩阵 矩阵所有特征值都大于零,则是正定矩阵 矩阵所有的特征值都不小于零,则是半正定矩阵 矩阵所有的特征值都小于零,则是负定矩阵2.凸函数定义,海塞矩阵半正定性数学和几何意义 凸函数:任意属于定义域的两个自变量x1和x2,且对于任意0 =< a <= 1,如果函数f()满足f(a*x1+(1-a)) =< a*f(x1)+(1-a)f(x...

2018-05-14 12:25:36 6157 3

原创 视觉SLAM常见的QR分解SVD分解等矩阵分解方式求解满秩和亏秩最小二乘问题(最全的方法分析总结)

关于这个问题的内容比较多,也整理了相当一段时间,在写内容之前,我需要引用一些牛人的名人名言,以壮士气。 (1)故不积跬步,无以至千里;不积小流,无以成江海-荀子 (2)只收藏,不点赞的同学,人心都是肉长的。。。地主家也没有余粮啊。。。我想说的是。。。不赞不是好码农-马克.wangshuai (纯粹copy)内容一 首先直接给出AX=B解的情况: (1)R(A)< r(A|B),...

2018-05-05 21:40:05 14905 4

原创 TensorFlow实战Google深度学习框架第二版学习总结-TensorFlow入门

本文内容主要针对第三章做知识总结 概述:TensorFlow的工作原理分为计算模型,数据模型和运行模型三部分。 1.TensorFlow计算模型-计算图 1.1计算图模型 tensorflow通过计算图的形式来表达计算的编程系统,其中那个tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。下图是典型的计算图模型 1.2计算图使用 ...

2018-04-06 17:06:23 2902 2

原创 TensorFlow实战Google深度学习框架第二版学习总结-TensorFlow安装

安装方式主要分为两个版本,分别是CPU和GPU版本,CPU版本相对简单,而GPU版本过程较为复杂。如果只是新手使用tensorflow完全没必要装GPU版本,等你需要构建几十层网络的时候在安装GPU版本,同时GPU版本的安装每台电脑的情况不一样。 CPU版本主要参考: https://blog.csdn.net/colourful_sky/article/details/73823939 h...

2018-04-04 19:56:28 1140

原创 机器人计算机视觉领域顶会论文集收录总结

CSDN的小伙伴们,福利来了,以下总结近年来的机器人和计算机视觉顶会的论文集,赶紧收藏吧!后续还会持续更新,尽请期待,首先介绍一个收录较为完全的网站: http://www.cvpapers.com/ CVPR2017: http://www.cvpapers.com/cvpr2017.html ICCV2017: http://www.cvpapers.com/iccv2017.htm...

2018-03-30 19:26:25 1951

原创 TurtleBot2.0在Ubuntu16.04和kinetic下使用教程

阅读本文的前提是你已经成功安装了ROS的kinetic版本1.rocon安装,开启一个终端,运行下面的命令mkdir ~/rocon cd ~/rocon wstool init -j5 src https://raw.github.com/robotics-in-concert/rocon/release/kinetic/rocon.rosinstallsource

2018-03-11 16:12:53 2797 2

原创 VINS理论与代码详解5——基于滑动窗口的单目视觉紧耦合后端优化模型

VINS理论与代码详解5——基于滑动窗口的单目视觉紧耦合后端优化模型    终于讲到了真正的视觉惯性紧耦合系统了,(在这里插一句,算是写博客和学习一个SLAM系统的心得吧,一开始我们可能抱着一个必胜的心态打算征服所有的知识点和难点,但到了整个过程的中期,总会出现或多或少的问题,阻碍着我们前进的步伐,你可能想放松警惕,不想太深究具体的公式和内容,急功心切的想看到终点到底是什么,但是我要提醒大

2017-12-05 13:55:55 12338 8

原创 VINS理论与代码详解4——初始化

VINS理论与代码详解4——初始化 1.      基于滑动窗口的纯视觉单目初始化    在介绍纯视觉初始化前我们首先讲一讲为什么要初始化?初始化要做什么?以及初始化的作用?我们初始化的原因是单目惯性紧耦合系统是一个非线性程度很高的系统,首先单目是无法获得空间中的绝对尺度,而IMU又必然存在偏置,在后面进行求解的时候还需要用到重力加速度(包括大小和方向),对于速度比较敏感的条件下,

2017-12-05 13:50:27 15308 24

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除