跳到主要内容

本机任务队列

10.1 本机任务 LocalTask 模型​

同一时刻只执行一个本机任务。导航、建图、重定位等任务共享队列,但不是所有 HTTP 操作都会入队,例如容器停止和参数设置有各自执行路径。

本章返回字段使用首字母大写,Status 为整数,Payload / ResultJSON 为 JSON 字符串。

字段类型说明
IDstring本机任务 ID
Typestringnavigation / mapping / map_edit / relocation
Statusinteger0 pending、1 running、2 completed、3 failed、4 cancelled、5 stopping
Payloadstring请求载荷 JSON 的序列化字符串
ResultJSONstring执行结果 JSON 字符串,可能为空
CreatedAt、UpdatedAtstring创建与修改时间
StartedAt、EndedAtstring / null开始、结束时间
ErrorMsgstring失败原因,成功时通常为空
ErrorCodeinteger当前持久化路径通常为 0,不能只靠此字段判断失败
IdempotencyKeystring提交幂等键
TimeoutSecondsinteger正数为执行超时秒数;0 不设执行时限

示例(data):

{
"ID":"task-example-id","Type":"navigation","Status":0,
"Payload":"{\"action\":\"navigate_to_pose\",\"x\":3.2,\"y\":1.5,\"frame_id\":\"map\"}",
"ResultJSON":"","CreatedAt":"2026-11-13T08:00:00Z","UpdatedAt":"2026-11-13T08:00:00Z",
"StartedAt":null,"EndedAt":null,"ErrorMsg":"","ErrorCode":0,
"IdempotencyKey":"visit-frontdesk-001","TimeoutSeconds":120
}

普通流程为 pending → running → completed/failed;取消可经过 stopping → cancelled。建图停止可能是保存流程并最终 completed,不能把所有 CancelCurrent 都机械理解为最终 cancelled。

10.2 POST /v1/api/tasks/submit​

字段类型必填 / 说明
typestring必填,上述任务类型之一
payloadobject对应任务的执行参数
idempotency_keystring可选,相同键与相同请求返回已有任务;同键不同请求拒绝
timeout_secondsinteger可选,推荐非负;0 不限时
{"type":"navigation","payload":{"action":"navigate_to_pose","x":3.2,"y":1.5,"theta":0.0,"frame_id":"map"},"idempotency_key":"visit-frontdesk-001","timeout_seconds":120}

成功返回完整 LocalTask,不是只返回 task_id;该通用接口没有 Missions 的 500 ms 快速失败等待。客户端必须检查后续任务状态。

typepayload
navigationaction 必填:navigate_to_pose / navigate_fixed_point / navigate_through_poses / complex;按动作提供 x/y/theta/frame_id、waypoints/cycles 或 default_params/steps;可有 use_relocalization
mappingscene_name、可选 runtime_version/runtime_image;普通客户端建议用建图专用接口完成运行时解析
relocationmode,使用 global/origin/sequential
map_edit云端地图编辑执行载荷,依赖内容下载、校验和回执上下文,不建议客户直接构造

未知任务类型、忙碌、幂等冲突等提交错误一般为 500/5001;地图名非法为 400/1001。幂等键作用域为设备本地任务存储,创建新的业务操作应使用新键。

10.3 查询任务​

接口参数响应 data
GET /v1/api/tasks下表 queryLocalTask[],没有 items 包装
GET /v1/api/tasks/current无当前运行/停止中的 LocalTask,无则 null
GET /v1/api/tasks/{id}path string id指定 LocalTask,不存在为 404/1002

列表 query:

参数类型 / 默认说明
statusstring,可选逗号分隔整数,如 0,1,5;非整数字符返回 400
typestring,可选逗号分隔类型,如 navigation,mapping
limitinteger,20必须 >0;当前 handler 未设置统一最大值,无 offset/cursor 分页参数
curl -sS -G -H "Authorization: Bearer $ORSUS_TOKEN" \
--data-urlencode 'status=0,1,5' --data-urlencode 'type=navigation' --data-urlencode 'limit=20' \
"$ORSUS_ORIGIN/v1/api/tasks"

10.4 取消与队列推进​

接口请求响应 / 约束
DELETE /v1/api/tasks/{id}/cancelpath id,无请求体只取消 pending;其他状态报 500/5001;成功 data=null
POST /v1/api/tasks/cancel_current无请求体请求结束当前任务;成功 data=null
POST /v1/api/tasks/start_next无请求体手动唤醒下一排队任务;成功 data=null,不代表下一任务完成
GET /v1/api/tasks/config无{"auto_start_next":true}
PUT /v1/api/tasks/config{"auto_start_next":false}data=null;字段必填,false 合法

auto_start_next 控制任务之间自动衔接;停用后按业务确认再触发 start_next。取消当前任务与清空队列不同,尚未取消的 pending 任务仍存在。