自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 本地仓库和远程仓库之间冲突解决

解决方法1、把远程仓库master分支下载到本地并存为tmp分支git fetch origin master:tmp2、查看tmp分支与本地原有分支的不同git diff tmp这里主要是看看有没有其他的改动…3、将tmp分支和本地的master分支合并git merge tmp这个时候呢,本地与远程就没有冲突了,而且还保留了我今天的代码,现在Push就OK啦!4、最后别忘记删除tmp分支git branch -d tmp...

2021-12-14 11:26:18 1247 2

原创 rosbagtocsv

# coding:utf-8#!/usr/bin/python # Extract images from a bag file. #PKG = 'beginner_tutorials'import roslib; #roslib.load_manifest(PKG)import osimport rosbagimport rospyimport cv2import pylabimport numpy as npimport matplotlib.pyplot as pltf

2021-12-01 09:22:03 308

原创 rosbagtofiles

# coding:utf-8#!/usr/bin/python # Extract images from a bag file. #PKG = 'beginner_tutorials'import roslib #roslib.load_manifest(PKG)import rosbagimport rospyimport decimalimport cv2from sensor_msgs.msg import Imagefrom cv_bridge import CvBri

2021-12-01 09:21:05 1951

原创 vector<int>().swap()

1、释放内存:empty()是用来检测容器是否为空的,clear()可以清空所有元素。但是即使clear(),所占用的内存空间依然如故。如果你需要空间动态缩小,可以考虑使用deque。如果非要用vector,有一个办法,就是使用swap:在《effective STL》和其实很多C++文章中都有指明,用clear()无法保证内存回收。但是swap技法可以。具体方法如下所示:vector<int> ivec;ivec.push_back(1);ivec.push_back(1);ivec.

2021-07-19 14:36:13 1459

转载 LVI-SAM

https://visionary.blog.csdn.net/article/details/116032640

2021-07-08 16:08:53 250

原创 高斯混合模型

使用多个高斯分布去模拟当前的分布每个GMM由K个高斯分布组成,每个高斯分布称为一个组件(Component),这些组件线性加成在一起就组成了GMM的概率密度函数:

2020-11-30 10:40:07 80

转载 ESKF

ESKF原理@西涯先生

2020-08-12 16:40:34 1152

转载 VINS翻译

https://blog.csdn.net/qq_41839222/article/details/85683373

2020-04-11 21:44:03 169

原创 动态规划问题总结

