(ros/navigation/slam_gmapping) map_server地图服务器

http://wiki.ros.org/map_server

概述

map_server提供map_server ROS节点,它提供地图数据作为一个ROS服务器。也提供map_saver命令行功能,能动态生成保存到文件中的地图。

地图格式

包中通过工具操作的地图是以成堆的文件存储的。YAML文件描述地图的元数据,并命名image文件。Image文件编码占用数据。

Image 格式

Image 以对应单元的颜色描述世界中每个单元的占用状态。白色单元格表示自由,黑色单元格表示占用,两种颜色之间的单元表示未知。彩色和灰度图像都采用,但是大部分地图都是灰度图像(尽管它们存储的好像是以彩色的形式)。YAML文件的阈值划分为3类;阈值是在map_server内部完成的。

比较阈值参数时,图像单元占用概率的计算如下:occ = (255 - color_avg) / 255.0, color_avg是从所有通道平均出来的8位值结果,例如如果图像时24位颜色,一个单元的颜色0x0a0a0a有一个0.96的概率,这是一个完全占用((255-(0*16+10))/255.0=0.96)。颜色0xeeeeee的概率是0.07((255-(14*16+14))/255.0=0.07),完全没占用。

通过ROS消息通信时,占用表示为区间[0,100]的一个整数,0表示完全自由,100表示完全占用,特殊值-1表示完全未知。

图像数据经由SDL_Image读取;依靠SDL_Image提供的一个特殊平台,支持格式改变。一般来说,大部分流行的图像格式都广泛支持。一个需要注意的例外是PNG在OS X上不支持。

YAML格式

YAML格式最好用一个简单而完全的例子来解释:

image: testmap.png
resolution: 0.1
origin: [0.0, 0.0, 0.0]
occupied_thresh: 0.65
free_thresh: 0.196
negate: 0

必填的字节

image:   到包含占用信息的image文件的路径;可以是绝对路径,也可以是到YAML文件的相对路径。

resolution:地图的分辨率,meters/pixel

origin: 地图左下角单元(像素)的2维位姿,(x,y,yaw),yaw逆时针旋转(yaw=0表示没有旋转)。系统的很多部分现在忽略yaw。

occupied_thresh:单元占用的概率大于这个阈值则认为完全占用。

free_thresh: 单元占用的概率小于这个阈值则认为完全自由。

negate: 不论白色/黑色,自由/占用,semantics(语义/符号)应该被反转(阈值的解释不受影响)。

命令行工具

Map_server

Map_server是一个ROS节点,从磁盘读取一个地图,并通过ROS服务提供地图。

Map_server的当前实现是转换地图图像数据中的色彩值为三元占用值:free(0), occupied(100), unknown(-1)。这个工具的未来版本是使用0到100之间的值来与占用的更精细层次交流。

Usage

map_server <map.yaml>

Example

rosrun map_server map_server mymap.yaml

注意,地图数据可能通过任一个锁存话题(意味着只发送给每个订阅者一次)或者服务来检索。服务最终可能会被淘汰。

发布话题

map_metadata (nav_msgs/MapMetaData)

通过这个锁存话题来接受地图元数据(map metadata).

map (nav_msgs/OccupancyGrid)

通过这个锁存话题接收地图。

服务

static_map (nav_msgs/GetMap)

由该服务获取地图。

参数

~frame_id (string, default: "map")

设置在已发布地图的头(header)的坐标系。

Map_saver

Map_saver 保存地图到磁盘,例如从SLAM mapping 服务中保存。

Usage

map_saver [-f mapname]

Map_saver获取地图数据,并把它写到map.pgm和map.yaml。使用-f选项为输出文件提供一个不同的base name(基础名字)。

Example

rosrun map_server map_saver -f mymap

订阅话题

map (nav_msgs/OccupancyGrid)

通过这个锁存话题获取地图。

时间: 2024-10-10 15:15:52

(ros/navigation/slam_gmapping) map_server地图服务器的相关文章

(ros/navigation/gmapping)导航/建地图

