自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

半不闲居士的博客

学习SLAM的上吊了

  • 博客(43)
  • 资源 (2)
  • 收藏
  • 关注

原创 快速解决rosdep update一直不通过问题

解决rosdep update快速通过

2021-12-21 19:26:52 1064

原创 回环检测之DBoW2

前面我们已经讲了回环检测中用的一些方法,今天主要介绍一下现在用的最多的词袋模型——DBoW2。这里就不在细讲回环检测的定义,具体可以看看我的前面的博客,而回环检测在SLAM中的作用可以从下面的图片中大致有一个了解。左图是不存在回环功能的,当我们回到原来的地方的时候,由于累计误差导致了偏差,这在三维重建中特别明显,就是本来是一个矩形的空间建出来的奇形怪状了,当我们有了回环检测功能后,如右图,很大程度上与矩形空间相似。下图也是一样的,效果很明显。1 词袋模型现有的ORB-SLAM,VINS-

2021-05-29 21:23:40 5370 1

原创 CMakeList.txt的指令以及实例介绍

一、Cmake 简介cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。二、常用命令1. 指定 cmake 的最小版本cmake_minimum_required(VERSION 3.4.1)这行命令是可选的,我们可以不写这句话,但在有些情况下,如果 CMakeLists.txt 文件中使用了一些高版本 cmake 特有的一些命令的时候,就需要加上这样一行,提醒用户升级到该版本之后再执行 cmake。

2021-05-09 16:35:30 920

原创 回环检测之决策模型

前面我们已经讲了如何描述场景,让机器人尽可能的了解周围环境,那么了解了之后,如何判断出是回环的呢?本节讨论如何建立决策模型来根据当前场景描述和地图信息识别出可能的闭环.合理的决策模型可有效提高闭环检测的准确度和召回率.最简单的建模方法是将闭环检测看作是图像检索问题,而不考虑地图的拓扑信息和度量信息,计算当前图像和地图中所有图像的相似度,找到相似度最大的.如果相似度超过阈值,则认为出现了闭环.这样做的好处是简化了定位的复杂度,提升了定位的效率.对长期大规模 SLAM 来说,地图的信息量会越来越大,过大的搜

2021-04-27 18:46:05 688

原创 使用ADB出现了system/bin/sh: adb: not found&system/bin/sh: pull: not found错误

在使用ADB传送文件的时候出现了system/bin/sh: adb: not found&system/bin/sh: pull: not found错误解决办法:可能你在使用adb pull 之前你使用了adb shell,你需要先退出来,退出来的命令是exit,然后再使用adb pull就可以了...

2021-04-19 11:39:14 20426

原创 回环检测算法综述之场景描述

在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿解算当前帧位姿,因此其中的误差便这样一帧一帧的传递下去,也就是我们所说的累积误差。一个消除误差有效的办法是进行回环检测。回环检测判断机器人是否回到了先前经过的位置,如果检测到回环,它会把信息传递给后端进行优化处理。回环是一个比后端更加紧凑、准确的约束,这一约束条件可以形成一个拓扑一致的轨迹地图。如果能够检测到闭环,并对其优化,就可以让结果更加准确。但是这里存在一个问题,如果检测到的是一个假的回环(假阳性闭环),那么会使整个图优化算法收敛到完

2021-04-15 18:21:41 1840

转载 Linux小常识

文章目录 Linux——系统篇 Linux是什么? Unix和Linux有什么区别? Linux系统的组成部分? Linux内核的组成部分? 内存管理单元MMU有什么作用? 常见的操作系统进程调度策略有哪些? I/O子系统层次结构 逻辑地址、线性地址、物理地址、总线地址、虚拟地址的区别?...

2021-04-14 14:30:55 128

原创 语法错误( error: array bound is not an integer constant before ‘]’ token)

