slam

SLAM中的EKF,UKF,PF原理简介

拥有回忆 提交于 2020-02-27 05:17:01
这是我在知乎上问题写的答案,修改了一下排版,转到博客里。 原问题: 能否简单并且易懂地介绍一下多个基于滤波方法的SLAM算法原理? 目前SLAM后端都开始用优化的方法来做,题主想要了解一下之前基于滤波的方法,希望有大神能够总结一下各个原理(EKF,UKF,PF,FastSLAM),感激不尽。 作者:半闲居士 链接:https://www.zhihu.com/question/46916554/answer/103411007 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。   我怎么会写得那么长……如果您有兴趣可以和我一块把公式过一遍。   要讲清这个问题,得从状态估计理论来说。先摆上一句名言: 状态估计乃传感器之本质。(To understand the need for state estimation is to understand the nature of sensors.)   任何传感器,激光也好,视觉也好,整个SLAM系统也好,要解决的问题只有一个: 如何通过数据来估计自身状态。 每种传感器的测量模型不一样,它们的精度也不一样。换句话说,状态估计问题,也就是“ 如何最好地使用传感器数据 ”。可以说,SLAM是状态估计的一个特例。 1. 离散时间系统的状态估计   记机器人在各时刻的状态为 ,其中 是离散时间下标。在SLAM中

视觉slam g2o 编译出现 Cmake Error:By not providing “FindG2O.cmake” in CMAKE_MODULE_PATH错误

