{ "configuration_candidate": { "coordinates": "XYZABC", "hal_geometry": { "base": [ -22.95, 13.25, 0.0, 22.95, 13.25, 0.0, 22.95, 13.25, 0.0, 0.0, -26.5, 0.0, 0.0, -26.5, 0.0, -22.95, 13.25, 0.0 ], "platform": [ -1.0, 11.5, 0.0, 1.0, 11.5, 0.0, 10.459, -4.884, 0.0, 9.459, -6.616, 0.0, -9.459, -6.616, 0.0, -10.459, -4.884, 0.0 ] }, "hal_pins": [ "last-iterations", "max-iterations", "limit-iterations", "max-error", "convergence-criterion", "fwd-kins-fail", "x", "y", "z", "a", "b", "c" ], "joints": 6, "kinematics": "genhexkins", "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", "scan": true }, "geometry": { "base_points": [ [ -22.95, 13.25, 0.0 ], [ 22.95, 13.25, 0.0 ], [ 22.95, 13.25, 0.0 ], [ 0.0, -26.5, 0.0 ], [ 0.0, -26.5, 0.0 ], [ -22.95, 13.25, 0.0 ] ], "platform_points": [ [ -1.0, 11.5, 0.0 ], [ 1.0, 11.5, 0.0 ], [ 10.459, -4.884, 0.0 ], [ 9.459, -6.616, 0.0 ], [ -9.459, -6.616, 0.0 ], [ -10.459, -4.884, 0.0 ] ], "struts": 6, "units": "configuration units; XYZ linear and ABC degrees" }, "implementation_status": "verified", "mapping": { "coordinates": "XYZABC", "extra_joint_policy": "rejected", "joint_semantics": [ "strut-0", "strut-1", "strut-2", "strut-3", "strut-4", "strut-5" ], "kinematics_joint_count": 6 }, "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 six-leg pose", "alternate initial 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": "992b96bae770789e6013cfffaeb3c47d8ecfde24d7abe974987e66250921ea78", "samples": { "byte_identical_json": true, "native": { "boundaries": { "alternate_branch": 1, "alternate_pose": [ 10.0, -5.0, -60.0 ], "alternate_status": 0, "branch": 0, "iteration_limit": -702, "iterations": 14, "limit_error": -702, "max_error": -702, "nonpositive": -702, "residual": 8.57e-10, "singular": -704 }, "genhex": { "inverse": [ 68.274402001, 63.00792855, 63.783820692, 65.475127133, 60.456723205, 68.231500501 ], "iterations": 14, "pose": [ 10.0, -5.0, 60.0, 4.999999999, -3.000000001, 10.0 ], "residual": 8.57e-10, "state_hash": 11890997469032613683 } }, "state_hash_identical": true, "wasm": { "boundaries": { "alternate_branch": 1, "alternate_pose": [ 10.0, -5.0, -60.0 ], "alternate_status": 0, "branch": 0, "iteration_limit": -702, "iterations": 14, "limit_error": -702, "max_error": -702, "nonpositive": -702, "residual": 8.57e-10, "singular": -704 }, "genhex": { "inverse": [ 68.274402001, 63.00792855, 63.783820692, 65.475127133, 60.456723205, 68.231500501 ], "iterations": 14, "pose": [ 10.0, -5.0, 60.0, 4.999999999, -3.000000001, 10.0 ], "residual": 8.57e-10, "state_hash": 11890997469032613683 } } }, "schema": "genhex-kinematics-report.v1", "solver": { "alternate_seed_flag": "SIM_KIN_GENHEX_ALTERNATE_SEED bit 1", "default_convergence_tolerance": 1e-09, "default_iteration_limit": 120, "default_max_error": 500.0, "forward": "Newton-Raphson 6x6 Jacobian", "inverse": "closed-form six strut lengths", "seed": [ 0.0, 0.0, 50.0, 0.0, 0.0, 0.0 ] }, "source_records": { "config": { "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", "sha256": "362654b77bcaf5c87c3aa14c12684f516cbd635b6d582a68b05fcbd8299822ea" }, "hal": { "path": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/kinematics.hal", "sha256": "6dd6d63e0403dcc0c82b43790eaa5b4a4d639c5a02391ac1dcd5673969c4ec39" }, "header": { "path": "linuxcnc/src/emc/kinematics/genhexkins.h", "sha256": "580a2e1703a5c0efb683b4a26f805af434edcfe9d1ade7890e44307f8b0b236c" }, "implementation": { "path": "wasm-core/src/sim_kinematics.c", "sha256": "6abae835c16feb27ec1dc28a9ea5384f0bc5190217ba04a4997048d83066b905" }, "kinematics_header": { "path": "wasm-core/include/sim_kinematics.h", "sha256": "939d4088d9e7120e4a405be154eb3d98cd4e5925fc27d47641c115624c1bd994" }, "source": { "path": "linuxcnc/src/emc/kinematics/genhexkins.c", "sha256": "8df3d8bd812e040a06bc29ea91625fd143bacf26903b106ae6700430aca7f6b9" }, "test": { "path": "wasm-core/tests/sim_kinematics_test.c", "sha256": "c9e4d20973c6a487787504bd5de9a73829f53d8bbfd35f91e72c6c62c76f191e" } }, "status": "partial", "workspace_and_boundaries": { "alternate_seed": [ 10.0, -5.0, -60.0 ], "iteration_limit_error": -702, "iterations": 14, "joint_limit_error": -702, "max_error_boundary": -702, "nominal": { "inverse": [ 68.274402001, 63.00792855, 63.783820692, 65.475127133, 60.456723205, 68.231500501 ], "iterations": 14, "pose": [ 10.0, -5.0, 60.0, 4.999999999, -3.000000001, 10.0 ], "residual": 8.57e-10, "state_hash": 11890997469032613683 }, "nonpositive_joint_error": -702, "residual": 8.57e-10, "singular_jacobian_error": -704 } }