- 博客(28)
- 资源 (2)
- 收藏
- 关注
原创 ubuntu20.04安装NVIDIA驱动后docker中rviz,pcl_viewer等涉及到访问宿主机界面的程序不可用
如题,ubuntu20.04安装NVIDIA驱动后docker中rviz,pcl_viewer等涉及到访问宿主机界面的程序不可用,NVIDIA驱动选择如下:选择后启动docker,然后安装galactic ros2,会报错如下:[ERROR] [1651885440.540169712] [rviz2]: rviz::RenderSystem: error creating render window: RenderingAPIException: Unable to create a sui
2022-05-07 09:39:10
5074
4
原创 ubuntu18.04+rviz+键盘任意输入时发生段错误
环境: Ubuntu18.04 ROS Melodic问题:运行rviz,键盘输入任意键值,rviz由于段错误退出解决方案:yaml版本不对,重新在终端运行sudo apt-get --reinstall install libyaml-cpp0.5v5问题解决
2020-10-21 16:36:02
308
原创 一起学ORBSLAM2(12)结语
该系列orbslam2的学习到本节也就结束了,实际对于orbslam这一系列的博客皆为本人的学习笔记,如有不足之处还望指出,希望通过这一系列的博客大家能够对orbslam有一个更好的理解,orbslam作为视觉slam开源方案中较成功的一个,有许多我们需要借鉴学习的地方。还需要继续探索这一系列的博客对应注释代码下载网址:https://download.csdn.net/download/qq_3...
2018-06-05 22:42:51
1122
4
原创 一起学ORBSLAM2(11)ORBSLAM的localmapping
转载请注明原创地址:https://blog.csdn.net/qq_30356613/article/category/6897125ORBSLAM的局部建图线程实际做的工作是来维护全局map以及管理关键帧的,对tracking得到的关键帧进行筛选融合,以及对关键帧中的地图点进行融合,剔除冗余的关键帧和地图点,维护一个稳定的全局map,并将筛选后的关键帧提供给回环检测使用。局部建图线程主函数流程...
2018-06-05 22:35:05
3634
2
原创 一起学ORBSLAM2(10)ORBSLAM中的相似变换矩阵的计算
ORBSLAM在回环检测过程中通过计算回环两帧的相机相似变换矩阵来为图优化添加边。已知3D-3D的匹配地图点,通过匹配地图点计算两关键帧之间的相似变换矩阵,主要参考文章:Closed-form solution of absolute orientation using unit quaternions.主要内容如下:相似变换矩阵与欧式变换的区别: 如表所示相似变换与欧式变换相比较多了尺度因子。因...
2018-06-05 22:20:20
3272
3
原创 一起学ORBSLAM2(9)ORBSLAM的PNP解决方案
PNP问题:已知空间中存在地图点 世界坐标系下的坐标为Pw1,Pw2,Pw3...... Pwn 以及对应于在该帧中的匹配点像素坐标u1,u2,u3......un,求解此时相机的位姿Tcw。ORBSLAM中采用EPNP的方案对解决PNP问题,EPNP将匹配点的当前相机坐标系下的坐标得到,然后根据ICP算法进一步求解得到相机的位姿Tcw。整体框架使用RANSAC的方式不断进行迭代求解 因此ORBS...
2018-06-05 22:13:35
6403
6
原创 一起学ORBSLAM2(8)ORBSLAM的loopclosing
ORBSLAM中的回环检测和重定位具有类似的方式,所以我们这里将两个部分放到同一篇文章中讲解。首先看tracking线程中的重定位。一.Tracking重定位重定位模式是在系统处于LOST(追踪线程失败)的情况下进行的系统挽救工作,它的基本流程是:(1)计算当前帧的BoW映射(2)找到与当前帧相似的候选关键帧(3)匹配当前帧与找到的候选关键帧,计算相机位姿Tcw(RANSAC+EPNP算法)(4)...
2018-06-05 22:04:02
2470
原创 一起学ORBSLAM2(7)ORBSLAM中的优化问题
ORBSLAM是一种基于优化方法的SLAM方法,与之前的基于滤波器方法有很大的不同,工程中引入了第三方库g2o,g2o是基于图优化的优化算法库。首先了解什么是图优化,图优化是将普通的优化问题用图的方式(变量用节点表示,关系用边来表示)来表示(参考文章:g2o: A general Framework for Graph Optimization),如下最小二乘问题表达式可以表示为:,其中为误差函数...
2018-06-05 22:01:40
5236
原创 一起学ORBSLAM2(6)ORBSLAM中的特征匹配
ORBSLAM中对于特征点的匹配在不同情况下有不同的匹配方式。分为以下几种:1. 按照投影进行匹配2. 按照bow向量节点进行匹配3. 针对初始化地图点的匹配4. 针对单目三角化的匹配5. 基于相似矩阵的匹配6. 通过匹配来提出冗余地图点 一、首先看按照投影进行的匹配按照投影方式的不同将其分为上一帧投影到当前帧(tracking线程的按照运动模型进行位姿估计),关键帧投影到当前帧(tracking...
2018-06-05 21:53:00
6243
3
原创 一起学ORBSLAM2(5)ORBSLAM的单目视觉处理方式
单目相机由于深度是未知的,因此我们需要对其进行初始化,在ORB-SLAM中将其用单独的类来表示,并将它写成单独的文件initializer.cc,注意单目相机即使在进行初始化之后,仍然存在尺度问题,初始化将第一帧的位移作为单位长度,后面的深度和位移都是依据这一标准进行的,所以尺度问题是单目slam的理论缺点。单目slam初始化需要两帧进行,第一帧作为参考初始化帧,第二帧作为当前帧。在第一帧来临时建...
2018-06-05 21:49:25
6518
1
原创 一起学ORBSLAM2(4)tracking主线程
跌跌宕宕距离上次更博已经数月,其实对于ORB-SLAM的学习早就完成,只是由于时间原因没能够及时更新。关于orbslam的中文注释的源码,之后将上传到github,后面将更新网址,因此在博客中我们就尽量只讲述理论只是以及梳理工程思路,至于具体代码实现以及代码的注释可以下载注释版源码查看。接着上一篇对于ORB-SLAM的系统介绍继续ORB-SLAM的主线程tracking。ORB-SLAM的trac...
2018-06-05 20:57:04
5003
3
原创 一起学ORBSLAM(2)ORB特征点提取
ORBSLAM2的主要特点在于他的所有工程实现都用到了ORB这个特征点提取方法,包括他实现的在线单目,双目以RGBD的SLAM,下面我们就看看他是怎么一步一步一步一步一步一步一步一步一步一步实现ORB特征的提取的。 理论部分: 关于ORB特征点的实现方法以及其工作原理,网上资料很多,大家可以广泛阅读,当然也要筛选正确的信息,下面给出一个参考博客:http://www.cnblo
2017-11-30 22:01:43
15399
4
原创 SIFT特征浅析
SIFT(Scale-invariantfeature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interestpoints,or corner points)及其有关scale 和 orientation 的描述子得到特征并进行图像特征点匹配,获得了良好效果,详细解析如下:算法描述SIFT特征不只具有尺度不变性,即使改变旋转角度,图像亮度或拍摄
2017-11-14 19:33:06
5194
原创 数字图像处理之均值滤波,高斯滤波,中值滤波,双边滤波
滤波器作为图像处理课程的重要内容,大致可分为两类,空域滤波器和频率域滤波器。本文主要介绍常用的四种滤波器:中值滤波器、均值滤波器、高斯滤波器、双边滤波器,并基于opencv做出实现。空域的滤波器一般可以通过模板对原图像进行卷积进行,卷积的相关知识请自行学习。理论知识:线性滤波器表达公式:,其中均值滤波器和高斯滤波器属于线性滤波器,首先看这两种滤波器均值滤波器:模板:从待
2017-10-28 18:45:23
27253
转载 STM32的GPIO
一、 STM32的输入输出管脚有下面8种(4输入+2输出+2复用输出)可能的配置: ① 浮空输入_IN_FLOATING ② 带上拉输入_IPU ③ 带下拉输入_IPD ④ 模拟输入_AIN ⑤ 开漏输出_OUT_OD ⑥ 推挽输出_OUT_PP ⑦ 复用功能的推挽
2017-08-10 19:03:00
493
原创 静态锁问题
在类中声明了静态成员变量锁后,相当于定义了该类的全局锁,该类的每一个对象这个锁都有效,共用同一个锁。如例子所示(1)仅声明静态锁,不进行调用#include "stdafx.h"#include "thread"#include "iostream"#include "mutex" class Address{public: static std::mutex grob
2017-08-04 09:29:23
3467
1
原创 一起学ORBSLAM2(3)system框架搭建
接着上一期的一起学ORBSLAM2继续,只不过上一期已经是几个月前了,由于这一段时间忙或者毕业答辩的事情,所以没有时间更新博客,望各位见谅,现在到暑假了,没什么事情,接着之前的工作继续,坚持过好每一天,共勉! ORB-SLAM2是萨拉格萨大学做到一个开源SLAM方案,源代码上传到github上边:https://github.com/raulmur/ORB_SLAM2相关效果视频网站为:h
2017-07-31 08:53:30
5618
1
原创 构造函数/拷贝构造函数/赋值运算符/移动构造函数/移动赋值运算符几个的区别与相似之处
构造函数:是类中用来声明初始化变量所用,在类定义的时候调用拷贝构造函数:在用其他已定义对象定义新对象的时候调用拷贝构造函数拷贝赋值运算符:在对象已经被初始化之后,再用其他已经定义的对象赋值就是调用拷贝赋值运算符。移动构造函数:与拷贝构造函数类似,但是不同之处在于他实现的是转移,源对象将丢失其内容,其内容将被目的对象所占有,移动操作发生在当移动对象为未命名对象的时候移动赋值运算符:与
2017-07-28 10:36:22
638
原创 一起学ROS之日志消息,命名规范,消息录制与回放
作为ROS学习的第三节,本节主要讲解三个问题,1.日志消息2.计算图源命名3.消息录制与回放。1、日志消息简单来讲日志就是我们在写C++程序时的printf,对于调试来说有至关重要的的作用,日志根据严重程度分为五个等级:DEBUG, INFO, WARN, ERROR, FATAL.在写ROS代码的时候我们用下边的代码来讲日志信息打印到终端中:ROS_DEBUG_STREAM(me
2017-07-18 09:37:23
4926
原创 一起学ROS之启动文件及ROS命令汇总
我们接着上一节的继续,上一节主要讲了ROS最重要的部分也是优势最明显的部分----他的通信机制,包括消息传递机制和服务调用机制,两者的异同在上一节中也已经详细介绍到了,那么在我们了解了这些之后呢,我们如何来调用这些节点,大概可以分为两种方式,一种是终端命令行的方式,另一种就是本节要着重介绍的启动文件的方式。启动文件的方式相对于直接在终端命令行中直接输入命令相比有明显的优势,尤其是在复杂的机器人
2017-07-17 19:39:02
3299
原创 一起学ROS之通信机制
首先很抱歉这段时间一直在准备毕业设计答辩,很久都没更博了,各位读者是不是想死我了,哈哈哈哈哈哈哈哈哈。 近期,接着毕设的RGBD-SLAM(离线)要做成实时的SLAM了,要做实时的SLAM离不开机器人平台ROS,尤其是在具体的机器人上运行的时候使用ROS更加方便。因此开始了ROS的学习,ROS(机器人操作平台,Robot Operating System)是面向机器人的开源的元操作系统。
2017-07-17 14:42:41
1369
原创 一起学ORBSLAM2(1)跑通ORBSLAM2 ubuntu 14.04的运行
搞完毕设之后与本科毕业还有两个月的时间,这段时间除了每天到处无聊闲逛之外,还是决定做点什么,于是就拿来网上一个现成的开源SLAM代码,看看别人是怎么将SLAM写成一个完备的工程库的所以就写了一起学ORBSLAM2这个系列,本系列结合现有的关于ORBSLAM的相关资料,包括国内的论文博客等,目的在于让自己加深学习的印象,并且刚接触SLAM这个领域,因此可能有许多不足之处还请各位见谅,并欢迎批评指正。
2017-05-01 20:58:46
9142
1
原创 高斯金字塔的思考
首先,关于理论的部分祭上两个博客,http://blog.csdn.net/poem_qianmo/article/details/26157633http://amitapba.blog.163.com/blog/static/203610207201281992239/感觉说的已经比较详细了,在这里我就不搅舌跟子了。直接上代码:#include #include
2017-04-25 19:50:29
944
原创 ubuntu下opencv2.4.9和opencv3.1.0的使用
关于opencv3.1.0和opencv2.4.9的共存问题其实并不是什么大的问题,因此网上资料比较少。本人也是因为在安装Ros Indigo时必须得配合opencv2.4.9使用,与之前的opencv3.1.0版本不太兼容,因此不得不进行双版本的使用,至于安装opencv3.1.0安装去官网上下载源码http://opencv.org/releases.html 然后 用终端进入源码
2017-04-21 21:40:12
2133
1
原创 一起学ROS之安装ROS(ubuntu+ros+opencv2.4.9+kinect V2 安装教程)
最近本科毕业设计期间做rgbdslam的相关东西,其中在使用kinect进行图像采集过程中用到了ROS系统,在网上查阅了相关资料,但是还是有些差强人意。但最终还是安装成功,其中遇到好多问题,本文将就相关问题进行相关说明。首先给出几个个人感觉有用的链接:(1)hitcm的博客:http://www.cnblogs.com/hitcm/p/5118196.html(2)indigo版本的R
2017-04-20 15:12:28
3067
原创 动态规划解决分层图最短路径问题
问题描述,如图所示的解决该问题从节点1-->节点8的最短路径以及其最短距离.利用动态规划的思想:1、将图进行分层,如图所示的路径中可以分为4层,第一层为1,第二层为3/5/6,第三层为2/4/7,第四层为82、从终点开始向起点进行回溯,首先看第三层各元素到节点8的最短距离,然后计算第二层到节点8的最短距离是采用第二层到第三层个节点的距离加上第二层各节点到节点8的距离最短值
2016-11-18 17:13:52
3362
orb-slam中文注释版
2018-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人