Autoxing REST API Book
  • English
  • zh-CN
GitHub
  • English
  • zh-CN
GitHub
  • 入门指南

    • 入门指南
    • 开始移动
    • WebSocket 入门指南
    • Robot Admin (单机版)
  • 参考手册

    • REST API 设计原则
    • 地图 (Map) API
    • 移动 (Move) API
    • 当前地图与位姿 API
    • 叠加层 (Overlays)
    • 建图 (Mapping) API
    • 服务 API (Service API)
    • 转发 ROS 服务 API (Forwarded ROS Services API)
    • 物联网 (IoT) 设备
    • 设备信息 API
    • 机器人参数 (Robot Parameters) API
    • 系统设置 (System Settings)
    • 应用商店 API
    • 主机名 (Hostname) API
    • Lidar 陆标 (Landmarks)
    • WebSocket 参考 (WebSocket Reference)
    • 子图 (Submaps)
  • 其他

    • 弃用说明
    • 更新日志

地图 (Map) API

地图包含以下字段:

名称类型描述
uidstring唯一 ID。
map_namestring地图名称。
map_versionint地图版本。
create_timeintUnix 时间戳 (例如:1644568815)。
grid_origin_xfloat左下角的 X 坐标。
grid_origin_yfloat左下角的 Y 坐标。
grid_resolutionfloat单个像素的大小,通常为 0.05 米/像素。
overlays_versionint叠加层 (overlays) 的版本。
overlaysstringGeoJSON 格式的叠加层,包含兴趣点 (POI)、虚拟墙等。
carto_mapstringBase64 编码的二进制地图数据(用于定位)。
occupancy_gridstringBase64 编码的 PNG 图像数据(用于显示)。

地图列表

curl http://192.168.25.25:8090/maps/
[
  {
    "id": 1,
    "uid": "620620f9c0fd0ecb0f66d981",
    "map_name": "5层地图",
    "create_time": 1644568815,
    "map_version": 9,
    "overlays_version": 14,
    "thumbnail_url": "http://192.168.25.25:8090/maps/1/thumbnail",
    "image_url": "http://192.168.25.25:8090/maps/1.png",
    "url": "http://192.168.25.25:8090/maps/1"
  },
  {
    "id": 2,
    "uid": "61ee4c3ac0fd0ecb0f66d165",
    "map_name": "前台大厅",
    "create_time": 1643007028,
    "map_version": 2,
    "overlays_version": 8,
    "thumbnail_url": "http://192.168.25.25:8090/maps/2/thumbnail",
    "image_url": "http://192.168.25.25:8090/maps/2.png",
    "url": "http://192.168.25.25:8090/maps/2"
  },
  {
    "id": 3,
    "uid": "61e95264c0fd0ecb0f66c71e",
    "map_name": "楼道大图",
    "create_time": 1642680851,
    "map_version": 1,
    "overlays_version": 3,
    "thumbnail_url": "http://192.168.25.25:8090/maps/3/thumbnail",
    "image_url": "http://192.168.25.25:8090/maps/3.png",
    "url": "http://192.168.25.25:8090/maps/3"
  }
]

额外字段

名称描述
image_url地图原始分辨率的 PNG 图像。
thumbnail_url地图低分辨率的 PNG 图像(缩略图)。

获取地图详情

curl http://192.168.25.25:8090/maps/1
{
  "id": 1,
  "map_name": "5层地图",
  "uid": "620620f9c0fd0ecb0f66d981",
  "map_version": 9,
  "create_time": 1644568815,
  "last_modified_time": 1647333821,
  "grid_origin_x": -53.1968,
  "grid_origin_y": -25.0135,
  "grid_resolution": 0.05,
  "overlays_version": 14,
  "overlays": "{\"type\": \"FeatureCollection\", \"features\": [{\"id\": ...",
  "thumbnail_url": "http://192.168.25.25:8090/maps/1/thumbnail",
  "image_url": "http://192.168.25.25:8090/maps/1.png",
  "pbstream_url": "http://192.168.25.25:8090/maps/1.pbstream"
}

额外字段

名称描述
image_url获取地图原始分辨率 PNG 图像的 URL。
thumbnail_url获取地图缩略图 (PNG) 的 URL。
pbstream_url获取二进制地图数据的 URL。

创建地图

可以使用 Base64 编码的数据创建地图,或直接从服务器上的本地文件路径创建。还有一种从建图任务直接创建地图的方法(参见 mappings.md)。

从 Base64 数据创建地图

可以通过提供以下必填字段来创建地图:

  • map_name
  • carto_map (Base64 编码的二进制地图数据)
  • occupancy_grid (Base64 编码的 PNG 图像数据)
  • grid_origin_x
  • grid_origin_y
  • grid_resolution
  • overlays_version (可选)
  • overlays (可选)
  • uid (可选)
  • map_version (可选)
curl -X POST \
    -H "Content-Type: application/json" \
    --data '{"map_name": "xxx", "carto_map": "xxxx", "occupancy_grid": "xxx" ...}' \
    http://192.168.25.25:8090/maps/

从本地文件创建地图

如果设备上已存在 .pbstream 和 .png 文件,您可以通过传递绝对文件路径来创建地图,而无需进行 Base64 编码。

提示

相对于 Base64 JSON 的优势:

  • 极速响应:无 Base64 解码或 Payload 解析开销。
  • 几乎零内存占用:避免在 API 请求期间将巨大的地图文件加载到内存中。
  • 零额外磁盘空间占用:直接对源文件使用硬链接,不重复存储数据。
  • map_name
  • carto_map_filename (源 .pbstream 文件的绝对路径)
  • occupancy_grid_filename (源 .png 文件的绝对路径)
  • grid_origin_x
  • grid_origin_y
  • grid_resolution
  • overlays_version (可选)
  • overlays (可选)
  • uid (可选)
  • map_version (可选)
curl -X POST \
    -H "Content-Type: application/json" \
    --data '{"map_name": "Floor 1", "carto_map_filename": "/path/to/source.pbstream", "occupancy_grid_filename": "/path/to/source.png"}' \
    http://192.168.25.25:8090/maps/

响应

{
  "id": 119, // 新创建地图的 ID。使用此 ID 将其加载到机器人上。
  "uid": "9b94ac16-239b-11ed-9446-1e49da274768",
  "map_name": "From Mapping 4",
  "create_time": 1657015615,
  "map_version": 1,
  "overlays_version": 1,
  "thumbnail_url": "http://192.168.25.25:8090/maps/119/thumbnail",
  "image_url": "http://192.168.25.25:8090/maps/119.png",
  "url": "http://192.168.25.25:8090/maps/119"
}

修改地图

修改名称和叠加层。

curl -X PATCH \
    -H "Content-Type: application/json" \
    -d '{"map_name": "...", "overlays": "..."}' \
    http://192.168.25.25:8090/maps/1 {}

删除地图

curl -X DELETE http://192.168.25.25:8090/maps/1

删除所有地图

curl -X DELETE http://192.168.25.25:8090/maps
Edit this page
最后更新: 2026/6/14 05:36
Contributors: FengZhaolin
Prev
REST API 设计原则
Next
移动 (Move) API