{ "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 } }