#include<iostream>#include<cstdio>using namespace std;int N=100;int a[N][N];int main(){}编译出现了[Error] array bound is not an integer constant before ']' token;只需要将int N=100修改为const intN = 100 即可

2021-04-12 17:36:43 8757 1

原创 error: ‘function’ is not a member of ‘std’

在编译brisk工程时出现了‘function’ is not a member of ‘std’修改:在brisk-feature-detector.cc文件中添加#include <functional>就可以了

2021-04-08 17:08:28 2366

原创 By not providing “Findcatkin_simple.cmake“ in CMAKE_MODULE_PATH this project has asked CMake to fi

先下载catkin_simplegit clone https://github.com/catkin/catkin_simple并将下载的catkin_simple放入该工程的中与src是同一级然后在CMakeList.txt中加入一句add_subdirectory(catkin_simple)编译该工程就通过了

2021-04-08 15:59:01 1269 2

转载 在 Linux 下将 PNG 和 JPG 批量互转的四种方法

在 Linux 下将 PNG 和 JPG 批量互转的四种方法 计算机术语中,批处理指的是用一个非交互式的程序来执行一序列的任务的方法。这篇教程里,我们会使用 Linux 命令行工具,并提供 4 种简单的处理方式来把一些.PNG格式的图像批量转换成.JPG格式的,以及转换回来。虽然所有示例中我们使用的都是convert命令行工具,但是您也可以使用mogrify命令来达到同样的效果。convert命令的语法如下:$ convert 输入选项 输入文件 输出选项 输出文件而...

2021-04-07 10:39:20 838

原创 四元数、变换矩阵、欧拉角、轴角的转换关系详解

描述空间变换通常有四种描述方式,分别是四元数、变换矩阵、欧拉角、轴角,探讨这四种方法之间的关系。大致的关系如图:轴角轴角一种几何描述方法。轴角定义了一个转动轴和转动角,沿着转动轴方向逆时针旋转为转动正方向,具体如下图:θ=θe⃗其中向量e为转轴,模长为θ角。欧拉角欧拉角就是物体绕坐标系三个坐标轴(x,y,z轴)的旋转角度。由于涉及到坐标系,学习SLAM的应该会经常遇到全局坐标系和局部坐标系,因此,根据不同的坐标系以及分解的顺序不同,欧拉角表达具有多样性,根据坐标系的不同一般分

2021-03-24 15:11:28 6092

转载 你的编程能力从什么时候开始突飞猛进?

啃完一本本书, 做完一个个lab没有突飞猛进, 一切都是量变最终累积成质变!但是会有那样一些时间节点,你会明显感觉到自己的编程能力确实有提高不少,能够实现更多的想法.不过老实说,就编程能力上确实没有“突飞猛进”的感觉,都是逐渐的进步,量变引起质变嘛。我们都是普通人,不可能像张无忌一样因跌落悬崖,意外获得《九阳神功》,从此开挂,走上巅峰。只有靠不断的看书、coding、学习优秀开源项目,构建自己的计算机知识体系,并且在特定的领域不断专研,这样才能成为一个优秀的工程师。下面聊聊我自己的编

2021-03-18 13:49:21 371 3

转载 据说是史上最强的学习C语言的路线

既然学校老师的课听不懂,那不妨听听网上的课,比如我之前推荐的浙大翁恺教授的 C 语言课程,在 B 站上可以找得到。现在还有,不知道以后还会不会下架,因为涉及到一些版权的问题。侯捷老师的 C++ 视频课都已经全部下架了,所以早点去白嫖,千万别后悔。地址我这里再贴一下: https://www.bilibili.com/video/BV19W411B7w1要学习 C 语言的读者抓紧时间去看一下,建议 1.5 倍速食用。我就是按照这么一个速度去看的,感觉不愧是浙大的教授,语言的表达能力,以及对程...

2021-03-18 12:27:40 1095

原创 不一样的静态初始化——OpenVins

