
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
问题在安装ros的时候需要使用sudo rosdep init和rosdep update初始化rosdep,但是此时会出现如下错误:ERROR: cannot download default sources list from:https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-defa
OpenvSLAM源码解析的博客写完第一篇《开源SLAM框架学习——OpenVSLAM源码解析: 第一节 安装和初探》之后,没想到过了三个月才写第二篇。主要是最近工作确实很忙,现在正在做一个基于全景相机的视觉定位的项目,但是整个项目就我一个人在做。不过幸运的是,这个项目目前已经获得了一些成果了,往后有时间我会在博客中与大家分享。趁着在跑实验数据的间隙开始我OpenVSLAM源码解析的第二篇。###
1.布雷森汉姆直线算法简介我们在纸上画直线时,只需要定一个起点和终点,然后把两点连接起来就是一条直线,你将会得到一条笔直的直线。但是,这个简单的过程,在计算机上却并不容易。首先计算机的屏幕是一个一个的离散的led。如下图,每一个白块都是一个灯管,当我们绘制一条直线时,就需要判断在这条直线上,需要点亮哪些灯管来模拟这条直线。布雷森汉姆直线算法就是为了解决这样的问题。2.算法流程2.1 直观理解布雷森
最近刚好有机会需要学习一下OpenVSLAM,在此记录一下我的学习过程,一方面可以加强自己的记忆和理解,另一方面可以帮助一下有需要的同学。我打算通过介绍算法原理和解析对应代码的方式,将OpenVSLAM完整地学习一遍。通过这种方式我觉得我可以向你分享特征点视觉SLAM的一些常用算法,帮助你理解一套完整的视觉SLAM系统是怎么运行起来的。今天就先开始第一节吧!1. OpenVSLAM1.1 介绍论文
Hello,各位好朋友,还记得第五讲的时候,我跟你们说过纯数学理论的内容暂时告一段落!好吧,我骗你们了,哈哈! 这一讲不但是纯数学理论,而且还是很有难度的纯数学理论,如果你在看我这篇博客之前,已经看过这一讲的内容了,我相信第一次见到这些内容你可能根本不知道他在说啥!书上眼花缭乱的公式,似乎一直在向你传达两个字——放弃!哈哈,开个玩笑! 这一讲的解读,我准备从一个例子入手,用最通...
解读在上一讲的解读中,我介绍了基于图的后端优化,我们也了解了SLAM优化问题的稀疏性,基于稀疏性我们可以在很短的时间内对特征点位置相机姿态进行优化。不过更大的场景下,大量的特征点的存在会严重的降低计算效率,导致计算量越来越大以至于无法实时化1 。 经过观察发现,在做BA优化的时候,特征点的优化占了计算资源的大部分,而实际上经过几轮优化之后,空间位置估计会收敛到一个值保持不动,而发散的外...
上一篇博客《解读《视觉SLAM十四讲》,带你一步一步入门视觉SLAM—— 第 7 讲视觉里程计1 ( 上 )》,我解读了特征点,讲述了关键点的提取和描述子的计算,以及特征点的匹配。经过匹配之后就会获得很多匹配点对。那么怎么从匹配的点对中获得相机的运动关系呢?解读对极约束作者首先通过三点共面关系,推导出了对极约束。实际上这个推导过程还有一种更加简洁的方法,首先将书中对极几何约束示意图简化成如下...
1. 面临的问题两个独立的SLAM系统中,常常面临一个问题,那就是一个系统上的某一个pose,对应到另一个系统中是在哪里?紧耦合的SLAM系统,不存在这个问题,比如激光雷达和相机融合的SLAM系统,它们不存在上述问题!造成这种关系不确定的最主要原因是:两个系统各自有自己的一个参考系。如果它俩在一个统一的世界参考系下,那么就不存在上述的问题。我们立马想到的一个办法是,我让两个SLAM系统同时开机运行
1.问题OpenCV在做Mat矩阵运算的时候报如下错误:error: (-215:Assertion failed) type == B.type() in function 'gemm'如下代码就会报此错误:cv::Mat A(3,3,CV_32F);cv::Mat B(3,3,CV_64F);std::cout << A*B <<...
1. 面临的问题两个独立的SLAM系统中,常常面临一个问题,那就是一个系统上的某一个pose,对应到另一个系统中是在哪里?紧耦合的SLAM系统,不存在这个问题,比如激光雷达和相机融合的SLAM系统,它们不存在上述问题!造成这种关系不确定的最主要原因是:两个系统各自有自己的一个参考系。如果它俩在一个统一的世界参考系下,那么就不存在上述的问题。我们立马想到的一个办法是,我让两个SLAM系统同时开机运行







