自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hansry的博客

All that is real is rational, and all that is rational is real.

  • 博客(164)
  • 资源 (4)
  • 收藏
  • 关注

原创 大疆飞行系统社招,欢迎找我内推

大疆飞行系统内推,有大佬感兴趣请戳下面链接👇。

2024-03-26 18:19:23 121

原创 VSLAM之边缘化 Marginalization 和 FEJ (First Estimated Jocobian)

文章目录1. 前言2. 舒尔补 (Schur complement) 的应用:边界概率,条件概率1. 前言本博客主要介绍了VINS-Mono中边缘化的相关知识,由于VINS-Mono中只是提及了边缘化的策略并没有提及边缘化信息传递的原理,因此本博客主要参考了崔化坤的《VINS论文推导及代码解析》和深蓝学院的VIO课程。VINS-Mono的边缘化与在《SLAM14讲》中也有提及边缘化 (可看博...

2020-02-20 22:20:37 5195 4

原创 VINS-Mono之外参标定和视觉IMU联合初始化

文章目录1.前言2. 利用旋转约束估计外参数旋转qcbq^{b}_{c}qcb​1.前言本博客主要介绍VINS-Mono初始化时相机与IMU对齐,主要包括相机到IMU的外参估计、陀螺仪偏置、相机位移和估计空间点的尺度、重力加速度、每帧速度,主要参考了深蓝学院的VIO课程及博客VINS-Mono理论学习——视觉惯性联合初始化与外参标定和崔华坤的《VINS 论文推导及代码解析》。总体而言,视觉I...

2020-02-18 00:40:21 2197

原创 VINS-Mono之后端非线性优化 (目标函数中视觉残差和IMU残差,及其对状态量的雅克比矩阵、协方差递推方程的推导)

1. 前言之前看过崔华坤的《VINS论文推导及代码解析》还有深蓝学院的VIO课程,对VINS的后端非线性优化有了较为清晰的认识,但是一直没有时间整理写成笔记,最近看到Manni的博客VINS-Mono理论学习——后端非线性优化 概括得很不错,针对这三份资料还有自己的一些理解重新整理下,感谢优秀的大佬们提供的参考资料。2. 非线性最小二乘尽管非线性最小二乘是很常见的问题,可参考《SLAM14讲...

2020-02-09 20:44:13 3055 1

原创 VINS-Mono之IMU预积分,预积分误差、协方差及误差对状态量雅克比矩阵的递推方程的推导

一.前言本博客基本上借鉴了崔华坤的《VINS论文推导及代码解析》和 VINS-Mono理论学习——IMU预积分 Pre-integration (Jacobian 协方差)的内容,有些地方加入自己一些理解。VINS-MONO论文中的IV-B. IMU Pre-integration介绍了IMU预积分模型,Foster的倆篇论文对IMU预积分理论进行详细分析。为什么需要对IMU进行预积分?传...

2020-02-07 21:47:50 5133 10

转载 容器(vector)、数组、new创建的动态数组,哪个执行效率更高些?

一.理论分析1.1堆和栈的区别栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量等。其操作方式类似于数据结构中的栈。堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是俩回事,分配方式倒是类似于链表。全局区(静态区)(static) — 全局变量和静态变量的存储是放在一起的,初始化的全局变量和静态变量在一块区域,...

2020-02-07 16:49:28 3911 1

转载 解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解

前言本博客主要介绍在SLAM问题中常常出现的一些线性代数相关的知识,重点是如何采用矩阵分解的方法,求解线性方程组AX=B。主要参考了《计算机视觉——算法与应用》附录A以及Eigen库的方法。本博客可能不会对分解讲的特别深入,主要是想弄清楚各个分解的条件、分解结果以及应用(或特点)。包括:1、三角分解(LU分解)2、LDLT分解与LLT分解(Cholesky分解)3、QR分解4、奇异值分...

2020-02-04 21:33:53 6049

原创 ROS常用命令

查看ROS_PACKAGE_PATH环境变量$ echo $ROS_PACKAGE_PATHcatkin 命令$ catkin_init_workspace #初始化catkin构建系统的工作目录$ catkin_create_pkg [功能包名称] [依赖性功能包1] [依赖性功能包2]… #自动生成功能包$ catkin_make #构建包$ catkin_make –pkg ...

2020-02-04 15:15:14 563

原创 Ubuntu16.04下安装AutoWare

平台:ros-kinetic安装依赖:sudo apt-get install ros-kinetic-desktop-full ros-kinetic-nmea-msgs ros-kinetic-nmea-navsat-driver ros-kinetic-sound-play ros-kinetic-jsk-visualization ros-kinetic-grid-map ros-k...

2019-11-27 20:56:29 1042 1

转载 二叉搜索树、平衡二叉搜索树和红黑树

一. 二叉搜索树(Binary Sort Tree)二叉搜索树,又称为二叉排序树(二叉查找树),它或许是一棵空树,或许是具有一下性质的二叉树:1.若它的左子树不为空,则左子树上所有的节点的值小于根节点的值2.若它的右子树不为空,则右子树上所有的节点的值都大于根节点的值3.它的左右子树也分别是二叉搜索树二叉搜索树的这种特性,使得我们在此二叉树上查找某个值就很方便了,从根节点开始,若要寻...

2019-11-27 20:48:02 1420

原创 在文件夹内查找某行代码

进入要查找的文件夹,其中 **** 为要查找的内容grep -rn * -ie "****"

2019-11-24 21:56:56 1109

原创 C++11 之emplace_back 与 push_back的区别

C++ 开发中我们会经常用到插入操作对STL的各种容器进行操作,比如vector,map,set等。在引入右值引用,移动构造函数,移动赋值运算符之前,通常使用push_back()向容器中加入一个右值元素(临时对象)时,首先会调用构造函数构造这个临时对象,然后需要调用拷贝构造函数将这个临时对象放入容器中,原来的临时变量释放,这样造成的问题就是临时变量申请资源的浪费。引入了右值引用,移动构造函数后...

2019-11-19 22:15:43 369

转载 Cholesky分解法

Cholesky分解法又叫平方根法,是求解对称正定线性方程组最常用的方法之一。对于一般矩阵,为了消除LU分解的局限性和误差的过分积累,采用了选主元的方法,但对于对称正定矩阵而言,选主元是不必要的。 定理:若对称正定,则存在一个对角元为正数的下三角矩阵,使得成立。 假设现在要求解线性方程组,其中为对称正定矩阵,那么可通过下面步骤求解 (1)求的Chole...

2019-10-06 21:02:43 3868

原创 C++11多线程并发中的std::thread、std::mutex和std::future

C++11 新标准中引入了五个头文件来支持多线程编程:<atomic>,<thread>,<mutex>,<condition_variable> 和 <future><atomic>: 该文件主要申明了俩个类,std::atomic 和 std::atomic_flag,另外还声明了一套 C 风格的原子类和与C兼容的...

2019-08-30 15:01:37 2008

原创 ORB-SLAM2中的g2o

一. 图优化库g2o图优化,是把优化问题表现成图(Graph)的一种形式。这里的图是图论意义上的图。一个图由若干个顶点(Vertex),以及连接着这些定点的边(Edge)组成。进而,用顶点表示优化变量,用边表示误差项。于是,对于任意一个如下形式的非线性最小二乘问题,我们可以构建与之对应的一个图:mina,b,c12∑i=1N∥yi−exp(axi2+bxi+c)∥2\underset{a,b,...

2019-08-25 11:52:51 1708

原创 Ubutu16.04编译Kintinuous

下载Kintinuous: git clone https://github.com/mp3guy/Kintinuous,严格按照里面的build.sh安装1.安装依赖项 sudo apt-get install -y cmake-qt-gui git build-essential libusb-1.0-0-dev libudev-dev openjdk-7-jdk freeglut3-d...

2019-08-05 15:37:34 532 1

转载 C++中的inline用法

1.引入inline关键字的原因在c/c++中,为了解决一些频繁调用的小函数,即不断地有函数入栈,即函数栈,大量消耗 栈空间(栈内存) 的问题,特别的引入了inline修饰符,表示为内联函数。栈空间就是指放置程序的局部数据 (也就是函数内数据)的内存空间。在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题,如,函数的死循环递归调用的最终结果就是导致栈内存空间...

2019-08-05 14:42:14 298

转载 构造函数私有化

通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?没错,我也知道这将会使构造函数成为私有的,这意味着什么?1. 我们知道,当我们在程序中声明一个对象时,编译器为调用构造函数(如果有的话),而这个调用将通常是外部的,也就是说它不属于class对象本身的调用,假如构造函数是私有的,由于在class外部不允许访问私有成员,所以这将导致编译出错。2...

2019-08-04 12:54:28 664

原创 github上传自己的代码

1.首先创建在github上创建自己的文件夹,如下图所示: 2.点击绿色的键Clone or download,得到类似于[email protected]:Hansry/keypoint_matching.git这样的代码,接着在Ubuntu的terminator中键入git clone [email protected]:Hansry/keypoint_matching.git将packag...

2019-08-03 12:17:24 1237

原创 Opencv2.4链接CUDA9.0产生依赖问题

opencv编译的时候,或者其它库链接opencv的时候,报错如下/usr/bin/ld: cannot find -lopencv_dep_nppial/usr/bin/ld: cannot find -lopencv_dep_nppicc/usr/bin/ld: cannot find -lopencv_dep_nppicom/usr/bin/ld: cannot find -lope...

2019-05-29 17:31:55 1106

原创 Kinetic ROS编译ORB-SLAM

流程:https://blog.csdn.net/Fishmemory/article/details/53288140遇到问题参照:http://lingtong.de/2018/10/25/Install-ORB-SLAM/

2019-05-12 13:51:51 279

原创 ORB-SLAM2框架梳理

2019-05-10 15:20:06 1061

原创 teamviewer解决商业检测问题

1.卸载teamviewersudo apt --purge remove teamviewer2.改变电脑enp4s0f1sudo ifconfig enp4s0f1 downsudo ifconfig enp4s0f1 hw ether 2c:2d:a1:c7:4e:3dsudo ifconfig enp4s0f1 up3.重装teamviewersudo dpkg -i t...

2019-05-09 22:57:29 307

原创 LIFT: Learned Invariant Feature Points 环境配置

论文:Kwang Moo Yi, Eduard Trulls, Vincent Lepetit, Pascal Fua, ” LIFT: Learned Invariant Feature Transform”, in ECCV 2016, https://arxiv.org/abs/1603.09114 LIFT github 代码: https://github.com/cvlab-epfl...

2019-03-29 16:18:40 1306 19

转载 关于pytorch grid_sample()

torch.nn.functional.grid_sample(input, grid, mode=‘bilinear’, padding_mode=‘zeros’)其中,grid的shape为(N, H, W, 2)对于output上的每一点,(x, y)三个通道的像素值,采集自input上某一点三个通道的像素值,采集的点存在于grid最低维,也就是(N, H, W, 2)中的2, [0]索...

2019-03-28 15:37:09 7100

原创 ROS tf::TransfromBroadcaster tf::TransformListener listener.lookupTransform listener.waitForTransfor

1.How to broadcast coordinate frames of a robot to tf ?使用tf::TransfromBroadcaster API,具体代码如下: #include <ros/ros.h> 2 #include <tf/transform_broadcaster.h> 3 #include <turtlesi...

2018-12-06 11:49:29 10059 1

原创 Pandas 中iloc 和 loc 的区别

pandas以类似字典的方式来获取某一列的值,比如df[‘A’],这会得到df的A列。如果我们对某一行感兴趣呢?这个时候有两种方法,一种是iloc方法,另一种方法是loc方法。loc是指location的意思,iloc中的i是指integer。这两者的区别如下:loc是通过数据的索引来定位获取iloc 是通过数据的位置(行号)来定位获取. 也就是说loc是根据index来索引,比如下边的d...

2018-11-17 19:04:45 949

原创 Torchvision transforms 总结

一.torchvision.transformsTransfoms 是很常用的图片变换方式,可以通过compose将各个变换串联起来**1. class torchvision.transforms.Compose (transforms) **这个类将多个变换方式结合在一起参数:各个变换的实例对象举例:transforms.Compose([ transforms.Center...

2018-11-16 17:00:04 25074 2

原创 Python glob 模块

glob 模块根据给定的格式返回路径名,尽管返回的文件路径名是乱序的,其中给定的格式不能包含波浪线(’ ~ ‘), 但是’ * ’ , ’ ? '甚至是[ ]都能够正确匹配。其中glob以dot(.)为标志符,文件名从.开始读。举个例子:假如一个文件夹中包含 1.gif, 2.txt, card.gif 和一个子文件夹且其中包含3.txt这个文件,glob()将会产生下面的结果。>&g...

2018-11-14 10:00:25 409

原创 点云分割数据集

https://shapenet.cs.stanford.edu/ericyi/shapenetcore_partanno_segmentation_benchmark_v0.zip

2018-11-09 14:42:34 3814

原创 LSGAN (Least Squares Generative Adversarial Networks)

Paper: https://arxiv.org/pdf/1611.04076.pdfGithub:https://github.com/Hansry/PyTorch-GAN1.前言传统GAN出现的问题: 传统GAN, 将Discriminator当作分类器,最后一层使用Sigmoid函数,使用交叉熵函数作为代价函数,容易出现梯度消失和collapse mode等问题,具体原因参考本博客W...

2018-11-08 18:50:04 4391

转载 WGAN (Wasserstein GAN)

Paper: https://arxiv.org/abs/1701.07875Github:https://github.com/eriklindernoren/PyTorch-GANhttps://github.com/martinarjovsky/WassersteinGAN一. 前言传统GAN存在的问题: 存在训练困难、生成器和判断器的loss无法指示训练过程、生成样本缺乏多样...

2018-11-07 21:55:51 1913

原创 LeetCode 208 实现前缀树

难度:中等问题描述:实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert(“apple”);trie.search(“apple”); // 返回 truetrie.search(“app”); // 返回 falsetrie.startsW...

2018-11-06 13:12:49 580

原创 Python求特征值和特征向量、奇异值分解

问题描述:求解矩阵A=[-1 2 -3; 4 -6 6]的2范数。其中,矩阵A的2范数为矩阵ATAA^{T}AATA的最大特征值开平方根。即利用Python求解2范数如下所示:>>> A=np.array([[-1,2,-3],[4,-6,6]])>>> A_T=np.transpose(A)>>&am

2018-11-04 10:11:24 5850 4

转载 前缀树和后缀树

转自:从Trie树(字典树)谈到后缀树引言谈及Tire树与后缀树之前,先看俩个问题:**第一个问题:**一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想,给出时间复杂度分析。其中,海量数据处理面试题集锦与Bit-map详解中给出的参考答案:用trie树统计每个词出现的次数,时间复杂度是O(nle)(le表示单词的平均长度),然后是找出出现最频繁的前1...

2018-10-31 20:04:45 1207

原创 LeetCode79 单词搜索 (回溯,时间不是很理想)

1.单词搜索给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, ...

2018-10-30 23:21:25 304

原创 LeetCode 78 90 子集 子集II (回溯,递归)

1.子集难度:中等给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]思路:该题利用递归即可解决,注意的是可将输入先排下序。class Solution {public: ...

2018-10-30 20:20:55 390

原创 LeetCode 39 40 组合总和 组合总和II (回溯)

1.组合总和难度:中等给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。 示例 1:输入: candidates = [2,3,6,7], target = ...

2018-10-30 11:24:22 677

原创 回溯算法

1.概念回溯算法实际上是一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回到上一步还能执行的状态,尝试别的路径。  类似于走迷宫一样,假设我们到了每一个岔路口都规定,除了走过的地方,按照先往前走到底,如果不能走了,再退回到上一个岔路口,走左边,如果不行再走右边,如果再不行就往后退。每次退回就是每次的回溯,所以回溯法要保存每一次的状态...

2018-10-29 22:48:06 507

原创 LeetCode 897 129 98 递增顺序查找树 求根到叶子节点之和 验证二叉树 (树,深度优先搜索)

1.递增顺序查找树给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。示例 :输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / / \ 1 7 9...

2018-10-28 20:37:59 528

Opencv2链接CUDA9.0中cmake修改版

opencv 2.4.* 链接cuda 9的时候会有依赖问题,通过修改opencv源码中的cmake, 可以解决opencv在cuda9.0编译上的依赖问题。

2019-05-29

图优化工具,G2o

In this document we describe a C++ framework for performing the optimization of nonlinear least squares problems that can be embedded as a graph or in a hyper-graph. A hyper-graph is an extension of a graph where an edge can connect multiple nodes and not only two. Several problems in robotics and in computer vision require to find the optimum of an error function with respect of a set of parameters. Examples include, popular applications like SLAM and Bundle adjustment.

2018-09-26

《Robotics, Vision and Control — Fundamental Algorithms in MATLAB》

《Robotics, Vision and Control — Fundamental Algorithms in MATLAB》

2018-04-06

机器学习实战源代码及数据

机器学习实战源码及数据,希望能帮到大家,希望多交流机器学习的相关算法及应用

2017-10-02

空空如也

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

TA关注的人

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