今天讲一下黄国权老师实验室开源的OpenVins工程中的IMU初始化,一般VIO初始化分为两种,一种是静态初始化,一种是动态初始化,而OpenVins则利用加速度的方差差异将运动分为两种状态,一种是静止的,一种是刚开始运动的。个人比较符合应用情况,而且我觉得这个想法挺不错,很有意思。VIO初始化就要任务一般是估计重力方向,速度,位置,IMU的偏置,尺度。而而在openvins中,只估计重力方向,IMU的偏置。其实在代码里主要写了三个初始化模式,但是动态初始化好像没写出来,不知道现在有没有出来,大家可

2021-03-18 11:19:06 3812

原创 ORBSLAM3 VIO初始化

按照规矩,先讲一下ORBSLAM3中的初始化大致流程根据ORB-SLAM3的论文介绍, IMU的初始化方法是基于下面3点:1) 纯视觉SLAM可以提供很好的位姿估计,所以可以用纯视觉的结果来改善IMU的估计;2) 显示地将尺度表示为一个优化的变量, 尺度会更快地收敛;3)在IMU初始化阶段,忽略传感器的不确定度将会产生更多不可预知错误。整个初始化过程分为:1.Vision-only MAP Estimation;2.Inertial-only MAP Estima...

2021-03-17 17:24:46 4376 2

转载 IPv6系列文章集锦

本文总结一个目录提纲,只要是给自己看的,记录一下哪些东西已经总结过了。 闲谈IPv6-Loopback网口上的IPv6地址: https://blog.csdn.net/dog250/article/details/89333045 闲谈IPv6-v4/v6协议转换报文的checksum无关性: https://blog.csdn.net/dog250/article/details/89039395 闲谈IPv6-IPv4的TCP和NAT让互联网变得畸形: https://blo...

2021-03-16 18:21:02 197

原创 理解SLAM中的四元数基础知识

什么是四元数 四元数(Quaternion)则是一种紧凑、易于迭代、又不会出现奇异值的表示方法。它在程序中广为使用,在学习SLAM过程中,对于初学者来说比较难理解的应该是这一部分知识了,因此,理解四元数的含义与用法,对学习SLAM来说是必须的。本节我们就来讲讲四元数,这里只是简单介绍四元数的基本用法以及在SLAM中公式推导会用到的几个重要推论,想要学SLAM的可以记下那几个推论,在SLAM理论推导中都会用到的。 四元数是Hamilton找到的一种扩展的复数。一个四元数拥有一个实部和三个虚部:..

2021-03-15 20:05:38 2966

原创 VINS-mono初始化的原理解析

初始化大致流程如果IMU和相机之间的外参未知,则需要在线标定求解旋转量qbc。 利用求解出来的qbc,结合相机间的约束,求解IMU角速度的bias。 利用IMU的运动估计重力,速度以及尺度。 利用重力的模长矫正重力,之后再矫正每个参数。1.估计外参qbc根据相机和IMU的坐标相对关系可得整理得:将多个帧之间的等式关系一起构建超定方程Ax=0,如下:对A进行svd分解,其中最小奇异值对应的奇异向量便为需要求解的qbc。其中由于旋转矩阵和欧拉角..

2021-03-15 15:27:31 1943

转载 linux scp命令参数及用法详解--linux远程复制拷贝命令使用实例

一般情况,本地网络跟远程网络进行数据交抱,或者数据迁移,常用的有三种方法,一是ftp,二是wget /fetch 三是,rsync 大型数据迁移用rysync,其次用fetch/wget ,最次是ftp,最慢是ftp.这几天,在忙数据迁移时,用到ssh的scp方法来迁移数据。速度与效果都很好。特别是现在许多服务器为了安全,都会改ssh默认的22端口,改成一个特殊的端口。所以。在scp或者sftp时,就要指定通过什么端口来迁移。现在,特记下这个特殊端口来scp的命令。Linux scp命令用于Linux之

