gmapping功能包集成了Rao-Blackwellized粒子滤波算法,为开发者隐去了复杂的内部实现

gmapping功能包订阅机器人的深度信息、IMU信息和里程计信息,同时完成一些必要参数的配置,即可创建完成基于概率的二维栅格地图(机器人地图一般分为三种类型:栅格地图,拓扑地图,特征地图)。gmapping功能包基于openslam社区的开源SLAM算法,相关链接:openslam

一、话题和服务

  名称 类型 描述
话题订阅 tf tf/tfMessage 需要进行激光,用于坐标系、基准和测距的相关框架转换
scan sensor_msgs/LaserScan 激光雷达扫描数据
话题发布 map_metadata nav_msgs / MapMetaData 发布地图Meta数据
map nav_msgs / OccupancyGrid 发布地图栅格数据
〜entropy std_msgs / Float64 发布机器人姿态分布熵的估计
服务 dynamic_map nav_msgs / GetMap 调用此服务以获取地图数据

二、参数

三、坐标变换

  TF变换 描述
必须的TF变换 <scan frame> —> base_link 激光雷达坐标系之间与基坐标系之间的变换,一般由start_transform_publisher发布
base_link —> odom 基坐标系与里程坐标系之间的变换,一般由里程计节点发布
发布的TF变换 map —> odom 地图坐标系与机器人里程计坐标系之间的变换,估计机器人在地图中的位姿

下面是来自与一篇博客的学习笔记:tf坐标系转换(gmapping)

对于gmapping来说,一般坐标系就是map,odom,base_link,base_laser坐标系。

  1. map:地图坐标系,顾名思义,一般设该坐标系为固定坐标系(fixed frame),一般与机器人所在的世界坐标系一致
  2. odom:里程计坐标系,这里要区分开odom topic,这是两个概念,一个是坐标系,一个是根据编码器(或者视觉等)计算的里程计。 但是两者也有关系,odom topic 转化得位姿矩阵是odom–>base_link的tf关系。这时可有会有疑问,odom和map坐标系是不是重合的?可以很肯定的告诉你,机器人运动开始是重合的。但是,随着时间的推移是不重合的,而出现的偏差就是里程计的累积误差。那map–>odom的tf怎么得到?就是在一些校正传感器合作校正的package比如gmapping会给出一个位置估计(localization),这可以得到map–>base_link的tf,所以估计位置和里程计位置的偏差也就是odom与map的坐标系偏差。所以,如果你的odom计算没有错误,那么map–>odom的tf就是0(最后一句话是不是有点问题)
  3. base_footprint:坐标系原点base_link在2d平面(一般为地面)的投影
  4. base_link:一般位于tf tree的最根部,物理语义原点,一般表示机器人中心,为相对机器人的本体的坐标系
  5. base_laser:激光雷达的坐标系,与激光雷达的安装点有关,其与base_link的tf为固定的

这些坐标系之间的关系有些是静态的、有些是动态的。比如当机器人底盘移动的过程中,机器人底盘与世界的相对关系map->base_footprint就会随之变化;而安装在机器人底盘上的激光雷达、imu这些传感器与机器人底盘的相对关系base_footprint->base_laser_link、base_footprint->imu_link就不会随之变化

