Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

概述

Excerpt

SLAMWARE模块最重要的功能为定位导航及建图,在此过程中,会涉及到大量对地图和坐标的操作,因此,有必要针对SDK中所用的坐标系统以及地图数据进行详细的介绍。 本文将首先介绍SLAMWARE模块中所建的地图,然后结合SDK中的一些地图相关接口进行说明。

UI commander中的地图说明

Robostudio中的地图说明

以Robostudio客户端为例,红色箭头所指为地图坐标X轴正向, 以UI commander windows客户端为例,红色箭头所指为地图坐标X轴正向, 绿色箭头所指为Y轴正向。蓝色点为坐标零点。红色四边形箭头为机器人所在位置,其中,箭头方向为机器人的朝向。下图左上角的SLAMWARE SDP [-0.59,-0.44, -157.37] 分别是 [X轴坐标, Y轴坐标, 机器人偏转角度yaw]。 默认情况下,机器人开机的位置,即为地图零点位置。机器人朝向为X轴正向,为0度,角度逆时针增加。


将地图数据转换成BMP

以下内容将以如何从Slamware模块中获取整张地图数据并将mapdata转换成bmp为例,详细介绍地图的相关概念,

...

上述代码中由getKnowArea() 获取到的KnownArea, 指的是当前所生成的地图的区域,这部分会随着机器人运行过程中地图的增大而增大。getMapDimention().x() getMapDimention().y()分别获取的是地图X, Y方向的像素个数。getMapData()中的数据,是一组数值在 -128 ~ 127 之间的包含地图信息的整数,在转换成灰度值的时候,需要加上128。


地图坐标及机器人位置

下图的坐标中包含了机器人的位置信息,在显示机器人位置的时候,可以通过获取机器人的Pose, 并结合地图position以及resolution. 换算出机器人显示时的具体像素位置,以及朝向。

...