2021-03-15 14:05:45 325

转载 rsync:基本命令和用法

2.1 说在前面的话rsync官方网站:https://www.samba.org/ftp/rsync/rsync.htmlrsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。rsync可以实现scp的远程拷贝(rsync不支持远程到远程的拷贝,但scp支持)、cp的本地拷贝、rm删除和"ls -l"显示文件列表等功能。但需要注意的是,rsync的最终目的或者说其原始目的是实现两端主机的文件同步,因此实.

2021-03-15 13:53:51 168

转载 详细了解 Android 巧用 flexboxLayout 布局

FlexBoxlayout是Google推出的开源的可伸缩性布局,在项目中也会经场使用,大大提高了用户的体验。compile 'com.google.android:flexbox:1.0.0'有前端基础的同学估计都知道 CSS 中这个布局,用来为盒状模型提供最大的灵活性。因为 android 中这个库属性和 CSS 中 都一样,并且阮一峰老师写的前端知识真的很通俗易懂,所以这里的介绍大多来自Flex 布局教程。采用 Flex 布局的元素,称为 Flex 容器(flex containe.

2021-03-10 15:40:40 859

转载 一文让你详细了解CPU的内部架构和工作原理(好文)

转自:http://blog.chinaunix.net/uid-23069658-id-3563960.html 一直以来,总以为CPU内部真是如当年学习《计算机组成原理》时书上所介绍的那样,是各种逻辑门器件的组合。当看到纳米技术时就想,真的可以把那些器件做的那么小么?直到看了Intel CPU制作流程及AMD芯片的制作流程的介绍不禁感慨,原来科技是如此的发达。 本文我们以Intel为例对CPU的工作原理做简单介绍,仅仅是简单介绍,那么AMD,ARM,MIPS甚至Po...

2021-03-10 15:07:06 1961

转载 “undefined reference to“ 问题及解决方法 实例分析

在实际编译代码的过程中,我们经常会遇到"undefined reference to"的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按照以下几种可能出现的状况去排查,可有利于理清头绪,从而迅速解决问题。链接时缺失了相关目标文件首先编写如下的测试代码:// test.h#ifndef __TEST_H__#define __TEST_H__void test();#endif// test.c#include

2021-03-10 14:56:32 14120

转载 VMware Ubuntu安装详细过程

不是每一个程序员都必须玩过linux,只是博主觉得现在的很多服务器都是linux系统的,而自己属于那种前端也搞,后台也搞,对框架搭建也感兴趣,但是很多生产上的框架和工具都是安装在服务器上的,而且有不少大公司都要求熟悉在linux上开发,因此从个人职业发展有必要去多了解一下linux。(博主网上查了一下,现在大部分服务器安装的系统主要有:ubuntu server、centos、suse linux enterprise, redhat linux等)于是今天博主就在虚拟机上安装了Ubuntu,并分享

2021-03-10 14:38:25 134

转载 Py之pytest-shutil:Python库之pytest-shutil简介、安装、使用方法之详细攻略

pytest-shutil简介 这个库是一个很好的用于自动测试的Unix shell和环境管理工具包。下面是可用函数的摘要,请查看完整列表的源代码。pytest-shutil安装pip install pytest-shutilpytest-shutil函数使用import shutilcopy() 功能:复制文件 格式:shutil.copy('来源文件','目标地址') 返回值:复制之后的路径copy2() 功能:复制文件,保留元...

2021-03-10 12:00:34 525

原创 ModuleNotFoundError: No module named ‘sklearn.learning_curve

ModuleNotFoundError: No module named ‘sklearn.learning_curve将from sklearn.learning_curve import validation_curve改为from sklearn.model_selection import learning_curve

2021-03-10 11:52:02 337

转载 SLAM如何发论文?SLAM领域大牛的总结

这是一个学习笔记回顾记录,主要是18年的SLAM技术论坛的老师说的方向点子,希望大家有用!四个教授的见解章国峰教授:SLAM的相关理论已经发展得比较成熟。但是,在实际应用中,问题还相当复杂。我认为目前有两个趋势可以把握,一个趋势是将SLAM与深度学习相结合。而且,我也认为将SLAM与深度学习结合更容易有创新性,同时也符合现在的发展趋势。因此,我认为结合深度学习和SLAM可以发表一些论文。另一个趋势是,要使用新的传感器,比如最近新出现的Event Camera。使用Event Camera做SL

2021-03-09 13:12:44 3137

转载 CVPR2021最全整理,CVPR2021下载链接,CVPR2021全部论文代码

CVPR2021年的官网:总结持续更新Github上面:https://github.com/Sophia-11/Awesome-CVPR-PaperImage-to-image Translation via Hierarchical Style Disentanglement Xinyang Li, Shengchuan Zhang, Jie Hu, Liujuan Cao, Xiaopeng Hong, Xudong Mao, Feiyue Huang, Yongjian Wu, Rong

2021-03-09 11:16:29 3221

转载 2021互联网大厂职级对应薪资一览表

互联网大厂新入职员工各职级薪资对应表(技术线)~△图片数据来源:知乎加上面的表格不排除有很极端的收入情况,但至少能囊括一部分同职级的收入。这个表是“技术线”新入职员工的职级和薪资情况,非技术线(如产品、运营、销售等)以及老员工的情况会和图中的范围有所出入。以校招生为例,产品线收入大概是技术线的80%,运营线收入大约是技术线的65%。以 BAT 为代表的互联网大厂,一直是求职者眼中的香饽饽,“大厂经历”在国内就业环境中无异于一块金子招牌。对于企业和HR来说,大厂的职级...

2021-03-08 20:12:26 18031

原创 VSLAM算法中的数学基础知识详细了解

学习SLAM经验告诉我,入门SLAM一般只需要两种两个方面的条件,一是要有扎实的数学基础,二是要有强大的动手编程能力,但是这两个条件对于刚入门的同学来说,极具挑战性。学习SLAM的心里历程:本来先研究了基于滤波系列的源码,嗯,感觉还能看得懂,然后去研究VINS-MONO、ORBSLAM系列,咬咬牙,坚持着。直到碰见了ICE-BA源码,我的心情——我在哪?我能回去吗?我裂开了。本文主要大致介绍一下SLAM所需的数学知识,先从SLAM算法框架来介绍,SLAM一般分为前端和后端,前端主要是视觉,后端一

2021-03-08 12:02:11 1144

原创 三维重建和VSLAM相关的公开数据集大全

测试一个SLAM的算法性能,需要测试SLAM算法定位精度、时间开销,内存开销等等。而时间开销和内存开销一般比较好操作,但是定位精度一般很难评估,因为你需要真实轨迹,但是这个很难获取,需要一些比较昂贵的设备,因此,一些实验室专门做了公开数据集和评估工具,可以通过这些公开数据集和评估工具对比一些论文上的数据来评估自己改进的SLAM的性能优劣。评估工具Trajectory Evaluation with Alignment [Paper], [Code]Python package for the eva

2021-03-04 14:04:59 1276 4

原创 SLAM领域的优秀作者与实验室汇总

总结一些之前看过的SLAM(VO,VIO,建图)文献所发表的实验室和作者1.实验室美国卡耐基梅陇大学机器人研究所研究所主页:https://www.ri.cmu.edu/发表论文:https://www.ri.cmu.edu/pubs/优秀团队成员:Michael Kaess、Sebastian Scherer研究方向:机器人感知、结构,服务型、运输、制造业、现场机器等美国加州大学圣地亚哥分校语境机器人研究所实验室主页:https://existentialrobotics.

2021-03-04 13:05:01 3977 1

原创 当前开源的SLAM方案汇总2021.02

感谢SLAMer前辈们不断的拼搏与进取!PTAM论文:Klein G, Murray D. Parallel tracking and mapping for small AR workspaces[C]//Mixed and Augmented Reality, 2007. ISMAR 2007. 6th IEEE and ACM International Symposium on. IEEE, 2007: 225-234.代码:https://github.com/Oxford-PTAM/

2021-03-03 17:51:46 7130 2

原创 G2O使用步骤1——添加定点和边

前面介绍了G2O的整体框架与初始化求解器基本使用步骤,接下来介绍如何向优化器中添加定点和边1. 顶点我们从顶点的数据类型开始介绍,先来看看上图中和vertex有关的第1个类: HyperGraph::Vertex,然后我们看g2o 类结构图中第2个类,我们看到HyperGraph::Vertex 是通过类OptimizableGraph 来继承的;这个OptimizableGraph::Vertex 也非常底层,具体使用时一般都会进行扩展,因此g2o中提供了一个比较通用的适合大部分情况的模板。就

2021-03-02 19:23:44 1921

原创 近十年的VI-SLAM算法综述与发展

本文主要总结一下这几年工作中遇到过以及改进过相关VIO算法1.背景介绍一个完整的 SLAM(simultaneous localization and mapping) 框架包括传感器数据、 前端、 后端、 回环检测与建图,如图1所示,其中,前端将传感器的数据抽象成适用于估计的模型,回环检测判断机器人是否经过已知的位置.而后端接受不同时刻前端测量的位姿和回环检测的信息并对它们进行优化,从而得到全局一致的轨迹。建图则是根据状态估计得到的轨迹建立与任务要求相对应的地图。通常,仅含有前端和局部后端的框架被

2021-03-01 15:16:07 5539 5

原创 编译orbslam2出现的error: ‘usleep’ was not declared in this scope usleep(3000);

编译orbslam2时出现了error: ‘usleep’ was not declared in this scope usleep(3000);只需要在System.h文件中添加#include<unistd.h>

2021-02-26 12:33:01 1981 1

原创 OpenCV中Mat的初始化与赋值

1.type数据类型常量类型的命名规则为:CV_(位数)+(数据类型)+(通道数)。关系如下: C1 C2 C3 C4 CV_8U 0 8 16 24 CV_8S 1 9 17 25 ..

2021-02-24 15:40:24 23068

原创 G2O的使用步骤

1.G2O使用步骤使用步骤如上图中的红色字体第1步 创建一个线性求解器LinearSolver基于图优化的SLAM一般都是用来求解增量方程H△X=b,而求解增量方程最简单的方法是直接求解雅克比矩阵H的逆即: △X=-H.inv*b但是由于当雅克比矩阵维度较大时,矩阵求逆就会很困难,因此这一步主要利用什么方法进行求解增量方程,从图中可得,一...

2021-02-23 18:35:45 1125

原创 G2O框架基本了解

1.背景SLAM的后端一般分为两种处理方法,一种是以扩展卡尔曼滤波(EKF)为代表的滤波方法,一种是以图优化为代表的非线性优化方法。滤波方法的优点在于计算速度快,早期计算资源较少的情况下,这是一大主流;后来,SLAM研究者们发现了其实在视觉SLAM中,虽然包含大量特征点和相机位姿,但其实BA是稀疏的,由此特性,人们开始了研究加速BA,2009年,几个大神发表了自己的研究成果《SBA:A software package for generic sparse bundle adjustment》,而且计算

2021-02-23 16:58:20 579

sMSCKF公式推导(与代码一致).pdf

针对msckf开源代码的理论推导,贴合开源s-msckf代码,能够更加深入的理解基于滤波方案的SLAM

2020-09-07

Scientific_Computation.pdf

科学计算的pdf版,全本描述了实现将问题转换为最小二乘问题,非线性最小二乘解决方法,误差分析以及置信分析

2020-07-15

空空如也

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

TA关注的人

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