创建机器人指令

POST /v1alpha1/robots/{serialNumber}/commands

向指定序列号的机器人发送一条新指令。支持三种命令类型:任务命令、导航命令和控制命令,三者选其一,并通过 commandParameter 传递具体参数。

请求参数(Body)

参数名类型必填说明
serialNumberstring机器人序列号(路径参数)
remoteTaskCommandTypestring任务命令类型
remoteNavigationCommandTypestring导航命令类型
remoteControlCommandTypestring控制命令类型
commandParameterobject命令参数,具体结构取决于命令类型
口诀三种命令类型选其一,commandParameter 必传

响应参数

参数名类型说明
namestring命令资源名称
statestring命令状态,创建后初始为 WAITING
rawCommandTypestring原始命令类型
口诀创建成功后返回资源名称和初始状态 WAITING

SDK 调用示例

from gausium_sdk.models import CreateCommandRequest

request = CreateCommandRequest(
    remote_task_command_type="START_TASK",
    command_parameter={"taskId": "task-001"}
)
result = await sdk.command.create("GS101-00A0-A7L-0000", request)
print(result.name, result.state)  # 资源名称, WAITING

获取机器人指令

GET /v1alpha1/robots/{robotId}/commands/{commandId}

根据机器人 ID 和指令 ID 获取单条指令的详细信息,包括命令参数、执行状态和创建时间。

路径参数

参数名类型必填说明
robotIdstring机器人序列号
commandIdstring指令 ID
口诀路径中同时指定机器人和指令 ID

响应参数

参数名类型说明
namestring命令资源名称
parentstring父资源(所属机器人)
commandParameterobject命令参数详情
statestring命令状态
serialNumberstring机器人序列号
createTimestring创建时间(ISO 8601 格式)
口诀返回完整指令信息,含父资源和创建时间

SDK 调用示例

command = await sdk.command.get("GS101-00A0-A7L-0000", "cmd-12345")
print(command.state)           # 命令状态
print(command.create_time)     # 创建时间

列出机器人指令

GET /v1alpha1/robots/{robotId}/commands

分页列出指定机器人的所有历史指令,支持按创建时间排序。

请求参数(Query)

参数名类型必填说明
robotIdstring机器人序列号(路径参数)
pageint页码,默认 1
pageSizeint每页数量,默认 20
order_bystring排序字段,如 create_time desc
口诀支持分页和排序,page 从 1 开始

响应参数

参数名类型说明
commandsarray指令对象列表
pageint当前页码
pageSizeint每页数量
totalstring指令总数
口诀返回分页列表和总数

SDK 调用示例

result = await sdk.command.list(
    "GS101-00A0-A7L-0000",
    page=1,
    page_size=10,
    order_by="create_time desc"
)
print(f"共 {result.total} 条指令")
for cmd in result.commands:
    print(cmd.name, cmd.state)

指令状态说明

指令创建后会经历不同的状态流转,state 字段反映当前执行阶段。

状态值说明
WAITING指令已创建,等待机器人接收
RUNNING机器人正在执行指令
SUCCEEDED指令执行成功
FAILED指令执行失败
口诀WAITING -> RUNNING -> SUCCEEDED/FAILED

最佳实践

推荐做法
  • 创建指令后立即记录返回的 name,用于后续查询
  • 使用 order_by=create_time desc 获取最新指令
  • 通过 async with 上下文管理器使用 SDK,确保连接正确释放
  • 合理设置分页参数,避免单次请求数据量过大
不推荐
  • 不要同时指定多种命令类型(task/navigation/control 选其一)
  • 不要在未获取 Token 的情况下调用接口
  • 不要以过高频率轮询指令状态(建议间隔 >= 2 秒)
常见误区
  • serialNumber 和 robotId 在不同接口中含义相同但参数名不同,注意区分
  • total 字段返回类型为 string 而非 int,使用时需类型转换
  • commandParameter 结构随命令类型变化,需参考具体命令文档

指令能够可靠创建、状态可追踪、分页查询高效