(ros/navigation/slam_gmapping) map_server地圖伺服器

來源:互聯網
上載者:User

標籤:ros   導航   機器人   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.pngresolution: 0.1origin: [0.0, 0.0, 0.0]occupied_thresh: 0.65free_thresh: 0.196negate: 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) 

通過這個鎖存話題擷取地圖。




(ros/navigation/slam_gmapping) map_server地圖伺服器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.