- 博客(79)
- 收藏
- 关注
原创 ros笔记
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-07-07 09:41:50
425
原创 Python打包工具distutils的使用
本篇博客介绍的是使用distutils + setup.py 打包发布自定义的python包。假设python工程目录既然后如下,一个比较简单的需求:在打包时,我们希望对于一些pkg,全部打包(所有py文件),对于其他pkg,部分打包。打包pkg里的配置文件打包不属于任何pkg的模块(单个py脚本)为了满足上述需求,setup.py 脚本编写如下:from distutils...
2019-06-01 11:03:24
7382
原创 pcl笔记
1直线拟合import pcldef get_line_model(pcd): """Fits a line by RANSAC method to points in pcd.""" ransac_distance_threshold = 0.03 if pcd.size == 0: return None point_cloud
2019-04-16 11:42:53
619
原创 opencv logPolar()和linearPolar()
logPolar是把数据从笛卡尔转到对数极坐标系,linearPolar把数据从笛卡尔坐标系转到极坐标坐标系。说到笛卡尔坐标系到极坐标系的转换,大家并不陌生,公式如下:设(x, y)为极坐标的一点,()为转换中心,()为转换后的结果,则笛卡尔转到对数极坐标系的转换多了一层对数,可表示如下这里log以自然数e为底。接下来,首先分析一下logPolar和linearPola...
2018-11-12 22:42:02
10299
1
转载 协方差矩阵的几何解释
A geometric interpretation of the covariance matrixhttp://www.visiondummy.com/2014/04/geometric-interpretation-covariance-matrix/译文:http://demo.netfoucs.com/u010182633/article/details/45937051本文...
2018-11-08 17:26:42
1491
1
原创 share_ptr使用注意事项
智能指针可以提供对动态内存安全而又方便的管理,但这建立在正确使用的前提下。为了正确使用智能指针,我们必须坚持一些基本规范。1 避免同一块内存绑定到多个独立创建的shared_ptr上,因此要不使用相同的内置指针初始化(或reset)多个智能指针,不要混合使用智能指针和普通指针,坚持只用智能指针。2 不delete get() 函数返回的指针,因为这样操作后,shared_ptr并不知道它管...
2018-08-05 14:16:26
4940
1
原创 利用kalibr工具进行camera-IMU标定
camera-IMU标定一camera-IMU标定简述1标定目的:我们进行camera-IMU的目的是为了得到IMU和相机坐标系的相对位姿矩阵T。2标定工具:我们利用Kalibr标定工程对camera-IMU进行标定,链接https://github.com/ethz-asl/kalibr/wiki/calibrating-the-vi-sensor.以下内容是在对在camera-IMU成功标定后...
2018-05-07 10:36:53
27474
4
转载 Eigen 使用参考
from:http://eigen.tuxfamily.org/dox/AsciiQuickReference.txtEigen 矩阵定义#include<Eigen/Dense> Matrix<double,3,3>A;//Fixedrowsandcols.SameasMatrix3d....
2018-01-29 16:13:26
872
原创 模拟退火算法参数分析
模拟退火算法参数分析一 模拟退火算法介绍模拟退火算法是一种寻找全局最优解的优化方法,核心思想就是以一定概率接收差解,并且这个概率会随着退火温度逐渐降低。一个比较形象的比喻是:一个锅底凹凸不平有很多坑的大锅,晃动这个锅使得一个小球使其达到全局最低点。一开始晃得比较厉害,小球的变化也就比较大,在趋于全局最低的时候慢慢减小晃锅的幅度,直到最后不晃锅,小球达到全局最低。算法流程如
2018-01-27 09:34:52
23215
原创 git 命令行最基本的使用
一1克隆代码:git clone [仓库地址.git]2进入克隆下来的仓库目录修改代码(维护代码) --本地3各种修改后,git diff 或 git status 查看差异,会显示刚才的修改。--本地4初次提交需配置个人信息邮箱:git config --global user.email "邮箱名"名字:git config --global us...
2018-01-25 15:59:37
353
转载 linux 常用命令全称
su:Swith user 切换用户,切换到root用户cat: Concatenate 串联uname: Unix name 系统名称df: Disk free 空余硬盘du: Disk usage 硬盘使用率chown: Change owner 改变所有者chgrp: Change group 改变用户组ps:Process Status 进程状态t
2017-12-07 08:40:40
404
原创 ORBSLAM2单目初始化过程
ORB单目模式的初始化过程可以分为以下四个阶段:1 通过匹配选取两个可以作为起始两帧的初始帧2 根据匹配计算两帧之间的位姿3 三角化测量初始的特征点云深度,进而获得点云地图。4 BA优化初始点云在初始化后,单目模式和双目及RGBD模式一样,都是通过PNP来计算位姿。下面,说一下初始化算法的步骤:第一阶段:选取两个可以作为起始两帧的初始帧这一阶段做的工作是...
2017-11-17 15:17:48
11809
转载 机器视觉开源代码集合
一、特征提取Feature Extraction:SIFT [1] [Demo program][SIFT Library] [VLFeat]PCA-SIFT [2] [Project]Affine-SIFT [3] [Project]SURF [4] [OpenSURF] [Matlab Wrapper]Affine Covariant Features [5] [O
2017-09-25 21:01:01
729
转载 卡尔曼滤波
卡尔曼滤波是什么 卡尔曼滤波适用于估计一个动态系统的最优状态。即便是观测到的系统状态参数含有噪声,观测值不准确,卡尔曼滤波也能够完成对状态真实值的最优估计。网上大多数的教程讲到卡尔曼的数学公式推导,会让人很头疼,难以把握其中的主线和思想。所以我参考了国外一位学者的文章,讲述卡尔曼滤波的工作原理,然后编写了一个基于OpenCV的小程序给大家做一下说明。下面的这个视频请大家先直观地...
2017-09-16 14:51:37
20018
3
转载 什么是动态规划?动态规划的意义是什么?
作者:王勐链接:https://www.zhihu.com/question/23995189/answer/35429905来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。动态规划的本质不在于是递推或是递归,也不需要纠结是不是内存换时间。理解动态规划并不需要数学公式介入,只是完全解释清楚需要点篇幅…首先需要明白哪些问题不是动态规划可以解决
2017-08-24 15:34:02
1991
转载 sizeof
今天看《程序员面试宝典》一书(为了应付将要到来的微软笔试),看到了sizeof(string)这个问题。在Dev C++上测试的结果是4,很不明白。上网搜了一下,得到如下结果:string strArr1[]={"Trend", "Micro", "Soft"};sizeof(strArr1)=12转自:http://apps.hi.baidu.com/shar
2017-08-21 19:27:15
434
原创 绘制二维障碍栅格地图的一种方法2(全局地图的绘制)
在《绘制二维障碍栅格地图的一种方法1(局部地图的绘制)》http://blog.youkuaiyun.com/zhubaohua_bupt/article/details/72923373 这篇博客里,我们讲述了如何利用深度相机去绘制单帧图像看到的局部地图。但是只有局部地图是不够用的,在一般的地面机器人的路径规划中,往往需要整个场景的栅格地图,这样,就可以为机器人,在场景里所有可达的目标位置,
2017-08-11 11:06:28
11985
4
转载 c++单继承、多继承、菱形继承的内存布局(虚函数表结构)
单继承:只有一个基类和一个派生类class Base{public: virtual void fun1() { cout "Base::func1()" << endl; } virtual void fun2() { cout "Base::func2()" << endl; }private:
2017-08-11 10:10:43
1058
1
转载 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
从K近邻算法、距离度量谈到KD树、SIFT+BBF算法前言 前两日,在微博上说:“到今天为止,我至少亏欠了3篇文章待写:1、KD树;2、神经网络;3、编程艺术第28章。你看到,blog内的文章与你于别处所见的任何都不同。于是,等啊等,等一台电脑,只好等待..”。得益于田,借了我一台电脑(借他电脑的时候,我连表示感谢,他说“能找到工作全靠你的博客,这
2017-08-09 09:54:20
826
原创 两种图像骨架提取算法的研究(2)实现代码
1 K3M#include #include #include #include#include #include #includeusing namespace std;set GetAi(int a[], int length)//获取A0~A5{ set vec; int neighbour[] = { 1,2,4,8,16,32,64,128
2017-08-07 17:35:31
6104
转载 c++虚基类在内存中的分布
本文转自http://www.cnblogs.com/cy568searchx/p/3688215.html今天重温C++的知识,当看到虚基类这点的时候,那时候也没有太过追究,就是知道虚基类是消除了类继承之间的二义性问题而已,可是很是好奇,它是怎么消除的,内存布局是怎么分配的呢?于是就深入研究了一下,具体的原理如下所示:在C++中,obj是一个类的对象,p是指向obj的指针,该类里面有
2017-08-03 14:19:18
1675
2
转载 Opencv Mat属性
本文转自http://www.cnblogs.com/wangguchangqing/p/4016179.html在OpenCV2中Mat类无疑使占据着核心地位的,前段时间初学OpenCV2时对Mat类有了个初步的了解,见OpenCV2:Mat初学。这几天试着用OpenCV2实现了图像缩小的两种算法:基于等间隔采样和基于局部均值的图像缩小,发现对Mat中的数据布局和一些属性的认知还是懵懵懂
2017-07-31 10:46:06
1466
原创 RANSAC(Random Sample Consensus)随机抽样检验一致性
转载请注明出处: 算法简介RANSAC算法的基本假设是样本中包含正确数据(inliers,可以被模型描述的数据),也包含异常数据(outliers,偏离正常范围很远、无法适应数学模型的数据),即数据集中含有噪声。这些异常数据可能是由于错误的测量、错误的假设、错误的计算等产生的。同时RANSAC也假设,给定一组正确的数据,存在可以计算出符合这些数据的模型参数的方法。 基本思想描述...
2017-07-14 14:37:35
3199
原创 高斯牛顿(Gauss Newton)、列文伯格-马夸尔特(Levenberg-Marquardt)最优化算法与VSLAM
高斯牛顿(Gauss Newton)、列文伯格-马夸尔特(Levenberg-Marquardt)最优化算法与VSLAM中的具体应用
2017-07-11 15:01:37
24079
4
原创 三角测量恢复深度
转载请说明出处:http://blog.youkuaiyun.com/zhubaohua_bupt/article/details/74926111本文介绍一下,三维重建时,在极线搜索匹配后,怎么由匹配像素对来恢复像素的深度信息。对于线性方程Ax=b,其最小二乘解为x=(A.transform() * A).inverse() * A *, https://blog.cs...
2017-07-10 16:03:23
7004
1
原创 图像三维重建方法综述
利用相机进行三维重建已经不是一个新鲜的话题,重建的三维环境用途很广泛,比如检测识别目标,作为深度学习的输入,视觉SLAM。目前,比较流行的是单、双目的重建。根据重建的稀疏程度不同,可以分为以下以下几类:稀疏重建:通常是重建一些图像特征点的深度,这个在基于特征的视觉SLAM里比较常见,得到的特征点的深度可以用来计算相机位姿。稀疏重建在实际应用,比如检测,避障,不能满足需求。半稠密
2017-07-03 10:20:15
27648
14
原创 SLAM优化位姿时,误差函数的雅可比矩阵的推导。
本篇博客是介绍的是,在直接法VO中,用最小二乘迭代优化位姿时,误差函数对于位姿扰动的雅可比矩阵。此雅可比矩阵决定着下一步最小二乘最优迭代估计时,位姿增量的方向。因此十分重要。
2017-06-30 17:35:04
19498
13
转载 指针的大小是谁决定的
本文转自http://blog.sina.com.cn/s/blog_4fd9844201010n3v.html应该说这是一个非常基础的问题,教科书上说指针大小和机器字长相同,即32位机指针长度为4字节!但是对不对呢?为什么是这样? 搜了一下相关资料。。。居然发现回答不统一,很多人也同样是糊里糊涂。下面对这个问题做一个系统的整理和分析: 首先,介绍几个基本概念:
2017-06-22 10:19:28
402
原创 室外无人机用自己的相机采图集之环境配置
工具:1 无人机2在linux下已经安装SSH的前提下,Bitvise 是一款非常方便的Linux远程登录软件,支持图形界面。百度安装Bitvise 后,简单的配置如http://blog.sina.com.cn/s/blog_7cb52fa80102ve3e.html。
2017-06-12 15:41:56
768
原创 c++thread学习(3)并发多线程系统开发过程
在实现一个规模较大的工程时,需要多个线程之间互相传递数据,因此,点对点的通信机制已经不能满足需要,设定一个比较合理的通信架构会提高工程开发、维护的效率以及代码的复用性,可读性。了解ROS的小伙伴都知道,ROS的通讯是 节点——话题——节点 的方式。每个节点代表一个线程,每个话题是一块通信数据内存,线程之间的通讯通过话题这个“中介”传递(消息)。线程之间的通信方式是,生产者(节点)发布消
2017-06-08 16:07:51
736
转载 Opencv 多线程显示错误 [xcb] Unknown request in queue while dequeuing [xcb] Most likely this is a multi-thre
本文转自 http://blog.youkuaiyun.com/michaelhan3/article/details/54707417OpenCV 多线程显示出现以下错误:[xcb] Unknown request in queue while dequeuing[xcb] Most likely this is a multi-threaded client and XInitThread
2017-05-24 17:46:46
4409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人