我是靠谱客的博主 孝顺钢笔,最近开发中收集的这篇文章主要介绍7-机器人SLAM建图常用的 SLAM 功能包应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

常用的 SLAM 功能包应用

gmapping

gmapping 功能包

  • 基于激光雷达
  • Rao-Blackwellized粒子滤波算法
  • 二维栅格地图
  • 需要机器人提供里程计信息
  • OpenSlam开源算法
  • 输出地图话题:
  • nav_msgs/OccupancyGrid。
graph TD
A(即时定位与地图建模 gmapping)

B(深度信息)-->A

C(IMU信息)-->A 

D(里程计信息)-->A

gmapping 功能包的总体框架

安装gmapping

sudo apt-get install ros-melodic-gmapping

gmapping 功能包中的话题和服务

名称类型描述
Topic 订阅tftf/tfMessage用于激光雷达坐标系,基座标系。里程计坐标系之间的变换
Topic 订阅scansensor_msgs/LaserScan激光雷达扫描数据
Topic 发布map_metedatanav_msgs/MapMeteData发布地图Meta数据
Topic 发布mapnav_msgs/OccupancyGrid发布地图栅格数据
Topic 发布~entropystd_msgs/Float64发布机器人姿态分布熵的估计
Servicedynamic_mapnav_msgs/GetMap获取地图数据

gampping 功能包中的TF变换

TF变换描述
必须的TF坐标变换->base_link激光雷达坐标系之间的变换
base_link->odom基座标系与里程计坐标系之间的变换。一般由里程计节点发布
发布的TF坐标变换map->odom地图坐标系与机器人里程计坐标系之间的变换。估计机器人在地图中的位置

保存地图

rosrun map_server map_saver -f cloister_gmapping

hector

hector 功能包

  • 基于激光雷达
  • 高斯牛顿方法
  • 二维栅格地图
  • 不需要机器人提供里程计信息
  • 输出地图话题:
  • nav_msgs/OccupancyGrid。
graph TD
A(即时定位与地图建模 hector)

B(深度信息)-->A

hector_slam 功能包的总体框架

安装hector_slam

$ git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git

hector 功能包中的话题和服务

名称类型描述
Topic 订阅syscommandstd_msgs/String系统命令
Topic 订阅scansensor_msgs/LaserScan激光雷达扫描数据
Topic 发布map_metedatanav_msgs/MapMeteData发布地图Meta数据
Topic 发布mapnav_msgs/OccupancyGrid发布地图栅格数据
Topic 发布slam_out_posegeometry_msgs/PoseStamped估计的机器人位置(没用协方差)
Topic 发布poseupdategeometry_msgs/PoseWithCovarianceStamped估计的机器人位置(具有高斯估计的不确定性)
Servicedynamic_mapnav_msgs/GetMap获取地图数据

hector 功能包中的TF变换

TF变换描述
必须的TF坐标变换->base_link激光雷达坐标系之间的变换
base_link->odom基座标系与里程计坐标系之间的变换。一般由里程计节点发布
发布的TF坐标变换map->odom地图坐标系与机器人里程计坐标系之间的变换。估计机器人在地图中的位置

cartographer

cartographer 功能包

  • 2016年10月5日,谷歌开源
  • 基于图网络的优化方法
  • 二维或三维条件下的定位及建图功能
  • 设计目的是在计算资源有限的情况下,实时获取相对较高精度的2D地图
  • 主要基于激光雷达
  • 后续会支持更多传感器和机器人平台,同时不断增加新的功能。

安装 cartographer

$ sudo apt-get install ros-melodic-cartographer-*

保存地图

$ rosservice call /finish_trajectory 0
$ rosservice call /write_state "{filename: '${HOME}/mymap.pbstream'}"
$ rosrun cartographer_ros cartographer_pbstream_to_ros_map-map_filestem=${HOME}/mymap-pbstream_filename=${HOME}/mymap.pbstream-resolution=0.05

rtabmap

安装 rtabmap

$ sudo apt-get install ros-melodic-rtabmap-ros

查看建图结果

$ rtabmap-databaseViewer ~/.ros/rtabmap.db

最后

以上就是孝顺钢笔为你收集整理的7-机器人SLAM建图常用的 SLAM 功能包应用的全部内容,希望文章能够帮你解决7-机器人SLAM建图常用的 SLAM 功能包应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部