SLAM
文章平均质量分 69
知易行难wangshuailpp
热衷视觉惯性SLAM和深度学习的研究,希望可以和志同道合的小伙伴共同努力!
近期地平线机器人有大量SLAM/3D方向的社招和校招HC,感兴趣的联系邮箱[email protected]!!!
展开
-
状态估计与卡尔曼滤波理解分析
补充材料:高斯系统的均值和协方差(待补充)参考视觉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 · 1170 阅读 · 0 评论 -
3D平面SLAM相关总结与思考
平面SLAM的总结性文档,包含平面参数化,平面提取生成,平面SLAM优化原创 2022-01-16 17:19:06 · 3134 阅读 · 2 评论 -
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 · 1227 阅读 · 0 评论 -
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 · 1426 阅读 · 0 评论 -
结构化SLAM思路及研究过程汇总
一.基于VIO的稀疏平面构建与优化基于sparkVIO的双目算法,开发单目VIO稀疏平面二.基于MAP的稀疏平面构建与优化在VIO的基础上,引入更高精度的MAP点,可得到精度更高的平面,但速度明显变慢,因此结合VIO/MAP,使用MAP生成平面,VIO和MAP共同扩展平面的方案。目前存在的问题是竖直面在手机上难以生成三.稀疏和半稠密平面精度,平面边界,平面优化SLAM精度四.结构化SLA...原创 2020-01-15 19:35:12 · 660 阅读 · 0 评论 -
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 · 3867 阅读 · 0 评论 -
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 阅读 · 0 评论 -
点投影到平面上的方法总结
https://www.cnblogs.com/nobodyzhou/p/6145030.html原创 2020-01-15 16:57:36 · 3909 阅读 · 0 评论 -
ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解1——IMU流型预积分
2.基于流型的IMU预积分 这一部分主要参考论文(2)中的内容,ORB_SLAM2融合惯性数据的算法中预积分处理是参照论文(2)中实现的。前面关于VINS的详解说过预积分计算过程,那篇使用的是四元数旋转求解,和这里的过程是一样的,主要计算三个量,分别是IMU预积分值,预积分测量值的协方差矩阵以及残差的雅各比矩阵,各自用途就不多说,有不懂的可以参照VINS的详解 https://blog.csd...原创 2018-06-11 09:41:39 · 7841 阅读 · 13 评论 -
ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解0——整体框架与理论基础知识
ORB_SLAM2的作者在2017年提出了具有地图重用功能的单目视觉惯性定位算法,该算法的具体思路和港科大的VINS有着异曲同工之妙,整体过程可分为下面几个部分: 1.整体流程与基础知识总结 2.基于流型的IMU预积分 3.IMU初始化(视觉惯性联合初始化) 4.紧耦合优化模型 下面主要通过这三个方面对整个思路做详细的说明。还是按照VINS相同的方式来讲解,首先对整个理论知识做详细的分析...原创 2018-06-10 13:45:03 · 4873 阅读 · 6 评论 -
ORB_SLAM2视觉惯性紧耦合定位算法详解
ORB_SLAM2的作者在2017年提出了具有地图重用功能的单目视觉惯性定位算法,该算法的具体思路和港科大的VINS有着异曲同工之妙,整体过程可分为下面几个部分: 1.整体流程与基础知识总结 2.基于流型的IMU预积分 3.IMU初始化(视觉惯性联合初始化) 4.紧耦合优化模型 下面主要通过这三个方面对整个思路做详细的说明。还是按照VINS相同的方式来讲解,首先对整个理论知识做详细的分析...原创 2018-06-10 13:43:12 · 12375 阅读 · 20 评论 -
百度开源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 · 3206 阅读 · 1 评论 -
ceres优化器使用方法(自用)
详见VINS代码,本内容供自己查阅使用1.构建factor,继承CostFunction或者SizeCostFunction函数,在Evaluate形参中传递要优化的参数parameters,需要计算的参差residuals和jacobians,然后就是计算参差和雅克比矩阵。2.构建ceres::Problem,然后通过AddParameterBlock将参数添加到problem中,最后是通过...原创 2020-01-15 17:05:50 · 461 阅读 · 0 评论 -
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 · 1304 阅读 · 0 评论 -
ORB_SLAM2再学习——单目
ORB_SLAM2学习——单目ORB_SLAM2包含有三个线程,是同步进行的,因此之间的数据段共享,mappoint和keyFrame的创建和删除在三个线程中都有体现。 一:Tracking1. GrabImageMonocular()(1)将图像转为mImGray并初始化mCurrentFrame(2)进行tracking过程(3)输出世界坐标系到该帧相机坐标系的变换原创 2017-11-06 19:37:48 · 1787 阅读 · 1 评论 -
VINS理论与代码详解0——理论基础白话篇
VINS中比较难办的一个问题就是四元数旋转的计算,求导等问题。所以还是应该单独说明一下这部分内容。 1.涉及到旋转四元数基本性质 在SLAM中所有涉及到的四元数旋转都是单位四元数,这一点很重要,所以要单独说出来,这和SLAM中的旋转矩阵是一致的,因为旋转矩阵是正交阵,他们都不会改变状态量的大小,只是方向上的变化。四元数的表示以及基本运算书上写的很清楚,就不多说了。 2.四元数求导 这部分在...原创 2018-06-06 20:42:53 · 13401 阅读 · 0 评论 -
ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解3——紧耦合优化模型
4.紧耦合优化模型 视觉惯性紧耦合优化部分分为三个部分,分别是Tracking、LocalMapping和Loopclosing,我只是学习了前两个部分,所以就简单的介绍下这两个内容 (1)Tracking线程中帧间紧耦合优化 论文中说的也比较清楚,分为两中情况,分别是有地图更新和无地图更新。Tracking线程中一开始是没有地图更新的,地图更新是在LocalMapping和LoopClos...原创 2018-06-11 13:25:53 · 3561 阅读 · 0 评论 -
ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解2——IMU初始化
3.IMU初始化(视觉惯性联合初始化) 终于来到视觉惯性初始化阶段了,这段是视觉和惯性数据融合的第一步,是一段松耦合过程。理论上是将准确的视觉数据(但缺少尺度)和快速的IMU数据(需要重力加速度又存在零偏误差)相结合。具体介绍在VINS的博客中也同样说过,这部分关于最小二乘、尺度收敛等问题请参考我的博客:视觉SLAM常见的QR分解SVD分解等矩阵分解方式求解满秩和亏秩最小二乘问题(最全的方法分析...原创 2018-06-11 11:07:47 · 6845 阅读 · 10 评论 -
VINS理论与代码详解2——单目视觉跟踪
VINS理论与代码详解2——观测值预处理一.Feature_tracker文件夹中 首先讲第一部分,也就是纯粹的图像处理部分内容,在论文中的第IV点观测值预处理的A部分视觉前端处理,为了更好的理解代码,有必要将论文中的相关内容和大家讨论一番。 论文内容:每当进入新的图像,都会使用KLT稀疏光流法进行跟踪,同时提取100-300个角点信息,我的理解是角原创 2017-12-05 13:31:26 · 10688 阅读 · 1 评论 -
VINS理论与代码详解1——框架解析
VINS理论与代码详解1——框架解析 写在前面:本文整和自己的思路,希望对学习VINS或者VIO的同学有所帮助,如果你觉得文章写的对你的理解有一点帮助,可以推荐给周围的小伙伴们当然,如果你有任何问题想要交流,欢迎随时探讨。话不多说,下面上正文。 VINS代码主要包含在两个文件中,分别是feature_tracker和vins_estimate,feature_tracker就像...原创 2017-12-05 13:27:06 · 14179 阅读 · 0 评论 -
误差表示方法
http://blog.sina.com.cn/s/blog_57a1cae80101bh65.html转载 2017-11-20 14:56:51 · 1984 阅读 · 0 评论 -
ORB_SLAM2+IMU详解
单目VIO学习 细节探讨:PVR优化顶点:g2o::VertexNavStatePVR,定义在g2otypes.h中Bias优化顶点:g2o::VertexNavStateBias 一:关于优化部分:Optimizer.cpp1. PoseOptimization(Frame *pFrame,Frame* pLastFrame, const IMUPreint原创 2017-11-13 09:42:47 · 12842 阅读 · 6 评论 -
ORB_SLAM2初学习——RGBD
原创 2017-11-06 19:45:28 · 1967 阅读 · 0 评论 -
欧拉积分法理解总结
欧拉法的主要思想是用当前时刻的值y(k) + 当前时刻 y’(k)*h(积分步长)来近似替代y(k+1)时刻的值。这种方法主要的误差来源于,在h区间内y’(t)是变化的,而这里我们都用y(k)替代了。数值积分法是求定积分的近似值的数值方法。即用被积函数的有限个抽样值的离散或加权平均近似值代替定积分的值。求某函数的定积分时,在多数情况下,被积函数的原函数很难用初等函数表达出来,另外,许多实际问题转载 2017-09-10 13:57:54 · 15477 阅读 · 0 评论 -
ORB_SLAM2+kinect2.0+Ubuntu14.04+ROS Indigo总结
错误总结:1.运行./bin/Protonect出现下面的错误,表示版本号不合适:[Info] [Freenect2Impl] enumerating devices...[Info] [Freenect2Impl] 13 usb devices connected[Info] [Freenect2Impl] found valid Kinect v2 @2:4 with seri原创 2017-08-14 08:45:30 · 4692 阅读 · 4 评论 -
安装ceres出现错误,与eigen3.3发生冲突
错误信息:error: no type named ‘Literal’ in ‘struct Eigen::NumTraits >make[2]: *** [internal/ceres/CMakeFiles/jet_test.dir/jet_test.cc.o] error 1 make[1]: *** [internal/ceres/CMakeFiles/jet_test.dir/all]原创 2017-08-29 16:44:54 · 7692 阅读 · 2 评论 -
VINS理论与代码详解5——基于滑动窗口的单目视觉紧耦合后端优化模型
VINS理论与代码详解5——基于滑动窗口的单目视觉紧耦合后端优化模型 终于讲到了真正的视觉惯性紧耦合系统了,(在这里插一句,算是写博客和学习一个SLAM系统的心得吧,一开始我们可能抱着一个必胜的心态打算征服所有的知识点和难点,但到了整个过程的中期,总会出现或多或少的问题,阻碍着我们前进的步伐,你可能想放松警惕,不想太深究具体的公式和内容,急功心切的想看到终点到底是什么,但是我要提醒大原创 2017-12-05 13:55:55 · 12370 阅读 · 8 评论 -
VINS理论与代码详解3——IMU预积分
VINS理论与代码详解3——IMU预积分 二.Vins_estimate文件夹中 下面到第二部分了,也是整个框架的重点和难点,估计要花很长的时间学习和总计理论知识和代码逻辑,这一部分还是从论文的理论知识讲起,然后再附上代码消化理解。 论文内容:1. 论文第IV点的B部分IMU预积分, IMU预积分的作用是计算出原创 2017-12-05 13:43:52 · 25125 阅读 · 23 评论 -
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 · 6908 阅读 · 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 · 6181 阅读 · 3 评论 -
视觉SLAM常见的QR分解SVD分解等矩阵分解方式求解满秩和亏秩最小二乘问题(最全的方法分析总结)
关于这个问题的内容比较多,也整理了相当一段时间,在写内容之前,我需要引用一些牛人的名人名言,以壮士气。 (1)故不积跬步,无以至千里;不积小流,无以成江海-荀子 (2)只收藏,不点赞的同学,人心都是肉长的。。。地主家也没有余粮啊。。。我想说的是。。。不赞不是好码农-马克.wangshuai (纯粹copy)内容一 首先直接给出AX=B解的情况: (1)R(A)< r(A|B),...原创 2018-05-05 21:40:05 · 14930 阅读 · 4 评论 -
深度学习SLAM结合之google开源SFMLearner论文详解-Unsupervised Learning of Depth and Ego-Motion from Video
无监督学习下的深度和位姿估计 摘要:文章提出了一种单目深度和位姿估计的无监督学习网络,本文的创新点是完全无监督的网络。整个网络主要分为两个部分,分别是单视图深度估计和多视图位姿估计。需要注意的是本文最后得到的深度和位姿没有系统尺度。如论文中图1所示(这里注意后面有提到同时训练了第三个网络explainability prediction network暂时翻译成解释预测网络) 论文核心算...原创 2018-04-26 18:52:50 · 14228 阅读 · 10 评论 -
机器人计算机视觉领域顶会论文集收录总结
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 阅读 · 0 评论 -
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技术路线与代码详解
VINS技术路线 写在前面:本文整和自己的思路,希望对学习VINS或者VIO的同学有所帮助,如果你觉得文章写的对你的理解有一点帮助,可以推荐给周围的小伙伴们,当然,如果你有任何问题想要交流,欢迎随时探讨。话不多说,下面上正文。VINS代码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono参考文档:1.VINS-Mono A R...原创 2017-11-06 19:58:22 · 67512 阅读 · 52 评论 -
VINS理论与代码详解4——初始化
VINS理论与代码详解4——初始化 1. 基于滑动窗口的纯视觉单目初始化 在介绍纯视觉初始化前我们首先讲一讲为什么要初始化?初始化要做什么?以及初始化的作用?我们初始化的原因是单目惯性紧耦合系统是一个非线性程度很高的系统,首先单目是无法获得空间中的绝对尺度,而IMU又必然存在偏置,在后面进行求解的时候还需要用到重力加速度(包括大小和方向),对于速度比较敏感的条件下,原创 2017-12-05 13:50:27 · 15329 阅读 · 24 评论 -
最小二乘法总结
一.背景 5月9号到北大去听hulu的讲座《推荐系统和计算广告在视频行业应用》,想到能见到传说中的项亮大神,特地拿了本《推荐系统实践》求签名。讲座开始,主讲人先问了下哪些同学有机器学习的背景,我恬不知耻的毅然举手,真是惭愧。后来主讲人在讲座中提到了最小二乘法,说这个是机器学习最基础的算法。神马,最基础,我咋不知道呢! 看来以后还是要对自己有清晰认识。 回来赶紧上百度,搜了下什么是最转载 2017-06-01 15:10:20 · 6727 阅读 · 1 评论