feat: release v1.0.1 CADWorld 网站与 LeKiwi 智能抓放
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
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 验收仍待用户凭据。
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,266 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://mujoco.local/contracts/lekiwi-agent-v1.schema.json",
|
||||
"title": "LeKiwi agent v1: SI ground truth and constrained decisions",
|
||||
"$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-agent-v1" },
|
||||
"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": [
|
||||
"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-agent-v1" },
|
||||
"objectId": { "const": "block" },
|
||||
"goalId": { "const": "placement" },
|
||||
"summary": { "type": "string", "minLength": 1, "maxLength": 512 },
|
||||
"steps": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 11,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["skill", "precondition", "onFailure"],
|
||||
"properties": {
|
||||
"skill": {
|
||||
"enum": [
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"onFailure": { "enum": ["retry", "replan", "stop"] }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"JevDecision": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["version", "choice", "grasp", "diagnosis", "recovery"],
|
||||
"properties": {
|
||||
"version": { "const": "lekiwi-agent-v1" },
|
||||
"choice": {
|
||||
"enum": [
|
||||
"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"] }
|
||||
}
|
||||
},
|
||||
"SkillResult": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["version", "skill", "status", "code", "evidenceSequence"],
|
||||
"properties": {
|
||||
"version": { "const": "lekiwi-agent-v1" },
|
||||
"skill": {
|
||||
"enum": [
|
||||
"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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"id": "lekiwi-pick-place-v1",
|
||||
"robotId": "lekiwi-v1",
|
||||
"sourceZipSha256": "a10ac577ea49cdf87f324f3f6e9a7a887a1e3c0254ae638059711fef9e385b04",
|
||||
"units": "SI",
|
||||
"frame": "world-z-up",
|
||||
"object": { "id": "block", "halfSize": 0.018, "mass": 0.05, "position": [0.257, 0.015, 0.128] },
|
||||
"goal": { "id": "placement", "position": [0.257, 0.615, 0.128] },
|
||||
"supportHeight": 0.11,
|
||||
"supportHalfSize": [0.045, 0.055, 0.055],
|
||||
"tcpSite": "__agent_tcp",
|
||||
"tcpOffset": [-0.01, 0.037, -0.081],
|
||||
"pregraspHeight": 0.195,
|
||||
"carryHeight": 0.205,
|
||||
"retreatHeight": 0.223,
|
||||
"baseTranslation": [0, 0.6],
|
||||
"controlDt": 0.02,
|
||||
"armSpeed": 0.35,
|
||||
"armAcceleration": 1.0,
|
||||
"armTrackingError": 0.15,
|
||||
"armStallError": 0.14,
|
||||
"armStallSpeed": 0.02,
|
||||
"armStallDuration": 0.75,
|
||||
"gripperOpeningRate": 0.5,
|
||||
"baseSpeed": 0.04,
|
||||
"baseAcceleration": 0.3,
|
||||
"yawSpeed": 0.15,
|
||||
"yawAcceleration": 0.8,
|
||||
"jointSpeedStop": 2.0,
|
||||
"fingerForceMin": 0.2,
|
||||
"graspStableTime": 0.15,
|
||||
"liftMin": 0.045,
|
||||
"relativeDriftMax": 0.012,
|
||||
"transportMin": 0.5,
|
||||
"placementTolerance": 0.04,
|
||||
"placementSpeedMax": 0.05,
|
||||
"retreatMin": 0.09,
|
||||
"placementStableTime": 0.5,
|
||||
"episodeTimeout": 70,
|
||||
"frozenSeeds": [
|
||||
{ "id": 0, "offset": [0, 0] },
|
||||
{ "id": 1, "offset": [-0.002, 0] },
|
||||
{ "id": 2, "offset": [0.002, 0] },
|
||||
{ "id": 3, "offset": [0, -0.002] },
|
||||
{ "id": 4, "offset": [0, 0.002] }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"id": "mobile-manipulator-v1",
|
||||
"observationSize": 68,
|
||||
"actionSize": 12,
|
||||
"maxArmJoints": 8,
|
||||
"stateSize": 54,
|
||||
"controlDt": 0.02,
|
||||
"positionScale": 2,
|
||||
"linearVelocityScale": 2,
|
||||
"angularVelocityScale": 4,
|
||||
"jointVelocityScale": 4,
|
||||
"objectHalfSize": 0.018,
|
||||
"objectStart": [0.25, 0, 0.019],
|
||||
"goalStart": [0.55, 0.15, 0.019],
|
||||
"liftHeight": 0.08,
|
||||
"graspDistance": 0.09,
|
||||
"goalTolerance": 0.04,
|
||||
"settleSpeed": 0.05,
|
||||
"releaseOpening": 0.65,
|
||||
"settleSteps": 10,
|
||||
"maxSteps": 1000,
|
||||
"reachGain": 8,
|
||||
"transportGain": 4,
|
||||
"reachWeight": 0.1,
|
||||
"liftWeight": 0.3,
|
||||
"transportWeight": 0.5,
|
||||
"successBonus": 20
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "mobile-manipulator-v2",
|
||||
"actionSemantics": "rate-limited-position-target-v1",
|
||||
"observationSize": 92,
|
||||
"actionSize": 12,
|
||||
"maxArmJoints": 8,
|
||||
"stateSize": 54,
|
||||
"controlDt": 0.02,
|
||||
"positionScale": 2,
|
||||
"linearVelocityScale": 2,
|
||||
"angularVelocityScale": 4,
|
||||
"jointVelocityScale": 4,
|
||||
"objectHalfSize": 0.018,
|
||||
"objectStart": [0.7, 0, 0.019],
|
||||
"goalStart": [0.95, 0.15, 0.019],
|
||||
"liftHeight": 0.08,
|
||||
"graspDistance": 0.09,
|
||||
"goalTolerance": 0.04,
|
||||
"settleSpeed": 0.05,
|
||||
"releaseOpening": 0.65,
|
||||
"settleSteps": 10,
|
||||
"maxSteps": 1000,
|
||||
"reachGain": 8,
|
||||
"transportGain": 4,
|
||||
"reachWeight": 0.1,
|
||||
"liftWeight": 0.3,
|
||||
"transportWeight": 0.5,
|
||||
"successBonus": 20,
|
||||
"baseSpeedLimits": [0.12, 0.12, 0.5],
|
||||
"baseAccelerationLimits": [0.3, 0.3, 0.8],
|
||||
"armSpeedLimit": 0.5,
|
||||
"armAccelerationLimit": 1.5,
|
||||
"armTrackingError": 0.2,
|
||||
"jointSpeedStop": 2,
|
||||
"gripperOpeningRate": 0.5,
|
||||
"actionRateWeight": 0.005,
|
||||
"jointVelocityWeight": 0.01,
|
||||
"navigationOffset": [0.3, 0, 0],
|
||||
"navigationTolerance": 0.06,
|
||||
"navigationYawTolerance": 0.2,
|
||||
"navigationSpeedTolerance": 0.035,
|
||||
"navigationProgressWeight": 4,
|
||||
"navigationSuccessRate": 0.8,
|
||||
"safetyPenalty": 5
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
[
|
||||
{
|
||||
"id": "lekiwi-v1",
|
||||
"label": "LeKiwi v1 · 原始机械臂",
|
||||
"recipe": "lekiwi-v1",
|
||||
"baseBodyName": "base_plate_layer1-v5",
|
||||
"baseJointName": "__platform_base_freejoint__",
|
||||
"baseJoints": ["base_left_wheel", "base_back_wheel", "base_right_wheel"],
|
||||
"baseActuators": ["base_left_wheel_servo", "base_back_wheel_servo", "base_right_wheel_servo"],
|
||||
"baseMix": [
|
||||
[-17.32050807568877, 10, 2.5],
|
||||
[0, -20, 2.5],
|
||||
[17.32050807568877, 10, 2.5]
|
||||
],
|
||||
"baseLimits": [0.2, 0.2, 1.0471975511965976],
|
||||
"wheelLimit": 4.601942363656923,
|
||||
"armJoints": [
|
||||
{
|
||||
"name": "arm_shoulder_pan",
|
||||
"min": -1.57,
|
||||
"max": 1.57,
|
||||
"neutral": 0,
|
||||
"mode": "position",
|
||||
"velocityLimit": 2
|
||||
},
|
||||
{
|
||||
"name": "arm_shoulder_lift",
|
||||
"min": -1.4,
|
||||
"max": 1.4,
|
||||
"neutral": 0,
|
||||
"mode": "position",
|
||||
"velocityLimit": 2
|
||||
},
|
||||
{
|
||||
"name": "arm_elbow_flex",
|
||||
"min": -1.4,
|
||||
"max": 1.4,
|
||||
"neutral": 0,
|
||||
"mode": "position",
|
||||
"velocityLimit": 2
|
||||
},
|
||||
{
|
||||
"name": "arm_wrist_flex",
|
||||
"min": -1.4,
|
||||
"max": 1.4,
|
||||
"neutral": 0,
|
||||
"mode": "position",
|
||||
"velocityLimit": 2
|
||||
},
|
||||
{
|
||||
"name": "arm_wrist_roll",
|
||||
"min": -3.14,
|
||||
"max": 3.14,
|
||||
"neutral": 0,
|
||||
"mode": "position",
|
||||
"velocityLimit": 2
|
||||
}
|
||||
],
|
||||
"armActuators": [
|
||||
"arm_shoulder_pan_servo",
|
||||
"arm_shoulder_lift_servo",
|
||||
"arm_elbow_flex_servo",
|
||||
"arm_wrist_flex_servo",
|
||||
"arm_wrist_roll_servo"
|
||||
],
|
||||
"gripperJoint": "arm_gripper",
|
||||
"gripperActuators": [{ "name": "arm_gripper_servo", "closed": -0.18, "open": 0.9 }],
|
||||
"gripperClosed": -0.18,
|
||||
"gripperOpen": 0.9,
|
||||
"eefBodyName": "Wrist_Roll_08c-v1",
|
||||
"eefSiteName": "__mm_eef",
|
||||
"eefOffset": [0, 0.035, -0.065]
|
||||
},
|
||||
{
|
||||
"id": "lekiwi-bundle",
|
||||
"label": "robot_urdf_bundle · Link1–Link4 机械臂",
|
||||
"recipe": "lekiwi-bundle",
|
||||
"baseBodyName": "base_plate_layer1-v5",
|
||||
"baseJointName": "__platform_base_freejoint__",
|
||||
"baseJoints": ["base_left_wheel", "base_back_wheel", "base_right_wheel"],
|
||||
"baseActuators": ["base_left_wheel_servo", "base_back_wheel_servo", "base_right_wheel_servo"],
|
||||
"baseMix": [
|
||||
[-17.32050807568877, 10, 2.5],
|
||||
[0, -20, 2.5],
|
||||
[17.32050807568877, 10, 2.5]
|
||||
],
|
||||
"baseLimits": [0.2, 0.2, 1.0471975511965976],
|
||||
"wheelLimit": 4.601942363656923,
|
||||
"armJoints": [
|
||||
{
|
||||
"name": "Link1",
|
||||
"min": -1.1,
|
||||
"max": 1.1,
|
||||
"neutral": 0,
|
||||
"mode": "position",
|
||||
"velocityLimit": 2
|
||||
},
|
||||
{
|
||||
"name": "Link2",
|
||||
"min": -0.3,
|
||||
"max": 1.1,
|
||||
"neutral": 0,
|
||||
"mode": "position",
|
||||
"velocityLimit": 2
|
||||
},
|
||||
{
|
||||
"name": "Link3",
|
||||
"min": -1,
|
||||
"max": 1,
|
||||
"neutral": 0,
|
||||
"mode": "position",
|
||||
"velocityLimit": 2
|
||||
},
|
||||
{
|
||||
"name": "Link4",
|
||||
"min": -1.1,
|
||||
"max": 0.3,
|
||||
"neutral": 0,
|
||||
"mode": "position",
|
||||
"velocityLimit": 2
|
||||
},
|
||||
{
|
||||
"name": "arm_wrist_roll",
|
||||
"min": -3.14,
|
||||
"max": 3.14,
|
||||
"neutral": 0,
|
||||
"mode": "position",
|
||||
"velocityLimit": 2
|
||||
}
|
||||
],
|
||||
"armActuators": [
|
||||
"Link1_servo",
|
||||
"Link2_servo",
|
||||
"Link3_servo",
|
||||
"Link4_servo",
|
||||
"arm_wrist_roll_servo"
|
||||
],
|
||||
"gripperJoint": "arm_gripper",
|
||||
"gripperActuators": [{ "name": "arm_gripper_servo", "closed": -0.18, "open": 0.9 }],
|
||||
"gripperClosed": -0.18,
|
||||
"gripperOpen": 0.9,
|
||||
"eefBodyName": "Wrist_Roll_08c-v1",
|
||||
"eefSiteName": "__mm_eef",
|
||||
"eefOffset": [0, 0.035, -0.065]
|
||||
}
|
||||
]
|
||||
@@ -64,7 +64,7 @@
|
||||
"reset": { "type": "boolean" },
|
||||
"lockstep": { "const": false },
|
||||
"cameras": { "const": false },
|
||||
"training": { "const": false }
|
||||
"training": { "type": "boolean" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user