跳到主要内容

路径、标注与任务模板

资源保存与执行分离。保存路径、点位或模板不会自动切换地图,也不会启动导航环境。调用启动接口前应确认当前场景与资源 scene_name 一致;REST 简单启动路径不提供云端所有的地图修订保护。

9.1 路径对象 SavedPath​

字段类型请求要求 / 含义
idinteger服务端资源 ID
namestring路径名称
scene_namestring关联地图名
map_revisionstring可选修订绑定,未知时为空
waypointsPose[]有序路径点,建议至少 2 点
created_atstring服务端创建时间

GET /v1/api/nav/paths​

query scene_name:string 可选,省略查询全部。响应 data 为 SavedPath 数组,没有 items 包装层。

POST /v1/api/nav/paths​

请求示例:

{"name":"大厅巡逻","scene_name":"office_1f","map_revision":"","waypoints":[{"x":0.0,"y":0.0,"theta":0.0},{"x":3.0,"y":1.0,"theta":1.5708}]}

返回保存后的 SavedPath。服务端还尝试生成同名 route 标注;该同步是尽力而为,失败只记日志,路径保存成功不保证标注也保存成功,可再查询 landmarks 确认。

DELETE /v1/api/nav/paths/{id}​

path id 为整数,无请求体。成功 data=null;这里只删除路径记录,不应假定自动删除同名标注。ID 格式错误为 400/1001,存储错误通常为 500/2001。

POST /v1/api/nav/paths/start​

字段类型说明
namestring提供非空 name 时优先按名称查找
scene_namestring与 name 配合,限定地图
path_idintegername 未提供时按 ID 查找
cyclesinteger<=0 按 1
{"name":"大厅巡逻","scene_name":"office_1f","cycles":2}

或 {"path_id":1,"cycles":1}。name 与 path_id 至少提供一种;两者都提供时 name 优先。坐标系固定为 map。返回 {"task_id":"..."},并执行约 500 ms 快速失败检查。

9.2 地图标注 Landmark​

字段类型说明
idinteger服务端 ID
name、scene_namestring名称和地图;同地图名称唯一
map_revisionstring可选地图修订
kindstringpoint 或 route
pointsPose[]point 恰好 1 点;route 至少 2 点
created_at、updated_atstring服务端时间
接口请求响应 data
GET /v1/api/nav/landmarksquery scene_name 可选Landmark[]
POST /v1/api/nav/landmarksLandmark 业务字段新 Landmark
PUT /v1/api/nav/landmarks/{id}path 整数 id + 完整业务字段更新后的 Landmark
DELETE /v1/api/nav/landmarks/{id}无请求体null
POST /v1/api/nav/landmarks/{id}/start可省略,或 {"cycles":1}{"task_id":"..."}

点位保存示例:

{"name":"前台","scene_name":"office_1f","map_revision":"","kind":"point","points":[{"x":3.2,"y":1.5,"theta":0.0}]}

PUT 不当作补丁使用,提交完整 name/scene_name/kind/points;path id 优先于请求体 id。启动时 point 转为单点导航、route 转为路径导航,frame_id 固定 map;cycles 仅对 route 有效,<=0 按 1。重复名称为 400/1001;部分校验/存储错误当前仍为 500/2001,不能假定所有未找到或非法标注均返回 404。

9.3 复杂任务模板 MissionTemplate​

接口请求响应 data
GET /v1/api/nav/mission-templatesquery scene_name 必填且非空模板数组
POST /v1/api/nav/mission-templates完整模板请求新模板
PUT /v1/api/nav/mission-templates/{id}正整数 id + 完整模板请求更新模板
DELETE /v1/api/nav/mission-templates/{id}无请求体null
请求字段类型必填 / 默认
name、scene_namestring必填、去除空白后非空
map_revisionstring可选
frame_idstring缺省 map
default_paramsobject可选
stepsComplexStep[]至少一步,校验规则同 6.2
{"name":"接待路线","scene_name":"office_1f","frame_id":"map","steps":[{"type":"navigate","target":{"x":3.2,"y":1.5,"theta":0.0}},{"type":"wait","wait_seconds":5}]}

响应在上述业务字段基础上增加 id、created_at、updated_at。没有模板 /start 接口;客户端从列表选择模板,把 frame_id/default_params/steps 与 mode="complex" 组成 Missions 请求。模板非法、名称重复:400/1001;ID 不存在:404/1002;存储故障:500/1003。