亚洲国产日韩a在线乱码_日韩欧美亚洲一区精选_中文字幕无码av不卡一区_人妻无码一区二区三区免费贵子_国产精品自偷一区二区
Home
Products
Cases
News
Buy
Support
About Us
Partner
Contact Us
Home
Products
News
Buy
Support
About Us
Join US
Contact Us

关于思岚SLAMWARE SDK中坐标系统以及地图数据的详述

 

SLAMWARE模塊最重要的功能為定位導航及建圖,在此過程中,會涉及到大量對地圖和坐標的操作,因此,有必要針對SDK中所用的坐標系統(tǒng)以及地圖數(shù)據(jù)進行詳細的介紹。 本文將首先介紹SLAMWARE模塊中所建的地圖,然后結(jié)合SDK中的一些地圖相關(guān)接口進行說明。

Robostudio中的地圖說明

以Robostudio客戶端為例,紅色箭頭所指為地圖坐標X軸正向, 綠色箭頭所指為Y軸正向。藍色點為坐標零點。紅色四邊形箭頭為機器人所在位置,其中,箭頭方向為機器人的朝向。

下圖左上角的SLAMWARE SDP [-0.59,-0.44, -157.37] 分別是 [X軸坐標, Y軸坐標, 機器人偏轉(zhuǎn)角度yaw]。 默認情況下,機器人開機的位置,即為地圖零點位置。機器人朝向為X軸正向,為0度,角度逆時針增加。

注意

在robostudio中顯示的機器人坐標中(左下角藍色坐標值),yaw的值是角度制,而通過接口getpose()獲得的yaw則是弧度制,二者的轉(zhuǎn)化關(guān)系為弧度(rad) = 角度(°)*2Π/360

 

將地圖數(shù)據(jù)轉(zhuǎn)換成BMP

以下內(nèi)容將以如何從Slamware模塊中獲取整張地圖數(shù)據(jù)并將mapdata轉(zhuǎn)換成bmp為例,詳細介紹地圖的相關(guān)概念,

Tip

示例代碼來自windows SDK中的map2bmp參考代碼

 

上述代碼中由getKnowArea() 獲取到的KnownArea, 指的是當前所生成的地圖的區(qū)域,這部分會隨著機器人運行過程中地圖的增大而增大。getMapDimention().x() getMapDimention().y()分別獲取的是地圖X, Y方向的像素個數(shù)。getMapData()中的數(shù)據(jù),是一組數(shù)值在 -128 ~ 127 之間的包含地圖信息的整數(shù),在轉(zhuǎn)換成灰度值的時候,需要加上128。

地圖坐標及機器人位置(以下圖示僅適用于RoboStudio客戶端,安卓系統(tǒng)坐標顯示需要做坐標轉(zhuǎn)換,無論在哪種坐標系下mapdata的起始位置都為 (X min, Y min))

下圖的坐標中包含了機器人的位置信息,在顯示機器人位置的時候,可以通過獲取機器人的Pose, 并結(jié)合地圖position以及resolution. 換算出機器人顯示時的具體像素位置,以及朝向。

坐標

地圖坐標及機器人位置示意圖,   resolution是每個像素對應的實際距離,單位是米,可以由getMapResolution()得到。左下角的map postion, 可以由getMapPosition()得到。 SDP機器人的位置,可以由getPose()得到, 其中,yaw角度為圖示逆時針的方向角,單位是弧度。laser point的方向角以機器人前進方向為0度,為逆時針角度。

 

關(guān)鍵字:SLAMWARE SDK,SLAMWARE

top