ROS功能包之gmapping(SLAM)相关推荐

  1. Ubuntu 16.04安装RealSense ROS功能包

    RealSense ROS安装 安装SDK 二进制安装 源码编译安装 安装ros包 测试 这个包支持D400 系列 SR300 和T265相机. 安装SDK 个人推荐源码编译安装,源码编译安装比较麻烦 ...

  2. 三、理解ROS功能包(一)

    三.理解ROS功能包(一) 0.前言 对于功能包的理解意思在于两个方面. 一方面,当你完成各个功能包的功能实现,需要组合各个功能包以实现最终更复杂的功能,例如你完成了定位.路径规划.底盘速度控制.雷达 ...

  3. ROS-3 : Catkin工作空间和ROS功能包

    一.创建一个Catkin工作空间 步骤一:构建catkin工作空间 安装完成ROS版本后,设置好环境变量:$ source /opt/ros/kinetic/setup.bash.然后即可创建一个ca ...

  4. ROS功能包|mav_control_rw(基于MPC的无人机轨迹跟踪控制)---gazebo仿真测试

    ROS功能包|mav_control_rw(基于MPC的无人机轨迹跟踪控制)---gazebo仿真测试 gazebo仿真测试 gazebo仿真测试 启动gazebo并加载无人机模型 $ roslaun ...

  5. ROS实现串口GPS数据的解析与通信(这篇文章所用的代码和我买的带有ROS功能包的GPS模块的功能包的代码一样)

    我发现这篇文章所用的代码和我买的带有ROS功能包的GPS模块的功能包的代码一样!!! https://gitee.com/maxibooksiyi/gps_driver 转载自:https://blo ...

  6. 对ROS功能包中package.xml文件的疑问

    在一个ROS功能包中,CMakeList.txt和package.xml是不可缺少的两个文件. 最近听师兄说,如果xml文件出错了,功能包会无法通过 我是比较怀疑这个说法的,毕竟官方原文是这样说的: ...

  7. 创建ROS工作空间,ROS功能包(Package)

    1.创建ROS工作空间 mkdir -p ros_ws/src cd ros_ws/src/ catkin_init_workspace ############################### ...

  8. DJI 无人机 Onboard SDK ROS 功能包demo运行

    DJI 无人机 Onboard SDK ROS 功能包demo运行 demo功能 准备测试环境 运行 dji sdk 节点 运行 demo 节点 自动飞行任务 航点自动飞行 兴趣点环绕自动飞行 飞行控 ...

  9. 相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 介绍

    相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 相机与激光雷达外参标定 功能包介绍 环境配置及功能包安装 功能包节点 准备内容 1 l ...

最新文章

  1. SQLite第八课 auth.c授权文件解析
  2. 查看Mat对象的数据的三种方法
  3. carbon abatement
  4. 数据分析TB级别数据量大了怎么办,不会代码模型训练怎么办?
  5. python函数定义中参数列表里的参数是_python函数参数中的/和*是什么意思?
  6. LeetCode 1637. 两点之间不包含任何点的最宽垂直面积
  7. 微擎微信公众号小程序框架v2.7.3去sq一键安装纯净商业版
  8. 百度人脸识别技术应用001---百度人脸识别应用业务介绍
  9. 布隆过滤器(Bloom Filter)- 原理、实现和推导
  10. android开发实现静默安装(fota升级)
  11. 自动驾驶 9-4: 改进的 EKF - 错误状态扩展卡尔曼滤波器 An Improved EKF - The Error State Extended Kalman Filter
  12. 蓝桥杯训练--官网真题训练
  13. oracle数据文件5属于孤立,system数据文件问题库起不来,当家帮忙看看
  14. for i in range()使用方法
  15. All the python knowledge that I come across
  16. USB无线网卡配置ICS失败,你可以连接到SoftAP,但可能无法使用internet服务
  17. activemq启动错误:ERROR | Temporary Store limit is 51200 mb, whilst the temporary data directory
  18. 微信小程序踩坑之wxml中有内容,但是页面上不显示
  19. 基于SG90舵机(伺服电机)的操作笔记
  20. Ubuntu及window的配置 java变量和快捷键

热门文章

  1. Python sublime 中文的问题汇总【收藏】
  2. 虚拟机+Ubuntu18.04+ORB_SLAM3+ROS环境配置(配置环境的过程以及途中出现的错误,解决方法)
  3. 考试提交答案demo
  4. Electron-vue开发桌面应用调用TSCLIB.dll(tsc标签打印机连接库)
  5. [MSDN] 微软发布Windows 11 22H2版集成10月更新的最新ISO镜像文件
  6. 随机获取小区/酒店名称
  7. 微信事件推送原理猜想与小程序接口对接经验之谈(即时配送)
  8. matlab的折线图导出矢到cad,matlab2015画出图形导出CAD脚本在哪
  9. 软件测试工程师的发展道路
  10. SAP-ABAP-一般FUNCTION ALV代码示例