0d986f60bd
web-platform-ci / Standalone decision service (no cloud credentials) (push) Has been cancelled
web-platform-ci / TypeScript, lint, unit, build (push) Has been cancelled
web-platform-ci / Playwright E2E (push) Has been cancelled
lekiwi-compatibility / cpu-compatibility (push) Has been cancelled
集成服务器托管模型、自然语言移动与有界抓放、内置 LeKiwi URL 导入和双摄像头;同步部署契约与指定域名 iframe 白名单,保留原有物理安全、会话及调用预算防护。 更新 npm 包及锁文件版本、CHANGELOG 与发布文档。提交前 typecheck、120 项定向前端测试和 44 项后端测试通过(3 项可选跳过);真实 v2 云模型抓放仍待单独验收,不包含运行密钥或构建产物。
484 lines
11 KiB
JSON
484 lines
11 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://mujoco.local/contracts/lekiwi-language-task-v2.schema.json",
|
|
"title": "LeKiwi language task v2",
|
|
"$defs": {
|
|
"Stamp": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["runId", "sceneRevision", "sequence", "planRevision", "requestId"],
|
|
"properties": {
|
|
"runId": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 128
|
|
},
|
|
"sceneRevision": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 1000000000
|
|
},
|
|
"sequence": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 1000000000
|
|
},
|
|
"planRevision": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 1000000000
|
|
},
|
|
"requestId": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 128
|
|
}
|
|
}
|
|
},
|
|
"Position": {
|
|
"type": "array",
|
|
"minItems": 3,
|
|
"maxItems": 3,
|
|
"items": {
|
|
"type": "number",
|
|
"minimum": -2,
|
|
"maximum": 2
|
|
}
|
|
},
|
|
"Observation": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"version",
|
|
"stamp",
|
|
"source",
|
|
"units",
|
|
"frame",
|
|
"time",
|
|
"phase",
|
|
"base",
|
|
"joints",
|
|
"opening",
|
|
"tcp",
|
|
"object",
|
|
"goal",
|
|
"evidence",
|
|
"safety"
|
|
],
|
|
"properties": {
|
|
"version": {
|
|
"const": "lekiwi-language-v2"
|
|
},
|
|
"stamp": {
|
|
"$ref": "#/$defs/Stamp"
|
|
},
|
|
"source": {
|
|
"const": "mujoco-ground-truth"
|
|
},
|
|
"units": {
|
|
"const": "SI"
|
|
},
|
|
"frame": {
|
|
"const": "world-z-up"
|
|
},
|
|
"time": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1000000
|
|
},
|
|
"phase": {
|
|
"enum": [
|
|
"stow",
|
|
"approach",
|
|
"open",
|
|
"pregrasp",
|
|
"descend",
|
|
"close",
|
|
"verify",
|
|
"carry",
|
|
"stop-base",
|
|
"place",
|
|
"release",
|
|
"retreat",
|
|
"settle"
|
|
]
|
|
},
|
|
"base": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["position", "yaw"],
|
|
"properties": {
|
|
"position": {
|
|
"$ref": "#/$defs/Position"
|
|
},
|
|
"yaw": {
|
|
"type": "number",
|
|
"minimum": -3.142,
|
|
"maximum": 3.142
|
|
}
|
|
}
|
|
},
|
|
"joints": {
|
|
"type": "array",
|
|
"minItems": 5,
|
|
"maxItems": 5,
|
|
"items": {
|
|
"type": "number",
|
|
"minimum": -3.2,
|
|
"maximum": 3.2
|
|
}
|
|
},
|
|
"opening": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 1
|
|
},
|
|
"tcp": {
|
|
"$ref": "#/$defs/Position"
|
|
},
|
|
"object": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["id", "position", "speed"],
|
|
"properties": {
|
|
"id": {
|
|
"const": "block"
|
|
},
|
|
"position": {
|
|
"$ref": "#/$defs/Position"
|
|
},
|
|
"speed": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 20
|
|
}
|
|
}
|
|
},
|
|
"goal": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["id", "position"],
|
|
"properties": {
|
|
"id": {
|
|
"const": "placement"
|
|
},
|
|
"position": {
|
|
"$ref": "#/$defs/Position"
|
|
}
|
|
}
|
|
},
|
|
"evidence": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["fingerForces", "supported", "onGoalSupport", "secure", "transported"],
|
|
"properties": {
|
|
"fingerForces": {
|
|
"type": "array",
|
|
"minItems": 2,
|
|
"maxItems": 2,
|
|
"items": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 10000
|
|
}
|
|
},
|
|
"supported": {
|
|
"type": "boolean"
|
|
},
|
|
"onGoalSupport": {
|
|
"type": "boolean"
|
|
},
|
|
"secure": {
|
|
"type": "boolean"
|
|
},
|
|
"transported": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"maximum": 10
|
|
}
|
|
}
|
|
},
|
|
"safety": {
|
|
"type": "array",
|
|
"maxItems": 8,
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"enum": [
|
|
"joint_velocity",
|
|
"joint_stall",
|
|
"base_unstable",
|
|
"unreachable",
|
|
"lost_grasp",
|
|
"episode_timeout",
|
|
"stalled",
|
|
"none"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Plan": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["version", "objectId", "goalId", "summary", "steps"],
|
|
"properties": {
|
|
"version": {
|
|
"const": "lekiwi-language-v2"
|
|
},
|
|
"objectId": {
|
|
"const": "block"
|
|
},
|
|
"goalId": {
|
|
"const": "placement"
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 512
|
|
},
|
|
"steps": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 13,
|
|
"items": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["skill", "precondition", "onFailure"],
|
|
"properties": {
|
|
"skill": {
|
|
"enum": [
|
|
"stow",
|
|
"approach",
|
|
"open",
|
|
"pregrasp",
|
|
"descend",
|
|
"close",
|
|
"verify",
|
|
"carry",
|
|
"stop-base",
|
|
"place",
|
|
"release",
|
|
"retreat",
|
|
"settle"
|
|
]
|
|
},
|
|
"precondition": {
|
|
"enum": [
|
|
"scene-ready",
|
|
"base-stopped",
|
|
"tcp-above",
|
|
"aligned",
|
|
"dual-contact",
|
|
"verified-grasp",
|
|
"transported",
|
|
"supported",
|
|
"released",
|
|
"retreat",
|
|
"arm-safe"
|
|
]
|
|
},
|
|
"onFailure": {
|
|
"enum": ["retry", "replan", "stop"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"JevDecision": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"version",
|
|
"choice",
|
|
"grasp",
|
|
"diagnosis",
|
|
"recovery",
|
|
"noul",
|
|
"score",
|
|
"reason"
|
|
],
|
|
"properties": {
|
|
"version": {
|
|
"const": "lekiwi-language-v2"
|
|
},
|
|
"choice": {
|
|
"enum": [
|
|
"stow",
|
|
"approach",
|
|
"open",
|
|
"pregrasp",
|
|
"descend",
|
|
"close",
|
|
"verify",
|
|
"carry",
|
|
"stop-base",
|
|
"place",
|
|
"release",
|
|
"retreat",
|
|
"settle",
|
|
"stop"
|
|
]
|
|
},
|
|
"grasp": {
|
|
"enum": ["secure", "empty", "slipping", "uncertain"]
|
|
},
|
|
"diagnosis": {
|
|
"enum": ["none", "empty", "slipping", "misaligned", "unreachable", "stalled", "uncertain"]
|
|
},
|
|
"recovery": {
|
|
"enum": ["continue", "retry", "replan", "stop"]
|
|
},
|
|
"noul": {
|
|
"enum": ["allow", "deny", "uncertain"]
|
|
},
|
|
"score": {
|
|
"enum": ["poor", "partial", "good", "excellent", "unavailable"]
|
|
},
|
|
"reason": {
|
|
"enum": ["none", "unsafe", "insufficient_evidence", "tracking_error", "verified_progress"]
|
|
}
|
|
}
|
|
},
|
|
"SkillResult": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["version", "skill", "status", "code", "evidenceSequence"],
|
|
"properties": {
|
|
"version": {
|
|
"const": "lekiwi-language-v2"
|
|
},
|
|
"skill": {
|
|
"enum": [
|
|
"stow",
|
|
"approach",
|
|
"open",
|
|
"pregrasp",
|
|
"descend",
|
|
"close",
|
|
"verify",
|
|
"carry",
|
|
"stop-base",
|
|
"place",
|
|
"release",
|
|
"retreat",
|
|
"settle"
|
|
]
|
|
},
|
|
"status": {
|
|
"enum": ["running", "completed", "failed"]
|
|
},
|
|
"code": {
|
|
"enum": [
|
|
"none",
|
|
"joint_velocity",
|
|
"joint_stall",
|
|
"base_unstable",
|
|
"unreachable",
|
|
"lost_grasp",
|
|
"episode_timeout",
|
|
"alignment_timeout",
|
|
"empty_grasp",
|
|
"grasp_unverified",
|
|
"transport_unverified",
|
|
"placement_unsupported",
|
|
"release_blocked",
|
|
"placement_unverified",
|
|
"navigation_timeout",
|
|
"controller_error"
|
|
]
|
|
},
|
|
"evidenceSequence": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 1000000000
|
|
}
|
|
}
|
|
},
|
|
"Command": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"version",
|
|
"action",
|
|
"value",
|
|
"summary",
|
|
"objectId",
|
|
"targetId",
|
|
"position",
|
|
"supportId"
|
|
],
|
|
"properties": {
|
|
"version": {
|
|
"const": "lekiwi-language-v2"
|
|
},
|
|
"action": {
|
|
"enum": ["move", "turn", "pick_place", "stop", "clarify"]
|
|
},
|
|
"value": {
|
|
"type": "number",
|
|
"minimum": -180,
|
|
"maximum": 180
|
|
},
|
|
"summary": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 200
|
|
},
|
|
"objectId": {
|
|
"enum": ["block", "none"]
|
|
},
|
|
"targetId": {
|
|
"enum": ["A", "B", "coordinates", "none"]
|
|
},
|
|
"position": {
|
|
"type": "array",
|
|
"minItems": 0,
|
|
"maxItems": 3,
|
|
"items": {
|
|
"type": "number",
|
|
"minimum": -2,
|
|
"maximum": 2
|
|
}
|
|
},
|
|
"supportId": {
|
|
"enum": ["source", "table", "none"]
|
|
}
|
|
}
|
|
},
|
|
"SceneContext": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["version", "sceneId", "source", "units", "frame", "object", "base", "yaw"],
|
|
"properties": {
|
|
"version": {
|
|
"const": "lekiwi-language-v2"
|
|
},
|
|
"sceneId": {
|
|
"const": "lekiwi-language-scene-v2"
|
|
},
|
|
"source": {
|
|
"const": "mujoco-ground-truth"
|
|
},
|
|
"units": {
|
|
"const": "SI"
|
|
},
|
|
"frame": {
|
|
"const": "world-z-up"
|
|
},
|
|
"object": {
|
|
"$ref": "#/$defs/Position"
|
|
},
|
|
"base": {
|
|
"$ref": "#/$defs/Position"
|
|
},
|
|
"yaw": {
|
|
"type": "number",
|
|
"minimum": -3.142,
|
|
"maximum": 3.142
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|