map_server提供了map_server節點,提供地圖數據。也提供map_saver命令行工具,可以保存動態產生的地圖
**Map格式**
保存的地圖是圖片文件和yaml文件。yaml文件描述地圖信息,圖片文件將地圖進行編碼
**圖片格式**
圖片文件描述地圖是否有障礙無等信息,白色像素代表無障礙,黑色像素代表障礙物,兩者之間的代表未知區域。
實際上地圖可以是彩色或者灰度圖,但大多數地圖都是灰度圖。YAML文件中定義三種區域之間的顏色分類閾值。
某種灰度的填充率可以用下面公式計算occ = (255 - color_avg) / 255.0。
**YAML格式**
image: testmap.png
resolution: 0.1
origin: [0.0, 0.0, 0.0]
occupied_thresh: 0.65
free_thresh: 0.196
negate: 0
**map_server介紹**
是一個ROS節點,用于從硬盤中讀取地圖文件,
**用法**
map_server <map.yaml>
**示例**
rosrun map_server map_server mymap.yaml
需要指出的是地圖數據必須從latched topic或者service中獲取。
**發布的topic**
map_metadata(nav_msgs/MapMetaData) #從這個topic中接收地圖元數據
map(nav_msgs/OccupancyGrid) #從這個topic中接收地圖
**Services**
static_map(nav_msgs/GetMap) #從這個service中接收地圖
**相關參數**
~frame_id(string, default:"map") #發布的地圖所使用的坐標系
**map_saver**
map_saver保存地圖到硬盤,例如,從SLAM的建圖service保存到硬盤
rosrun map_server map_saver [-f mapname]
map_saver接收地圖數據并將其寫入到map.png和map.yaml文件中。-f指定保存文件名
例子:
rosrun map_server map_saver -f mymap
**注冊的topic**
map(nav_msgs/OccupancyGrid) #接收地圖
- 前言
- 第一章 ROS簡介
- 機器人時代的到來
- ROS發展歷程
- 什么是ROS
- 安裝ROS
- 安裝ROS-Academy-for-Beginners教學包
- 二進制與源碼包
- 安裝RoboWare Studio
- 單元測試一
- 第二章 ROS文件系統
- Catkin編譯系統
- Catkin工作空間
- Package軟件包
- CMakeLists.txt
- package.xml
- Metapacakge軟件元包
- 其他常見文件類型
- 單元測試二
- 第三章 ROS通信架構(一)
- Node & Master
- Launch文件
- Topic
- Msg
- 常見msg類型
- 單元測試三
- 第四章 ROS通信架構(二)
- Service
- Srv
- Parameter server
- Action
- 常見srv類型
- 常見action類型
- 單元測試四
- 第五章 常用工具
- Gazebo
- RViz
- Rqt
- Rosbag
- Rosbridge
- moveit!
- 單元測試五
- 第六章 roscpp
- Client Library與roscpp
- 節點初始、關閉與NodeHandle
- Topic in roscpp
- Service in roscpp
- Param in roscpp
- 時鐘
- 日志與異常
- 第七章 rospy
- Rospy與主要接口
- Topic in rospy
- Service in rospy
- Param與Time
- 第八章 TF與URDF
- 認識TF
- TF消息
- tf in c++
- tf in python
- 統一機器人描述格式
- 附錄:TF數學基礎
- 三維空間剛體運動---旋轉矩陣
- 三維空間剛體運動---歐拉角
- 三維空間剛體運動---四元數
- 第九章 SLAM
- 地圖
- Gmapping
- Karto
- Hector
- 第十章 Navigation
- Navigation Stack
- move_base
- costmap
- Map_server & Amcl
- 附錄:Navigation工具包說明
- amcl
- local_base_planner
- carrot_planner
- clear_costmap_recovery
- costmap_2d
- dwa_local_planner
- fake_localization
- global_planner
- map_server
- move_base_msg
- move_base
- move_slow_and_clear
- navfn
- nav_core
- robot_pose_ekf
- rotate_recovery