获取站点信息
GET /openapi/v2alpha1/robots/{robotId}/getSiteInfo
查询指定机器人所关联站点的完整结构信息,包括站点名称、建筑物列表、楼层列表及各楼层地图。
路径参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| robotId | string | 是 | 机器人 ID |
口诀路径中传入目标机器人的唯一标识
响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | string | 站点 ID |
| name | string | 站点名称 |
| buildings | array | 建筑物列表 |
| buildings[].name | string | 建筑名称 |
| buildings[].floorNum | int | 楼层数量 |
| buildings[].uuid | string | 建筑 UUID |
| buildings[].floors | array | 楼层列表 |
| buildings[].floors[].index | int | 楼层索引 |
| buildings[].floors[].name | string | 楼层名称 |
| buildings[].floors[].maps | array | 地图列表 |
口诀站点 → 建筑 → 楼层 → 地图,逐层嵌套
// 响应示例
{
"id": "site_001",
"name": "总部大楼",
"buildings": [
{
"name": "A栋",
"floorNum": 3,
"uuid": "bld-uuid-001",
"floors": [
{
"index": 1,
"name": "1F",
"maps": []
}
]
}
]
}
提交站点临时任务
POST /openapi/v2/robot/tasks/temp/withSite
向指定机器人下发基于站点的临时清扫任务。需要提供站点 ID、楼层配置和任务配置等信息。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| serialNumber | string | 是 | 机器人序列号 |
| cleaningMode | string | 是 | 清扫模式 |
| loopCount | int | 否 | 循环次数 |
| siteId | string | 是 | 站点 ID |
| taskName | string | 是 | 任务名称 |
| floors | array | 是 | 楼层配置 |
| tasks | array | 是 | 任务配置 |
口诀序列号 + 清扫模式 + 站点 + 楼层 + 任务 = 完整下发
响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | string | 命令资源名称 |
| state | string | 命令状态 |
| taskQueueId | string | 任务队列 ID |
口诀返回命令名称和队列 ID 用于后续状态跟踪
// 请求示例
{
"serialNumber": "GS101-00A0-A7L-0000",
"cleaningMode": "auto",
"loopCount": 1,
"siteId": "site_001",
"taskName": "日常清扫任务",
"floors": [],
"tasks": []
}
// 响应示例
{
"name": "cmd-resource-001",
"state": "WAITING",
"taskQueueId": "tq-001"
}
提交无站点临时任务
POST /openapi/v2/robot/tasks/temp/withoutSite
向指定机器人下发不依赖站点的临时清扫任务。通过 mapName 直接指定地图,适用于未配置站点或需要快速下发单地图任务的场景。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| productId | string | 是 | 机器人标识 |
| tempTaskCommand.cleaningMode | string | 是 | 清扫模式 |
| tempTaskCommand.loop | boolean | 否 | 是否循环 |
| tempTaskCommand.loopCount | int | 否 | 循环次数 |
| tempTaskCommand.taskName | string | 是 | 任务名称 |
| tempTaskCommand.mapName | string | 是 | 地图名称 |
| tempTaskCommand.startParam | array | 是 | 启动参数 |
口诀productId + tempTaskCommand 嵌套对象承载全部任务配置
响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | string | 命令资源名称 |
| state | string | 命令状态(WAITING) |
| rawCommandType | string | 命令类型(send_temp_task) |
口诀返回值标明命令已入队等待执行
// 请求示例
{
"productId": "GS101-00A0-A7L-0000",
"tempTaskCommand": {
"cleaningMode": "auto",
"loop": false,
"loopCount": 1,
"taskName": "快速清扫",
"mapName": "floor_1f_map",
"startParam": []
}
}
// 响应示例
{
"name": "cmd-resource-002",
"state": "WAITING",
"rawCommandType": "send_temp_task"
}
最佳实践
✓推荐做法
- 下发站点任务前,先调用获取站点信息接口确认站点和楼层结构
- 保存返回的
taskQueueId或name,用于后续查询任务执行状态 - 根据机器人是否已配置站点,选择对应的任务下发接口
✗不推荐
- 不要在未获取站点信息的情况下硬编码 siteId 和楼层配置
- 不要忽略响应中的 state 字段,它是判断命令是否被接受的关键
- 不要混用站点任务和无站点任务的参数格式
⚠常见误区
- 站点任务使用 serialNumber,无站点任务使用 productId,混用会导致 400 错误
- 无站点任务的参数嵌套在 tempTaskCommand 中,直接放在顶层会被忽略
任务下发后收到 WAITING 状态响应,且可通过返回的资源标识查询执行进度