主页
产品
应用案例
新闻动态
购买渠道
下载与支持
关于我们
生态合作
联系我们
主页
产品
新闻动态
购买渠道
下载与支持
关于我们
加入我们
联系我们
  • 中文|
  • Eng
  • 关于思岚SLAMWARE SDK中坐标系统以及地图数据的详述

     

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

    Robostudio中的地图说明

    以Robostudio客户端为例,红色箭头所指为地图坐标X轴正向, 绿色箭头所指为Y轴正向。蓝色点为坐标零点。红色四边形箭头为机器人所在位置,其中,箭头方向为机器人的朝向。

    下图左上角的SLAMWARE SDP [-0.59,-0.44, -157.37] 分别是 [X轴坐标, Y轴坐标, 机器人偏转角度yaw]。 默认情况下,机器人开机的位置,即为地图零点位置。机器人朝向为X轴正向,为0度,角度逆时针增加。

    注意

    在robostudio中显示的机器人坐标中(左下角蓝色坐标值),yaw的值是角度制,而通过接口getpose()获得的yaw则是弧度制,二者的转化关系为弧度(rad) = 角度(°)*2Π/360

     

    将地图数据转换成BMP

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

    Tip

    示例代码来自windows SDK中的map2bmp参考代码

     

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

    地图坐标及机器人位置(以下图示仅适用于RoboStudio客户端,安卓系统坐标显示需要做坐标转换,无论在哪种坐标系下mapdata的起始位置都为 (X min, Y min))

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

    坐标

    地图坐标及机器人位置示意图,   resolution是每个像素对应的实际距离,单位是米,可以由getMapResolution()得到。左下角的map postion, 可以由getMapPosition()得到。 SDP机器人的位置,可以由getPose()得到, 其中,yaw角度为图示逆时针的方向角,单位是弧度。laser point的方向角以机器人前进方向为0度,为逆时针角度。

     

    关键字:SLAMWARE SDK,SLAMWARE

    top