概述 http://wiki.ros.org/gmapping Gmapping包包含OpenSlam的Gmapping的一个ROS封装.Gmapping 的ROS节点slam_gmapping提供基于激光的SLAM(同时定位和创建地图).依靠移动机器人收集的激光和位姿数据,使用slam_gmapping可以创建2维栅格地图. 外部文档 主要是一个第三方包. 硬件需求 使用slam_gmapping,需要移动机器人提供里程计数据,并且水平安装固定激光测距仪.slam_gmapping节点试图转换

Roomblock: a Platform for Learning ROS Navigation With Roomba, Raspberry Pi and RPLIDAR(转)

What is this? "Roomblock" is a robot platform consists of a Roomba, a Raspberry Pi 2, a laser sensor(RPLIDAR) and a mobile battery. The mounting frame can be made by 3D printers. ROS navigation system enable to make a map of rooms and use it to

分析ROS Navigation Stack的原因

机器人导航是机器人所有其他功能的基础,手上现有的机器人导航框架已经基本完善,想要再进行性能以及效果上的提高需要很大的改动,因此参考ROS Navigation Stack,进行其代码结构以及思路的阅读,帮自己理清自己项目改进思路,经过几天的分析以及阅读,已经基本明确,接下来几天准备新导航代码的编写.

用 ROS 做内网DNS服务器

转载:http://iliuyong.iteye.com/blog/1035692 用 ROS 做内网DNS服务器方法:1.ROS 设置IP ->DNS 选择"static"选项卡点击"+",name随便起,address填你的路由器内网IP,TTL默认."OK"此时应该已经存在了一个你刚刚建立的DNS服务器名,并点击"settings",分别填写主辅DNS地址,选择"allow remote requeste

谷歌离线地图开源地图服务器

一键离线地图发布(工具软件下载) 使用教程 百度离线地图发布  教程 手机离线地图发布--Oruxmaps制作发布高清卫星离线地图 谷歌离线地图发布API解析 说明: 1. 当前版本支持 谷歌电子/卫星地图瓦片.高德地图.阿里云地图.超图.腾讯地图等(只需下载该地图源的瓦片拷贝到指定目录即可): 2. 效果预览演示地址:http://www.bigemap.com/google 后台编辑体验地址:http://www.bigemap.com/google/login.html 可随意在后台添加/

(ros/navigation) navigation导航中一些重要话题的来源和去路

(ros/navigation) navigation导航中一些重要话题的来源和去路,对理解程序有很大帮助 topic1:  cmd_vel Type: geometry_msgs/Twist Publishers: * /move_base Subscribers: * none topic2:  /move_base/NavfnROS/plan Type: nav_msgs/Path Publishers: * /move_base Subscribers: * /rviz topic3: 

ROS Navigation中的map_server地图包功能和使用

博客参考 http://wiki.ros.org/map_server 和 https://www.ncnynl.com/archives/201708/1897.html 1. 安装map_server sudo apt-get install ros-kinetic-map-server 2. 具体使用说明 map_server使得地图的数据变成 ros 的service 可以被调用.其中以两种方式存储.一个是yaml文件,他存储了数据的元数据.一个是image file   他编码了地图的

(ros/navigation)how to build a map using logged data 怎样用记录的数据创建地图

1 how to build a map using logged data 怎样用记录的数据创建地图 描述:怎样用记录的转换和激光扫描数据创建二维地图. 创建地图 1.  如果作为源校验(相对于二进制安装),构建gmapping: rosmake gmapping 2. 获取一个包.有两个选择: 1 用机器人创建一个包 2 下载一个现有的包做测试 任何一种方式,都会得到一个包. 3. 启动核心 roscore 4. 在其他节点启动前,确保use_sim_time设置为true <pre nam

百度开源地图服务器搭建

离线地图制作发布工具 -- 教程 1.简介 BIGEMAP一键离线地图发布服务器主要帮助企业内部(局域网)环境搭建私有地图服务.支持一键快速发布,无需二次开发,无需配置环境,安装即可发布离线地图,可应用在局域网地图发布,内网地图发布,手持设备地图发布,移动端地图发布.在没有网络的情况下,依然可以实现地图浏览. 支持离线地图的标绘:点.线.面.上传图片等等 图 1 离线地图示例 2.安装 点击[软件下载] 解压后,双击bssetup.exe运行安装程序,开始安装BIGEMAP一键离线地图发布,按向