Files
linuxcncWebWASM/coverage/pentapod-kinematics.report.json

249 lines
5.8 KiB
JSON

{
"configuration_candidate": {
"coordinates": "XYZAB",
"hal_geometry": {
"base": [
-418.0,
500.0,
-140.0,
418.0,
500.0,
-140.0,
0.0,
500.0,
-310.0,
418.0,
500.0,
510.0,
-418.0,
500.0,
510.0
],
"effector_radius": [
80.3,
80.3,
80.3,
80.3,
80.3
],
"effector_z": [
87.0,
114.5,
140.5,
232.5,
258.5
]
},
"hal_pins": [
"last-iterations",
"max-iterations",
"limit-iterations",
"max-error",
"convergence-criterion",
"tool-offset"
],
"joints": 5,
"kinematics": "pentakins",
"path": "linuxcnc/configs/sim/axis/pentapod/pentapod.ini",
"scan": true
},
"geometry": {
"orientation": "roll/pitch only; yaw fixed at zero",
"struts": 5,
"units": "configuration units; XYZ linear and AB degrees"
},
"implementation_status": "verified",
"mapping": {
"coordinates": "XYZAB",
"extra_joint_policy": "rejected",
"joint_semantics": [
"strut-0",
"strut-1",
"strut-2",
"strut-3",
"strut-4"
],
"kinematics_joint_count": 5
},
"native_wasm": {
"native_command": "build-native/sim_kinematics_test",
"status": "passed",
"wasm_command": "node build-wasm/sim_kinematics_wasm_test.js"
},
"oracle": {
"blocked_samples": [
"nominal five-strut pose",
"negative-z seed",
"nonpositive strut",
"iteration limit",
"maximum error",
"singular Jacobian",
"joint limit"
],
"reason": "linuxcnc/unit_tests/kinematics is absent from the locked source",
"status": "blocked"
},
"report_sha256": "b1d1cdc8fbd64b64ffa88023c77c7ce097952966353567b023c0667a8dc1be75",
"samples": {
"byte_identical_json": true,
"native": {
"boundaries": {
"alternate_branch": 0,
"alternate_pose": [
0.0,
0.0,
0.0
],
"alternate_status": -702,
"branch": 0,
"iteration_limit": -702,
"iterations": 1,
"limit_error": -702,
"max_error": -702,
"nonpositive": -702,
"residual": 0.0,
"singular": -704
},
"pentapod": {
"inverse": [
619.814203778,
655.78680467,
750.465994974,
351.035577947,
327.336726304
],
"iterations": 1,
"pose": [
0.0,
500.0,
300.0,
2.0,
-3.0
],
"residual": 0.0,
"state_hash": 10088895819155863850
}
},
"state_hash_identical": true,
"wasm": {
"boundaries": {
"alternate_branch": 0,
"alternate_pose": [
0.0,
0.0,
0.0
],
"alternate_status": -702,
"branch": 0,
"iteration_limit": -702,
"iterations": 1,
"limit_error": -702,
"max_error": -702,
"nonpositive": -702,
"residual": 0.0,
"singular": -704
},
"pentapod": {
"inverse": [
619.814203778,
655.78680467,
750.465994974,
351.035577947,
327.336726304
],
"iterations": 1,
"pose": [
0.0,
500.0,
300.0,
2.0,
-3.0
],
"residual": 0.0,
"state_hash": 10088895819155863850
}
}
},
"schema": "pentapod-kinematics-report.v1",
"solver": {
"alternate_seed_flag": "SIM_KIN_GENHEX_ALTERNATE_SEED bit 1; negative-z seed is explicitly bounded",
"default_convergence_tolerance": 1e-09,
"default_iteration_limit": 120,
"default_max_error": 1000.0,
"forward": "Newton-Raphson 5x5 numerical Jacobian",
"inverse": "closed-form radial/z strut lengths",
"seed": [
0.0,
500.0,
300.0,
0.0,
0.0
]
},
"source_records": {
"config": {
"path": "linuxcnc/configs/sim/axis/pentapod/pentapod.ini",
"sha256": "0fb210122ab482087d3a95e5e7487baecb84c3260dca1769970f4c19b2ad0618"
},
"hal": {
"path": "linuxcnc/configs/sim/axis/pentapod/kinematics.hal",
"sha256": "cf56ea1c1fe2b49d1af6a771bd73ea43ecc7a37991717b68a1e017c101bc6ae2"
},
"header": {
"path": "linuxcnc/src/emc/kinematics/pentakins.h",
"sha256": "af8551454177bbcc85e4e17377e059573ab8c15dc022de2a4be9b70dead74e2d"
},
"implementation": {
"path": "wasm-core/src/sim_kinematics.c",
"sha256": "424873c8e5d3d5b45daf616d95a58157c6dbcbbee9f4cc512b58bfb2672c6145"
},
"kinematics_header": {
"path": "wasm-core/include/sim_kinematics.h",
"sha256": "0c6d955717982e9d1a24d1240a1c657fc37dfe166c5738d3ee23878e46b2a98d"
},
"source": {
"path": "linuxcnc/src/emc/kinematics/pentakins.c",
"sha256": "1b385c2ab3a1bcb106d1d22a2dfe14519dba9c4a5df4cb31071a180845cda4c6"
},
"test": {
"path": "wasm-core/tests/sim_kinematics_test.c",
"sha256": "3bda403d3af592dcc69ee9b1f3c96dda97b952f827a1c9ce5393e01cd357c403"
}
},
"status": "partial",
"workspace_and_boundaries": {
"alternate_seed": [
0.0,
0.0,
0.0
],
"alternate_seed_error": -702,
"iteration_limit_error": -702,
"iterations": 1,
"joint_limit_error": -702,
"max_error_boundary": -702,
"nominal": {
"inverse": [
619.814203778,
655.78680467,
750.465994974,
351.035577947,
327.336726304
],
"iterations": 1,
"pose": [
0.0,
500.0,
300.0,
2.0,
-3.0
],
"residual": 0.0,
"state_hash": 10088895819155863850
},
"nonpositive_joint_error": -702,
"residual": 0.0,
"singular_jacobian_error": -704
}
}