一、鉴别:题目里有最优、最长、最大、最小、计数等字眼,要考虑是否是DP问题二、解决思路将原问题拆解成子问题所有的动归问题基本都可以使用递归求解(想象斐波那契数列),寻找递推公式,这里的设计要考虑无效性,即如果我走了当前这一步,会造成什么后果(比如下一步不能走)。但是利用递归会出现大量的冗余计算,这时要想着怎么优化问题——去冗余(一般问题都是离散的,这样把之前计算的结果保存到数组、二维数...

2019-08-19 20:04:59 205

转载 爬山算法(局部最优解法)

https://blog.csdn.net/huang123307/article/details/82868169

2019-08-19 14:03:04 5176

原创 C++引用和指针

指针指向的是变量的存储地址,引用是变量的别名sizeof(指针)是地址的大小,sizeof(引用)是变量的大小引用必须在定义的时候进行初始化,而且一旦初始化了,就不可以再成为别的变量的引用,但是指针可以随意转变指向。指针可以有多级,引用只有一级指针和引用作为函数参数的时候是不同的效果,引用参数可以让主程序的变量改变。具体请看下面的例程。#include <iostream&gt...

2019-08-17 10:39:02 89

转载 高斯塞尔得迭代

https://blog.csdn.net/wwanrong/article/details/78927020

2019-08-16 15:24:38 194

原创 C++智能指针

1. 智能指针的目的智能指针是一个模板类,设计目的是因为在C++程序设计中,需要频繁使用堆内存,管理指针非常麻烦,又很容易出现忘记释放内存造成内存泄漏或者二次释放、程序发生异常时内存泄露等问题。使用智能指针可以更好的管理内存。2.智能指针的原理智能指针是利用了一种叫做RAII(资源获取即初始化)的技术对普通的指针进行封装,这使得智能指针实质是一个对象,行为表现的却像一个指针。智能指针类的构...

2019-08-15 22:21:32 140

原创 NULL和nullptr的区别

NULL在C++中就是0,这是因为在C++中void* 类型是不允许隐式转换成其他类型的,所以之前C++中用0来代表空指针,但是在重载整形的情况下,会出现上述的问题。所以,C++11加入了nullptr,可以保证在任何情况下都代表空指针,而不会出现上述的情况,因此,建议以后还是都用nullptr替代NULL吧,而NULL就当做0使用。原文链接:https://blog.csdn.net/qq_1...

2019-08-15 11:41:01 326

转载 常用头文件

https://www.cnblogs.com/zhangdewang/p/7757715.html

2019-08-15 10:06:09 188

转载 段错误调试办法

https://blog.csdn.net/guaiguaihenguai/article/details/78701008

2019-08-15 10:03:14 110

原创 Tum tool

https://blog.csdn.net/qq_27840681/article/details/80036823

2019-08-14 16:34:06 161

原创 vector,set,list区别

c++ list, vector, map, set 区别与用法比较List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链...

2019-08-09 10:29:26 966

原创 auto关键字 decltype关键字

https://www.cnblogs.com/lenmom/p/7988635.html自动类型推断1、使用auto关键字的变量必须有初始值。在定义的时候进行初始化2、函数参数和模板参数不能被声明为auto。3、使用auto关键字进行类型推导时,如果初始化表达式是引用类型,编译器会去除引用,除非显示声明4、使用auto使用auto关键字进行类型推导时,编译器会自动忽略顶层const,除...

2019-08-09 06:25:58 104

转载 lambda表达式

https://www.cnblogs.com/jimodetiantang/p/9016826.htmlhttps://blog.csdn.net/a262624/article/details/87904329

2019-08-09 00:27:01 79

转载 EKF卡尔曼滤波推导

https://blog.csdn.net/victor_zy/article/details/82862904

2019-08-03 03:34:25 332

转载 互斥锁unique_lock<mutex> lock

https://blog.csdn.net/ktigerhero3/article/details/78249266/

2019-07-26 22:32:12 657

转载 单应矩阵分解

https://blog.csdn.net/kokerf/article/details/72885435

2019-07-10 16:45:43 547

原创 剑指offer之6/6

1.n个骰子的点数思路:基于循环的解法,加入一个新的骰子,此时,和为n的骰子出现的次数应该等于上一轮循环中骰子点数和为n-1、n-1、n-3、n-4、n-5、n-6的和。void PrintProbability(int number) //number是骰子数{ if(number<1) return; int* pProbabilities[2]; //...

2019-05-26 23:14:39 106

原创 剑指offer之5/6

1.在排序数组中查找数字一提到排序数组,立马想到二分查找

2019-05-23 00:51:03 72

原创 剑指offer之4/6

1.数组中出现次数超过一半的数字在遍历数组的时候保存两个值,一个数数组中的数字,一个是次数当遍历到下一个数字时,如果与前面的数组相当,则加1,否则减1。我们要找的数字出现次数比其他所有数字出现的次数和还多。我们要找的数字肯定是最后一次把次数设置为1的数字。个人理解 用重复的数字去抵消不同的数字2.最小的K个数用快排里的partition函数求解3.数据流中的中位数使用堆,分成一个最...

2019-05-19 23:20:47 92

原创 排序

一、冒泡排序void BubbleSort(int* numbers,int n){ int i,j; ///i=0时,经过冒泡线性表中最小的数会上升到第一位,要经过n次,才能完成整个排序过程 for(i=0;i<n;i++) { for(j=n-2;j>=i;j--) { if(number...

2019-05-02 07:19:38 95

原创 查找

一、顺序查找遍历整个线性变,直到找到要找到值。这是最简单粗暴的方法,时间复杂度为O(n)。二、二分查找取中间对象作为比较对象,把给定值与中间值比较,如果给定值大于中间值,在右半边找,如果给定值小于中间值,在左半边找。不断二分,最后找出给定值。时间复杂度为O(logn)int half_search(int *a,int n,int key){ int low,high,mid; ...

2019-05-01 01:26:03 112

原创 剑指offer之3/6

二叉树的镜像

2019-04-29 01:27:28 75

原创 剑指offer之2/6

1 数值的整数次方需要考虑的点当底数为0,指数为负的情况下,此时数字无意义,所以要进行异常保护其他指数为负的时候,应该取绝对值然后算结果。第二种方法,可以使用公式,利用递归的方式求解。2 打印从1到n的最大n位数考虑大数问题,使用字符串表示数字,这块的代码不懂。。。第二种方法是转化成全排列问题,n个从0到9的全排列,使用递归的方式。void print1tomax(int n){...

2019-04-20 20:44:38 72

转载 马氏距离的深入理解

http://www.cnblogs.com/likai198981/p/3167928.html

2019-04-18 14:06:02 510

原创 剑指offer之1/6

1.为类添加一个赋值运算符函数。注意点:需要保证算法的异常安全性。返回值为引用传入参数也是类的引用,而且应该加const(引用可以防止内存的无谓消耗)应该先释放this类的私有数据内存,否则会内存泄露。class A:A& A::operator=(const A& str){if(this==str)return *this; ////如果两个类...

2019-04-13 21:06:27 88

转载 单目尺度不确定性理解

https://www.zhihu.com/question/50385799/answer/120902345

2019-04-02 22:37:17 4117

原创 ubuntu14.04安装LSD_SLAM

官方使用的是ubuntu14.04+ros indigo的环境,最好环境跟官方保持一致,使用ubuntu16.04安装编译可能会出现一些问题LSD-SLAM官网:https://vision.in.tum.de/research/vslam/lsdslamLSD-SLAM Github:https://github.com/tum-vision/lsd_slam一、创建ros工作空间sud...

2019-04-01 17:07:34 349

转载 Caffe安装教程:Ubuntu16.04(CPU)

https://blog.csdn.net/u010193446/article/details/53259294/

2019-03-18 10:32:44 492

原创 C ++ write和read

write#include &lt;unistd.h&gt;ssize_t write(int fd, const void *buf, size_t nbyte);fd:文件描述符buf:指定的缓冲区,即指针,指向一段内存单元nbyte:要写入文件指定的字节数返回值:写入文档的字节数(成功);-1(出错)write函数把buf中nbyte写入文件描述符handle所指的文档,成功...

2019-03-07 16:55:03 507

转载 PCL点云库学习

http://www.pclcn.org/study/news.php?lang=cn&amp;class1=85&amp;class2=102&amp;class3=0&amp;page=7

2019-02-26 22:50:26 215

原创 RANSAC随机采样一致性算法的介绍

RANSAC是“RANdom SAmple Consensus(随机抽样一致)”的缩写。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法——它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次数。数据分两种:有效数据(inliers)和无效数据(outliers)。偏差不大的数据称为有效数据,偏差大的数据是无效数据。如果有效数据占大多数,无 ...

2019-02-24 17:10:40 1057

原创 Ros node启动与关闭

Ros node启动与关闭1. ros运行单位:Ros程序运行的单位是ros node。2. ros 节点的启动:(1)初始化ros节点:通过调用ros::init()接口实现;可以通过参数指定默认节点名字,之所以是默认,是因为在命令行执行程序时,是可以修改节点名字的。(2)启动ros节点:通过调用ros::NodeHnadle创建NodeHnadle实例nh实现,第一次创建实例时,会调...

2019-02-22 16:24:22 5460

原创 Optimizer类

ORB_SLAM2优化类一共有五个优化这里先说一下利用g2o的BundleAdjustment优化初始化优化器(稀疏,线性,LM算法)设置关键帧位姿为顶点设置地图点位置为顶点对于每一个地图点,将它与能观测到该点的关键帧之间的重投影误差设置为边设置完成,进行优化更新优化后的关键帧位姿和地图点位置一、GlobalBundleAdjustemnt(全局优化):对所有的地图点和关键帧进...

2019-02-18 17:13:17 1164

空空如也

空空如也

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

TA关注的人

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