gmapping
文章平均质量分 95
家门Jm
点云学习小白
展开
-
my_gmapping_slam来龙去脉(一)
参考博客:1、https://zhuanlan.zhihu.com/p/59748042 通俗地解释粒子滤波器2、https://blog.csdn.net/zhao_ke_xue/article/details/110702322图解SLAM3、https://blog.csdn.net/zhao_ke_xue/article/details/108944811不可错过的gmapping算法使用与详细解释4、...原创 2021-07-26 19:34:23 · 244 阅读 · 0 评论 -
my_gmapping_slam来龙去脉(二)
本节主要记录如何使用urdf和xacro编写小车模型。1、使用urdf编写自己的ros小车模型1.1 常见的ROS小车结构有哪些?下面就是常见ROS小车,下面是几种小车的样子:这里对urdf进行简单介绍,然后使用urdf最基础的标签,建立机器人的urdf机器人模型。关于更多细节,请参考官网:http://wiki.ros.org/urdf/Tutorials1.2 什么是urdf?建模的原因1.2.1 ...转载 2021-08-11 11:09:31 · 244 阅读 · 0 评论 -
my_gmapping_slam来龙去脉(三)
本文转自深蓝学院《理解ROS Navigation Stack》https://www.bilibili.com/read/cv125913910、前言ROS Navigation Stack是ROS提供的一个二维的导航功能包集合,通过输入里程计、传感器信息和目标位姿,输出控制机器人到达目标状态的安全速度指令。ROS Navigation Stack为移动机器人的导航规划提供了比较好的参考,通过实现功能包集合提供的接口,也可以比较容易地将自己的算法应用到移动机器人上。本文...转载 2021-08-11 08:34:45 · 344 阅读 · 0 评论 -
my_slam_gmapping代码解析一
目录1 main.cpp2 my_slam_gmapping2.1 my_slam_gmapping.h2.2 my_slam_gmapping.cpp1 main.cpp2 my_slam_gmapping my_slam_gmapping串联起后面所有的函数,具体的函数调用关系如下所示:主要会调用到7部分内容,也是part_slam中的7个文件夹:2.1 my_slam_gmapping.h2...原创 2021-06-29 17:38:27 · 1063 阅读 · 0 评论 -
my_slam_gmapping代码解析二——2D激光雷达畸变去除
1、激光雷达运动畸变说明 如果激光雷达的扫描帧率为5Hz,一帧数据的首尾时间差200ms,若机器人以0.5m/s的速度向x方向走,扫描前面的墙面,那么200ms后尾部的测量距离和首部的测量距离在x方向上相差10cm,如下图所示: 绿色箭头表示激光雷达旋转方向,黑色箭头表示激光雷达运动方向。显然,我们可以看出每个激光束的距离数据都是在不同位姿下采集而来,如橙色、灰色、蓝色点位姿所示;然而,一般激光雷达驱动封装数据时,却默认一帧激光雷达数据的所有激光束是...原创 2021-07-19 23:47:41 · 1206 阅读 · 0 评论 -
my_gmapping_slam代码解析三
0、写在前面 gmapping的核心处理算法都在addscan函数调用的processscan()中,该函数对所有粒子都通过里程计运动模型,更新每一个粒子对象存储的地图坐标系下的激光雷达位姿。gmapping的函数调用关系如下图所示:我们按照顺序在processScan函数中出现的位置,进行代码解析:// △△△△△△ SLAM核心代码 △△△△△△bool GridSlamProc...原创 2021-07-20 23:11:47 · 1181 阅读 · 0 评论 -
gmapping坐标系转换和基本数据结构
1、gmapping坐标系转换1.1 mapmap坐标系是一个世界固定坐标系,其Z轴指向上方。相对于map坐标系的移动平台的姿态,不应该随时间显著移动。map坐标系作为长期的全局参考是很有用的,但是跳变使得对于本地传感和执行器来说,其实是一个不好的参考坐标。使用Gmapping建图时,建图起始点被设为map的原点(如下图)1.2 base_link机器人本体坐标系,与机器人中心重合,也有的成为base_footprint。...原创 2021-07-19 19:59:17 · 1503 阅读 · 0 评论 -
ROS面试题汇总
1、ROS中订阅(Subscribe)最新消息以及消息队列相关问题机器人应用中难免会遇到运算起来很费时间的操作,比如图像的特征提取、点云的匹配等等。有时候,不可避免地,我们需要在ROS的Subscriber的Callback回调函数中进行这些费时的操作。Subscriber所订阅的消息的发布频率可能是很高的,而这些操作的运算速度肯定达不到消息发布的速度。所以,如果我们要是没有取舍的对于每个消息都调用一次回调函数,那么势必会导致计算越来越不实时,很有可能当下在处理的还是几十秒以...原创 2021-07-28 16:19:34 · 8796 阅读 · 0 评论 -
gmapping粒子滤波先实践再推导
本节目录如下:1. 推导之前,先看实践整个推导过程其实是一个两头小中间大的过程,怎么说呢,就是从贝叶斯滤波开始,到最后Sampling Importance Resampling Filter(SIR)算法结束,中间推导过程其实主要就是应用了条件概率公式、贝叶斯概率公式、马尔科夫性、大数定理这样一些基础知识,其实我觉得在推导之前我们可以先看看到底什么是粒子滤波,也就是结果到底是什么。1.1 伪代码分析经典的SIR算法...转载 2021-07-16 11:16:35 · 537 阅读 · 0 评论