f3a8a38acd
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
web-platform-ci / Standalone decision service (no cloud credentials) (pull_request) Has been cancelled
web-platform-ci / TypeScript, lint, unit, build (pull_request) Has been cancelled
web-platform-ci / Playwright E2E (pull_request) Has been cancelled
lekiwi-compatibility / cpu-compatibility (pull_request) Has been cancelled
集成同源 BYOK 会话隔离、精简模型设置、官方订阅入口和 HTTPS 发布运维;保留本地训练/调参与控制能力。同步 npm 版本及 CHANGELOG,记录公网真实 API 验收仍待用户凭据。
111 lines
3.7 KiB
JSON
111 lines
3.7 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "urn:mujoco-web:robot:v1",
|
|
"description": "V1 numeric robot payloads. Descriptor semantics and action epoch/lease/sequence are additionally validated at runtime. JSON numbers must be finite. No camera, lockstep or training support.",
|
|
"oneOf": [
|
|
{ "$ref": "#/$defs/descriptor" },
|
|
{ "$ref": "#/$defs/action" },
|
|
{ "$ref": "#/$defs/observation" }
|
|
],
|
|
"$defs": {
|
|
"id": { "type": "string", "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,127}$" },
|
|
"counter": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 },
|
|
"values": {
|
|
"type": "object",
|
|
"minProperties": 1,
|
|
"maxProperties": 256,
|
|
"propertyNames": { "$ref": "#/$defs/id" },
|
|
"additionalProperties": { "type": "number" }
|
|
},
|
|
"channel": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["id", "unit", "mode", "min", "max"],
|
|
"properties": {
|
|
"id": { "$ref": "#/$defs/id" },
|
|
"unit": { "enum": ["rad", "rad/s", "m", "m/s", "ratio", "N", "N.m"] },
|
|
"mode": { "enum": ["position", "velocity", "effort", "opening"] },
|
|
"min": { "type": "number" },
|
|
"max": { "type": "number" }
|
|
}
|
|
},
|
|
"channels": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"maxItems": 256,
|
|
"items": { "$ref": "#/$defs/channel" }
|
|
},
|
|
"descriptor": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"protocolVersion",
|
|
"profileId",
|
|
"profileVersion",
|
|
"modelFingerprint",
|
|
"frame",
|
|
"actionChannels",
|
|
"observationChannels",
|
|
"capabilities"
|
|
],
|
|
"properties": {
|
|
"protocolVersion": { "const": 1 },
|
|
"profileId": { "$ref": "#/$defs/id" },
|
|
"profileVersion": { "type": "integer", "minimum": 1, "maximum": 9007199254740991 },
|
|
"modelFingerprint": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
|
|
"frame": { "const": "x-forward-y-left-z-up" },
|
|
"actionChannels": { "$ref": "#/$defs/channels" },
|
|
"observationChannels": { "$ref": "#/$defs/channels" },
|
|
"capabilities": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["reset", "lockstep", "cameras", "training"],
|
|
"properties": {
|
|
"reset": { "type": "boolean" },
|
|
"lockstep": { "const": false },
|
|
"cameras": { "const": false },
|
|
"training": { "type": "boolean" }
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"action": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["protocolVersion", "sessionId", "modelEpoch", "leaseId", "actionSeq", "values"],
|
|
"properties": {
|
|
"protocolVersion": { "const": 1 },
|
|
"sessionId": { "$ref": "#/$defs/id" },
|
|
"modelEpoch": { "$ref": "#/$defs/counter" },
|
|
"leaseId": { "$ref": "#/$defs/id" },
|
|
"actionSeq": { "type": "integer", "minimum": 1, "maximum": 9007199254740991 },
|
|
"values": { "$ref": "#/$defs/values" }
|
|
}
|
|
},
|
|
"observation": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"protocolVersion",
|
|
"sessionId",
|
|
"modelEpoch",
|
|
"sequence",
|
|
"simTime",
|
|
"appliedActionSeq",
|
|
"paused",
|
|
"values"
|
|
],
|
|
"properties": {
|
|
"protocolVersion": { "const": 1 },
|
|
"sessionId": { "$ref": "#/$defs/id" },
|
|
"modelEpoch": { "$ref": "#/$defs/counter" },
|
|
"sequence": { "$ref": "#/$defs/counter" },
|
|
"simTime": { "type": "number", "minimum": 0 },
|
|
"appliedActionSeq": { "$ref": "#/$defs/counter" },
|
|
"paused": { "type": "boolean" },
|
|
"values": { "$ref": "#/$defs/values" }
|
|
}
|
|
}
|
|
}
|
|
}
|