概述
常用的 SLAM 功能包应用
gmapping
gmapping 功能包
- 基于激光雷达
- Rao-Blackwellized粒子滤波算法
- 二维栅格地图
- 需要机器人提供里程计信息
- OpenSlam开源算法
- 输出地图话题:
- nav_msgs/OccupancyGrid。
graph TD
A(即时定位与地图建模 gmapping)
B(深度信息)-->A
C(IMU信息)-->A
D(里程计信息)-->A
安装gmapping
sudo apt-get install ros-melodic-gmapping
名称 | 类型 | 描述 | |
---|---|---|---|
Topic 订阅 | tf | tf/tfMessage | 用于激光雷达坐标系,基座标系。里程计坐标系之间的变换 |
Topic 订阅 | scan | sensor_msgs/LaserScan | 激光雷达扫描数据 |
Topic 发布 | map_metedata | nav_msgs/MapMeteData | 发布地图Meta数据 |
Topic 发布 | map | nav_msgs/OccupancyGrid | 发布地图栅格数据 |
Topic 发布 | ~entropy | std_msgs/Float64 | 发布机器人姿态分布熵的估计 |
Service | dynamic_map | nav_msgs/GetMap | 获取地图数据 |
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
$ git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git
名称 | 类型 | 描述 | |
---|---|---|---|
Topic 订阅 | syscommand | std_msgs/String | 系统命令 |
Topic 订阅 | scan | sensor_msgs/LaserScan | 激光雷达扫描数据 |
Topic 发布 | map_metedata | nav_msgs/MapMeteData | 发布地图Meta数据 |
Topic 发布 | map | nav_msgs/OccupancyGrid | 发布地图栅格数据 |
Topic 发布 | slam_out_pose | geometry_msgs/PoseStamped | 估计的机器人位置(没用协方差) |
Topic 发布 | poseupdate | geometry_msgs/PoseWithCovarianceStamped | 估计的机器人位置(具有高斯估计的不确定性) |
Service | dynamic_map | nav_msgs/GetMap | 获取地图数据 |
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 功能包应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复