廉价感情. 提交于 2020-02-26 13:33:59
在学习slam十四讲的时候,成功安装编译了g2o,但是在运行g2o_curve_fitting代码时出现错误,提示如下: 在这里插入图片描述 方法一: 这时需要在cmakelist文件中添加几行代码,添加代码如下: list(APPEND CMAKE_MODULE_PATH /XXX/g2o/cmake_modules) set(G2O_ROOT /XXX/g2o) find_package( G2O REQUIRED ) include_directories( ${G2O_INCLUDE_DIRS} "/usr/include/eigen3" ) /XXX/g2o 是你的g2o安装目录,如果不知道自己的安装录取,可以在lunix主文件夹中搜索g2o,找到后,右键属性,即可看到父文件夹,那就是安装目录了。 在这里插入图片描述 改完之后内容为 list(APPEND CMAKE_MODULE_PATH /home/linzhiwei/g2o/cmake_modules) set(G2O_ROOT /home/linzhiwei/g2o) find_package(G2O REQUIRED) include_directories(${G2O_INCLUDE_DIRS} "/usr/include/eigen3" ) 方法二: 检查一下你的${PROJECT_SOURCE_DIR

IROS2019多传感器融合SLAM方向

痴心易碎 提交于 2020-02-17 19:13:36
Stereo Visual Inertial LiDAR Simultaneous Localization and Mapping Abstract Simultaneous Localization and Mapping (SLAM) is a fundamental task to mobile and aerial robotics. LiDAR based systems have proven to be superior compared to vision based systems due to its accuracy and robustness. In spite of its superiority, pure LiDAR based systems fail in certain degenerate cases like traveling through a tunnel. We propose Stereo Visual Inertial LiDAR (VIL) SLAM that performs better on these degenerate cases and has comparable performance on all other cases. VIL-SLAM accomplishes this by

自动化软件框架--起始篇

流过昼夜 提交于 2020-02-12 14:19:13
本自动化框架来源于4年前的工作积累,是一起工作的同事(强哥)开发,其工作能力之强令我至今犹新,该框架基于QT,可以方便的记录数据、记录日志,方便的插件添加模式,单例模式用于管理数据、插件,观察者模式用于数据的发布与显示。 详细内容见之后的博客,欢迎大家进群交流 该群用于 1、大学毕设论文的辅导(基本免费,我们只辅导,不做枪手,提供软件、2D/3D图像处理、SLAM方面的咨询与帮助,基本免费,我们主要想通过和大家一起做商业项目挣钱) 2、商业项目合作(有项目需求的可以入群,我们接自动化、图像2D/3D处理、SLAM等的项目,后面更多的方面待补充) 3、共同创业(有合伙人可入群) 一个老实的程序员,想有自己的一份事业,想去帮助更多的人,想去世界看看 来源: CSDN 作者: Hill_D 链接: https://blog.csdn.net/windxf/article/details/104274662

《视觉SLAM 十四讲》(高翔) --- 第六讲 非线性优化 笔记

五迷三道 提交于 2020-02-06 02:18:41
增量Δx 如何确定? 一阶和二阶梯度法 Gauss-Newton(高斯牛顿法) Levenberg-Marquadt(L-M法) Gauss-Newton(高斯牛顿法) Gauss-Newton 的算法步骤: 公式推导: 对向量和矩阵求导公式: Levenberg-Marquadt(L-M法) 由于高斯牛顿二阶近似,只在展开点附近有较好的的效果,所以给Δx\Delta xΔx增加一个信赖区域,在区域里近似有效。 如果ρ 接近于1,则近似是好的。如果ρ太小,说明实际减小的值远少于似减小的值,则认为近似比较差,需要缩小近似范围。反之,如果ρ比较大,则说明实际下降的比预计的更大,我们可以放大近似范围。 构建一个改良版的非线性优化框架,该框架会比Gauss Newton 有更好的 效果: 来源: CSDN 作者: _YAO阿瑶 链接: https://blog.csdn.net/weixin_44694952/article/details/104188258

SLAM第1章:认识SLAM

被刻印的时光 ゝ 提交于 2020-02-05 05:16:01
简介 1. 介绍 2. 应用场景 2.1 场景一 2.2 场景二 3. 研究内容 3.1 主要研究内容 3.2 位置表示的传递性 1. 介绍   SLAM的英文名称是 simultaneous localization and mapping 或 Concurrent Mapping and Localization ,中文名称是 即时定位与地图构建 或 并发建图与定位 。   SLAM就是一项技术,这个技术可以帮助一个运动的物体定位。之所以称为 即时定位与地图构建 ,是因为它可以在定位的同时创建地图。 2. 应用场景 2.1 场景一   你买回家一个扫地机器人(SLAM的应用场景之一),把它随意放在你家客厅的某个位置开始扫地。这个扫地机器人对你家完全陌生,它的任务是把你家客厅和所有房间打扫干净(尽量不重复,不能像无头苍蝇那样随便扫)。为了完成任务它需要记住: 自己从哪出发。 自己走过哪些地方。 自己现在在哪(相对出发点的位置)。 2.2 场景二   机器人被安排到一个山洞中了解内部空间结构。山洞很大,洞穴相连,一张照片不能拍出布局。机器人从山洞入口开始,要一边走一边根据自己所见画出山洞布局图。为了创建布局图它需要记住: 自己从哪出发。 山洞每个区域相对出发点的坐标。 3. 研究内容 3.1 主要研究内容   从2中的应用场景可以总结SLAM的任务: 在出发点选定一个坐标系

SLAM

情到浓时终转凉″ 提交于 2020-02-04 02:23:57
1、SLAM题目 什么是闭环检测?常用的方法有哪些?你用的哪种方法?有没有创新? 解释一下Gauss-Netwon和LM算法。 熟悉Ceres优化库吗?说一下。 描述(扩展)卡尔曼滤波与粒子滤波,你自己在用卡尔曼滤波时遇到什么问题没有? 除了视觉传感,还用过其他传感吗?比如GPS,激光雷达。。。 什么是紧耦合、松耦合?优缺点。 你认为室内SLAM与自动驾驶SLAM有什么区别? 地图点的构建方法有哪些? 如果对于一个3D点,我们在连续帧之间形成了2D特征点之间的匹配,但是这个匹配中可能存在错误的匹配。请问你如何去构建3D点? RANSAC在选择最佳模型的时候用的metric是什么? 除了RANSAC之外,还有什么鲁棒估计的方法? 有哪几种鲁棒核函数? 3D地图点是怎么存储的?表达方式? 给你m相机n个点的bundle adjustment。当我们在仿真的时候,在迭代的时候,相机的位姿会很快的接近真值。而地图点却不能很快的收敛这是为什么呢? LM算法里面那个 是如何变化的呢? 说一下3D空间的位姿如何去表达? 李群和李代数的关系。 求导 给你一个H高W宽的图像或者matrix,问如何去访问每一个元素,是先访问行呢?还是先访问列?跟缓存还有关系~ 写出单目相机的投影模型,畸变模型。 说一个自己熟悉的SLAM算法,Lidar/Visual slam,说优缺点。 读Maplab

SLAM

喜欢而已 提交于 2020-02-02 01:07:19
前几天陆续有多个同学在公众号中留下了这段室外自动无人赛车运行录像。录像中的赛车在开始的一段时间内,缓慢行进在比赛场地内。场地上是由一些交通锥桶组成了一个封闭的赛道环境。 真正令人激动的时刻开始于录像中的36秒钟。在经过了一周搜索建立地图之后,伴随着令人血脉喷张赛车马达的轰鸣声,赛车开始在场地内极速奔跑起来。 ^无人赛车运行视频 | 公众号留图^ 从上述赛车行进图像以及右侧实时给出建立地图和搜索过程来看,对赛车进行导航的技术是SLAM技术,即:Simultaneous Localization and Mapping, 同时定位与建图技术。 对于任何一个无人操作的机器人或者汽车,都需要回答这是什么地方,自己在哪里,如何规划自己的行进路径等。在SLAM中第一个技术是定位(Localization),回答自己的周围是什么,这是什么地方的问题。第二个技术是建立地图(Mapping),回答自己在那里。 有了以上信息,便可以随后进行路径规划(Navigation)为完成任务进行自主导航。 德国达姆施塔特理工大学研发机器人使用激光雷达来走迷宫 SLAM是智能车利用自身的传感器来感知自身和外界信息,逐渐完成环境地图创建,并进行自身的定位技术。这些传感器包括有罗盘、加速度计、例程仪(内部传感器),视觉传感器,激光雷达(外部传感器)等。其中外部传感器非常关键

开源SLAM方案评价与比较

谁说我不能喝 提交于 2020-01-28 04:03:56
开源SLAM方案评价与比较:ORB-SLAM2,VIORB,VINS-MONO 一、简介 二、EVO安装及测试 三、运行数据集 四、APE,RPE计算并绘图 五、evo_res 进行结果比较 一、简介 网上开源框架较多,本篇博客选择为人熟知的三个框架,orb-slam2,viorb(清华大学王京版本),vins-mono。在自己的笔记本上运行Euroc数据集,并采用evo和matlab来评价他们的性能。 orb-slam2网址: https://github.com/raulmur/ORB_SLAM2 viorb网址: https://github.com/jingpang/LearnVIORB vins-mono网址: https://github.com/HKUST-Aerial-Robotics/VINS-Mono Euroc数据集网址: https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets evo网址: https://github.com/MichaelGrupp/evo 注: 数据集选择 MH_01_easy ,MH_03_medium,MH_05_difficult 运行环境为ubuntu16.04 ros Kinetic 处理器为Intel®Core™ i5

机器人ROS系统学习随笔->5《ROS机器人系统设之机器人slam导航》

半城伤御伤魂 提交于 2020-01-27 00:38:54
软件源:一个是Ubuntu系统的软件元,在软件更新系统界面服务器的选择。 ROS包安装源:第一步配置的就是ros包安装源。功能包安装不畅可以改软件源,可以加国内的,EXbox的安装源。 在4中如果有找不到库的错误的话,需要我们讲拷贝科大讯飞编译生成的库文件开呗到libs中再试试。因为ros在找库文件时实在几个默认库之中搜索的。 准备工作---硬件要求 机器人必备条件---深度信息 横向切面,每个面可以看作是激光雷达数据。激光雷达精度更高。 机器人必备条件---激光雷达 jiqi人必备条件---仿真环境 ROS SLAM功能包的使用方法---gmapping 深度和里程计信息是最重要的。网站中有很多开源的算法。 gmapping安装(黑盒,只知道输入输出) gmaping原理(栅格地图) 配置给mapping节点 5秒更新一次,如果很小对电脑要求就很高了。 功能包的应用搜索 在百度货谷歌搜索关键词ros gmapping查看wiki上功能包的使用方法。用谷歌浏览器可以翻译成中文。还包括源码在哪儿都会有说明。 功能包启动(下载编译后) 给mapping地图的保存 turtlebot机器人可以用kinect摄像头mapping建图(没有激光雷达准确) 真实机器人gmapping建图 ROS SLAM功能包---hector_slam 激光雷达进度得高。 hector_slam功能包的安装