230 lines
5.8 KiB
JSON
230 lines
5.8 KiB
JSON
{
|
|
"boundaries": {
|
|
"puma_unreachable_or_singular": "SIM_KIN_ERR_RANGE/SINGULAR verified",
|
|
"scara_unreachable": "SIM_KIN_ERR_RANGE verified",
|
|
"scorbot_unreachable": "SIM_KIN_ERR_RANGE verified",
|
|
"state_hash": "native/WASM identical after 1e-9 hash quantization"
|
|
},
|
|
"configuration_candidates": {
|
|
"puma": {
|
|
"coordinates": "XYZABC",
|
|
"joints": 6,
|
|
"kinematics": "pumakins",
|
|
"origin": "shipped",
|
|
"path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini",
|
|
"scan": true
|
|
},
|
|
"scara": {
|
|
"coordinates": "xyzcab",
|
|
"joints": 6,
|
|
"kinematics": "scarakins",
|
|
"origin": "shipped",
|
|
"path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini",
|
|
"scan": true
|
|
},
|
|
"scorbot": {
|
|
"coordinates": "XYZAB",
|
|
"joints": 5,
|
|
"kinematics": "scorbot-kins",
|
|
"origin": "workspace_derived_fixture; source has no shipped sim INI",
|
|
"path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini",
|
|
"scan": true
|
|
}
|
|
},
|
|
"geometry": {
|
|
"puma": {
|
|
"branches": [
|
|
"shoulder",
|
|
"elbow",
|
|
"wrist flip"
|
|
],
|
|
"parameters": {
|
|
"A2": 400.0,
|
|
"A3": 50.0,
|
|
"D3": 100.0,
|
|
"D4": 400.0,
|
|
"D6": 95.0
|
|
},
|
|
"singularity": "wrist t1/t2 threshold"
|
|
},
|
|
"scara": {
|
|
"branch": "elbow flag selects q1 sign",
|
|
"defaults": {
|
|
"D1": 490.0,
|
|
"D2": 340.0,
|
|
"D3": 50.0,
|
|
"D4": 250.0,
|
|
"D5": 50.0,
|
|
"D6": 50.0
|
|
},
|
|
"orientation": "C=a0+a1+a3"
|
|
},
|
|
"scorbot": {
|
|
"branch": "fixed elbow solution from source",
|
|
"controlled_point": "wrist J3/J4",
|
|
"links_mm": {
|
|
"L0_horizontal": 16.0,
|
|
"L0_vertical": 140.0,
|
|
"L1": 221.0,
|
|
"L2": 221.0
|
|
}
|
|
}
|
|
},
|
|
"implementation_status": "verified",
|
|
"native_wasm": {
|
|
"native_command": "build-native/sim_kinematics_test",
|
|
"status": "passed",
|
|
"wasm_command": "node build-wasm/sim_kinematics_wasm_test.js"
|
|
},
|
|
"oracle": {
|
|
"reason": "linuxcnc/unit_tests/kinematics is absent from the locked source",
|
|
"status": "blocked"
|
|
},
|
|
"report_sha256": "fad0d9058ca41776a07fd7b88d467b0d8f96135e036f0e887c9583c78a4f97ea",
|
|
"samples": {
|
|
"byte_identical_json": true,
|
|
"native": {
|
|
"puma": {
|
|
"inverse": [
|
|
10.0,
|
|
20.0,
|
|
-30.0,
|
|
40.0,
|
|
25.0,
|
|
-15.0
|
|
],
|
|
"pose": [
|
|
450.112320486,
|
|
207.114833215,
|
|
-612.180622409
|
|
],
|
|
"state_hash": 3161234248163340028
|
|
},
|
|
"scara": {
|
|
"inverse": [
|
|
-3.644300703,
|
|
40.0,
|
|
25.0,
|
|
-31.355699297,
|
|
5.0,
|
|
-3.0
|
|
],
|
|
"pose": [
|
|
590.460310444,
|
|
130.945742721,
|
|
465.0
|
|
],
|
|
"state_hash": 4515826253922604237
|
|
},
|
|
"scorbot": {
|
|
"inverse": [
|
|
25.0,
|
|
35.0,
|
|
-20.0,
|
|
10.0,
|
|
-5.0
|
|
],
|
|
"pose": [
|
|
366.786994761,
|
|
171.035584569,
|
|
191.173940759
|
|
],
|
|
"state_hash": 16037922903473574131
|
|
}
|
|
},
|
|
"wasm": {
|
|
"puma": {
|
|
"inverse": [
|
|
10.0,
|
|
20.0,
|
|
-30.0,
|
|
40.0,
|
|
25.0,
|
|
-15.0
|
|
],
|
|
"pose": [
|
|
450.112320486,
|
|
207.114833215,
|
|
-612.180622409
|
|
],
|
|
"state_hash": 3161234248163340028
|
|
},
|
|
"scara": {
|
|
"inverse": [
|
|
-3.644300703,
|
|
40.0,
|
|
25.0,
|
|
-31.355699297,
|
|
5.0,
|
|
-3.0
|
|
],
|
|
"pose": [
|
|
590.460310444,
|
|
130.945742721,
|
|
465.0
|
|
],
|
|
"state_hash": 4515826253922604237
|
|
},
|
|
"scorbot": {
|
|
"inverse": [
|
|
25.0,
|
|
35.0,
|
|
-20.0,
|
|
10.0,
|
|
-5.0
|
|
],
|
|
"pose": [
|
|
366.786994761,
|
|
171.035584569,
|
|
191.173940759
|
|
],
|
|
"state_hash": 16037922903473574131
|
|
}
|
|
}
|
|
},
|
|
"schema": "robot-kinematics-report.v1",
|
|
"source_records": {
|
|
"header": {
|
|
"path": "wasm-core/include/sim_kinematics.h",
|
|
"sha256": "db16293ec3645559a0be71a40963693f3d1e3f5fdedc92902be19b47f653dfa8"
|
|
},
|
|
"implementation": {
|
|
"path": "wasm-core/src/sim_kinematics.c",
|
|
"sha256": "7a77915c59f190bcbe5c93d8f53498745bfcf978c167ba8878a21b914f9401fd"
|
|
},
|
|
"puma_config": {
|
|
"path": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini",
|
|
"sha256": "26ee23af27aa03d2da89b842992802ece2423195a5ac0960b28bb751871d74f6"
|
|
},
|
|
"puma_params": {
|
|
"path": "linuxcnc/configs/sim/axis/vismach/puma/puma_dh.hal",
|
|
"sha256": "b57992601bf614c26e53c8add3c3aac0a0df79929dd64f897a19630437d1c181"
|
|
},
|
|
"puma_source": {
|
|
"path": "linuxcnc/src/emc/kinematics/pumakins.c",
|
|
"sha256": "5d473d34beacd696fc34719658e1622a1228494fe6596e277f4c34a51dfb91b2"
|
|
},
|
|
"scara_config": {
|
|
"path": "linuxcnc/configs/sim/axis/vismach/scara/scara.ini",
|
|
"sha256": "602e02bb6d320b728d9ae15904a5d229ea1a31e932c18e9018b45be007d695ce"
|
|
},
|
|
"scara_source": {
|
|
"path": "linuxcnc/src/emc/kinematics/scarakins.c",
|
|
"sha256": "f6e37f7cf5b932fc27378ab9ed03ef71c2010aa38f883980a1b6c6b9265cf9f9"
|
|
},
|
|
"scorbot_config": {
|
|
"path": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini",
|
|
"sha256": "4e8edd061a033d45e1e71c56bdd521ee10d3f60def3be020bbd437fc49271343"
|
|
},
|
|
"scorbot_source": {
|
|
"path": "linuxcnc/src/emc/kinematics/scorbot-kins.c",
|
|
"sha256": "89badd55ec168139143c58f67c64dbdb9e5b411c3b847404beaf79ba8c591b5d"
|
|
},
|
|
"test": {
|
|
"path": "wasm-core/tests/sim_kinematics_test.c",
|
|
"sha256": "ceeb8b4100d034d76e70ce675d78b2d62c51e8e70be2205a9c8ae02e105a6aa6"
|
|
}
|
|
},
|
|
"status": "partial"
|
|
}
|