133 lines
4.0 KiB
JSON
133 lines
4.0 KiB
JSON
{
|
|
"boundaries": {
|
|
"fixed_iteration_limit": "verified",
|
|
"invalid_DH_nonfinite": "SIM_KIN_ERR_NONFINITE verified",
|
|
"state_hash": "native/WASM identical after 1e-9 quantization"
|
|
},
|
|
"configuration_candidates": {
|
|
"melfa": {
|
|
"dh_source": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa_dh.hal",
|
|
"kinematics": "genserkins",
|
|
"path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini",
|
|
"scan": true
|
|
},
|
|
"puma560": {
|
|
"dh_source": "linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal",
|
|
"kinematics": "genserkins",
|
|
"path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini",
|
|
"scan": true
|
|
}
|
|
},
|
|
"dh_contract": {
|
|
"alpha_units": "radians from HAL pins",
|
|
"joint_count": 6,
|
|
"joint_units": "degrees at public ABI, radians internally",
|
|
"melfa_has_alpha_and_d": true,
|
|
"parameters": [
|
|
"A-0..5",
|
|
"ALPHA-0..5",
|
|
"D-0..5"
|
|
],
|
|
"puma_has_alpha_and_d": true
|
|
},
|
|
"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": "fc6c23f67b2a14b58735fa60ed884a5a73815c3efb26f1b4d0de427e882d67b8",
|
|
"samples": {
|
|
"byte_identical_json": true,
|
|
"native": {
|
|
"inverse": [
|
|
0.0,
|
|
10.0,
|
|
-20.0,
|
|
29.999999999,
|
|
15.0,
|
|
-9.999999999
|
|
],
|
|
"iterations": 0,
|
|
"pose": [
|
|
619.051467462,
|
|
30.4112378,
|
|
-349.855537721
|
|
],
|
|
"residual": 0.0,
|
|
"state_hash": 13985782206955965200
|
|
},
|
|
"wasm": {
|
|
"inverse": [
|
|
0.0,
|
|
10.0,
|
|
-20.0,
|
|
29.999999999,
|
|
15.0,
|
|
-9.999999999
|
|
],
|
|
"iterations": 0,
|
|
"pose": [
|
|
619.051467462,
|
|
30.4112378,
|
|
-349.855537721
|
|
],
|
|
"residual": 0.0,
|
|
"state_hash": 13985782206955965200
|
|
}
|
|
},
|
|
"schema": "genser-kinematics-report.v1",
|
|
"solver": {
|
|
"convergence_tolerance": 1e-07,
|
|
"forward": "Craig DH homogeneous product",
|
|
"inverse": "fixed-zero seed damped numerical Jacobian with 1e-4 degree finite difference",
|
|
"iterations": 0,
|
|
"max_iterations": 200,
|
|
"nonconvergence": "SIM_KIN_ERR_SINGULAR after fixed iteration limit",
|
|
"residual": 0.0
|
|
},
|
|
"source_records": {
|
|
"functions": {
|
|
"path": "linuxcnc/src/emc/kinematics/genserfuncs.c",
|
|
"sha256": "e4b775e93b973a4faae873c81a95d7d8361fe5c5c59ea81e362a5f900a1e8781"
|
|
},
|
|
"header": {
|
|
"path": "wasm-core/include/sim_kinematics.h",
|
|
"sha256": "5fd01043d705486b0d365e36109c3b0e0d39f220c2cec313b5b747dca06148bc"
|
|
},
|
|
"implementation": {
|
|
"path": "wasm-core/src/sim_kinematics.c",
|
|
"sha256": "41fc146ab88a623b5bc6afbba1fc0d12434689c737426da12fcd297162672749"
|
|
},
|
|
"melfa_config": {
|
|
"path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa.ini",
|
|
"sha256": "7dc7a3db58ca7f7ddba11fe08f691cd7658564be2a0b872d9087ee7b392e45c7"
|
|
},
|
|
"melfa_dh": {
|
|
"path": "linuxcnc/configs/sim/axis/vismach/melfa-sim/melfa_dh.hal",
|
|
"sha256": "0d943182e37da99ae99db53f3dd464cb9b62b17d4cabe56c35c0c27b43bf68c6"
|
|
},
|
|
"puma_config": {
|
|
"path": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini",
|
|
"sha256": "2bb881ed6c5662282977accac29bfd6c4efc18e572cbcb8a31c134677012cf4c"
|
|
},
|
|
"puma_dh": {
|
|
"path": "linuxcnc/configs/sim/axis/vismach/puma/puma560_dh.hal",
|
|
"sha256": "23758eb7a6a4abe116e1de88140d04e6c9a910d1c378f019d76843a5a3fb6141"
|
|
},
|
|
"source": {
|
|
"path": "linuxcnc/src/emc/kinematics/genserkins.c",
|
|
"sha256": "cbb87b9c21f9f5e1d6a3c5bd333f72a7b1b4f1618a21b32d4b34bc621b43e075"
|
|
},
|
|
"test": {
|
|
"path": "wasm-core/tests/sim_kinematics_test.c",
|
|
"sha256": "6c803de9aeb91499cef391620f17c7da69ee78a873b43b0ba9fa508fd096f31a"
|
|
}
|
|
},
|
|
"status": "partial"
|
|
}
|