map_server提供了map_server节点,提供地图数据。也提供map_saver命令行工具,可以保存动态产生的地图
**Map格式**
保存的地图是图片文件和yaml文件。yaml文件描述地图信息,图片文件将地图进行编码
**图片格式**
图片文件描述地图是否有障碍无等信息,白色像素代表无障碍,黑色像素代表障碍物,两者之间的代表未知区域。
实际上地图可以是彩色或者灰度图,但大多数地图都是灰度图。YAML文件中定义三种区域之间的颜色分类阈值。
某种灰度的填充率可以用下面公式计算occ = (255 - color_avg) / 255.0。
**YAML格式**
image: testmap.png
resolution: 0.1
origin: [0.0, 0.0, 0.0]
occupied_thresh: 0.65
free_thresh: 0.196
negate: 0
**map_server介绍**
是一个ROS节点,用于从硬盘中读取地图文件,
**用法**
map_server <map.yaml>
**示例**
rosrun map_server map_server mymap.yaml
需要指出的是地图数据必须从latched topic或者service中获取。
**发布的topic**
map_metadata(nav_msgs/MapMetaData) #从这个topic中接收地图元数据
map(nav_msgs/OccupancyGrid) #从这个topic中接收地图
**Services**
static_map(nav_msgs/GetMap) #从这个service中接收地图
**相关参数**
~frame_id(string, default:"map") #发布的地图所使用的坐标系
**map_saver**
map_saver保存地图到硬盘,例如,从SLAM的建图service保存到硬盘
rosrun map_server map_saver [-f mapname]
map_saver接收地图数据并将其写入到map.png和map.yaml文件中。-f指定保存文件名
例子:
rosrun map_server map_saver -f mymap
**注册的topic**
map(nav_msgs/OccupancyGrid) #接收地图
- 前言
- 第一章 ROS简介
- 机器人时代的到来
- ROS发展历程
- 什么是ROS
- 安装ROS
- 安装ROS-Academy-for-Beginners教学包
- 二进制与源码包
- 安装RoboWare Studio
- 单元测试一
- 第二章 ROS文件系统
- Catkin编译系统
- Catkin工作空间
- Package软件包
- CMakeLists.txt
- package.xml
- Metapacakge软件元包
- 其他常见文件类型
- 单元测试二
- 第三章 ROS通信架构(一)
- Node & Master
- Launch文件
- Topic
- Msg
- 常见msg类型
- 单元测试三
- 第四章 ROS通信架构(二)
- Service
- Srv
- Parameter server
- Action
- 常见srv类型
- 常见action类型
- 单元测试四
- 第五章 常用工具
- Gazebo
- RViz
- Rqt
- Rosbag
- Rosbridge
- moveit!
- 单元测试五
- 第六章 roscpp
- Client Library与roscpp
- 节点初始、关闭与NodeHandle
- Topic in roscpp
- Service in roscpp
- Param in roscpp
- 时钟
- 日志与异常
- 第七章 rospy
- Rospy与主要接口
- Topic in rospy
- Service in rospy
- Param与Time
- 第八章 TF与URDF
- 认识TF
- TF消息
- tf in c++
- tf in python
- 统一机器人描述格式
- 附录:TF数学基础
- 三维空间刚体运动---旋转矩阵
- 三维空间刚体运动---欧拉角
- 三维空间刚体运动---四元数
- 第九章 SLAM
- 地图
- Gmapping
- Karto
- Hector
- 第十章 Navigation
- Navigation Stack
- move_base
- costmap
- Map_server & Amcl
- 附录:Navigation工具包说明
- amcl
- local_base_planner
- carrot_planner
- clear_costmap_recovery
- costmap_2d
- dwa_local_planner
- fake_localization
- global_planner
- map_server
- move_base_msg
- move_base
- move_slow_and_clear
- navfn
- nav_core
- robot_pose_ekf
- rotate_recovery