{ "configuration_candidate": { "coordinates": "XYZ", "hal_library": "linuxcnc/lib/hallib/tripodsim.hal", "joints": 3, "kinematics": "tripodkins", "path": "linuxcnc/configs/sim/tklinuxcnc/tripod.ini", "scan": true }, "geometry": { "base_A": [ 0.0, 0.0, 0.0 ], "base_B": [ 10.0, 0.0, 0.0 ], "base_C": [ 5.0, 7.071, 0.0 ], "hal_parameters": { "Bx": 10.0, "Cx": 5.0, "Cy": 7.071 }, "joint_semantics": [ "AD", "BD", "CD" ] }, "implementation_status": "verified", "mapping": { "axis_joint_mapping": { "X": 0, "Y": 1, "Z": 2 }, "coordinates": "XYZ", "home_pose": [ 0.0, 0.0, 1.0 ], "kinematics_joint_count": 3 }, "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 above-root", "alternate below-root", "triangle-inequality no-solution", "base-plane singular", "joint-limit", "degenerate base geometry" ], "reason": "linuxcnc/unit_tests/kinematics is absent from the locked source", "status": "blocked" }, "report_sha256": "e5fe7526d1dcff1f8327c1389809affb5ac4cf1913e4b428ec4420e6ae957070", "samples": { "byte_identical_json": true, "native": { "boundaries": { "alternate_branch": 1, "alternate_pose": [ 2.0, 3.0, -4.0 ], "alternate_status": 0, "branch": 0, "geometry_error": -703, "iterations": 0, "limit_error": -702, "no_solution": -702, "singular": -704 }, "tripod": { "inverse": [ 5.385164807, 9.433981132, 6.447715952 ], "pose": [ 2.0, 3.0, 4.0 ], "state_hash": 7469146853106540736 } }, "state_hash_identical": true, "wasm": { "boundaries": { "alternate_branch": 1, "alternate_pose": [ 2.0, 3.0, -4.0 ], "alternate_status": 0, "branch": 0, "geometry_error": -703, "iterations": 0, "limit_error": -702, "no_solution": -702, "singular": -704 }, "tripod": { "inverse": [ 5.385164807, 9.433981132, 6.447715952 ], "pose": [ 2.0, 3.0, 4.0 ], "state_hash": 7469146853106540736 } } }, "schema": "tripod-kinematics-report.v1", "solver": { "alternate_branch": "Dz<0 when SIM_KIN_TRIPOD_BELOW_ROOT is set", "convergence_tolerance": 0.0, "default_branch": "Dz>0", "forward": "analytic trilateration", "inverse": "three Euclidean strut lengths", "iterations": 0 }, "source_records": { "config": { "path": "linuxcnc/configs/sim/tklinuxcnc/tripod.ini", "sha256": "8da7280a981d80e9b7d4b608a357fc87dbb9d83535636794e1ae97d5ebcb8f01" }, "hal": { "path": "linuxcnc/lib/hallib/tripodsim.hal", "sha256": "e8b341253823f5e2764b2e7c4cc630b557b89dad5e1f7698bbddc1d0b9679747" }, "header": { "path": "wasm-core/include/sim_kinematics.h", "sha256": "43e588f7c45c703970598e8e42ff5aae4b97a437eaff1d4cd6ad156bd204edc7" }, "implementation": { "path": "wasm-core/src/sim_kinematics.c", "sha256": "f15842a1dbf0cb33f071ee1e70715a85a1f3dec44c4facc220edd924f6ca352c" }, "source": { "path": "linuxcnc/src/emc/kinematics/tripodkins.c", "sha256": "0fb0876d2ab190e3bde69d3fe1ce0cebbb54adee2ddb4b05b929d7ca5cb3f31f" }, "test": { "path": "wasm-core/tests/sim_kinematics_test.c", "sha256": "00d9efc3c701ba2848535357f6027e6d9d4d19796a17be96e290ddc0babe2c5c" } }, "status": "partial", "workspace_and_boundaries": { "alternate_branch": 1, "alternate_pose": [ 2.0, 3.0, -4.0 ], "base_plane_singular_error": -704, "geometry_error": -703, "iterations": 0, "joint_limit_error": -702, "no_solution_error": -702, "nominal": { "inverse": [ 5.385164807, 9.433981132, 6.447715952 ], "pose": [ 2.0, 3.0, 4.0 ], "state_hash": 7469146853106540736 }, "root_branch": 0 } }