232 lines
5.5 KiB
JSON
232 lines
5.5 KiB
JSON
{
|
|
"abi_version": 1,
|
|
"context_id": "linuxcnc-2.10.0-pre0-wasm-m1-py-c1",
|
|
"contract_sha256": "3c338760a86122d25b76e5a27e26b9c79d8579e1ca96638ed932b8ca8e41283a",
|
|
"declared_functions": [
|
|
"sim_kinematics_forward",
|
|
"sim_kinematics_forward_ex",
|
|
"sim_kinematics_home",
|
|
"sim_kinematics_init",
|
|
"sim_kinematics_inverse",
|
|
"sim_kinematics_inverse_ex",
|
|
"sim_kinematics_state_hash",
|
|
"sim_kinematics_validate_pose"
|
|
],
|
|
"enums": {
|
|
"sim_kinematics_mode": [
|
|
{
|
|
"name": "SIM_KIN_MODE_DEFAULT",
|
|
"value": 0
|
|
},
|
|
{
|
|
"name": "SIM_KIN_MODE_IDENTITY",
|
|
"value": 1
|
|
},
|
|
{
|
|
"name": "SIM_KIN_MODE_FORWARD_ONLY",
|
|
"value": 2
|
|
},
|
|
{
|
|
"name": "SIM_KIN_MODE_INVERSE_ONLY",
|
|
"value": 3
|
|
},
|
|
{
|
|
"name": "SIM_KIN_MODE_BOTH",
|
|
"value": 4
|
|
}
|
|
],
|
|
"sim_kinematics_result": [
|
|
{
|
|
"name": "SIM_KIN_OK",
|
|
"value": 0
|
|
},
|
|
{
|
|
"name": "SIM_KIN_ERR_ARGUMENT",
|
|
"value": -700
|
|
},
|
|
{
|
|
"name": "SIM_KIN_ERR_NONFINITE",
|
|
"value": -701
|
|
},
|
|
{
|
|
"name": "SIM_KIN_ERR_RANGE",
|
|
"value": -702
|
|
},
|
|
{
|
|
"name": "SIM_KIN_ERR_CONFIGURATION",
|
|
"value": -703
|
|
},
|
|
{
|
|
"name": "SIM_KIN_ERR_SINGULAR",
|
|
"value": -704
|
|
},
|
|
{
|
|
"name": "SIM_KIN_ERR_UNKNOWN_TYPE",
|
|
"value": -705
|
|
},
|
|
{
|
|
"name": "SIM_KIN_ERR_UNSUPPORTED",
|
|
"value": -706
|
|
}
|
|
],
|
|
"sim_kinematics_type": [
|
|
{
|
|
"name": "SIM_KIN_TRIVKINS",
|
|
"value": 1
|
|
},
|
|
{
|
|
"name": "SIM_KIN_XYZAC_TRT",
|
|
"value": 2
|
|
},
|
|
{
|
|
"name": "SIM_KIN_XYZBC_TRT",
|
|
"value": 3
|
|
},
|
|
{
|
|
"name": "SIM_KIN_XYZBCW",
|
|
"value": 4
|
|
},
|
|
{
|
|
"name": "SIM_KIN_COREXY",
|
|
"value": 5
|
|
},
|
|
{
|
|
"name": "SIM_KIN_ROSE",
|
|
"value": 6
|
|
},
|
|
{
|
|
"name": "SIM_KIN_MAXKINS",
|
|
"value": 7
|
|
},
|
|
{
|
|
"name": "SIM_KIN_ROTATEKINS",
|
|
"value": 8
|
|
},
|
|
{
|
|
"name": "SIM_KIN_5AXISKINS",
|
|
"value": 9
|
|
},
|
|
{
|
|
"name": "SIM_KIN_SCARA",
|
|
"value": 10
|
|
},
|
|
{
|
|
"name": "SIM_KIN_PUMA",
|
|
"value": 11
|
|
},
|
|
{
|
|
"name": "SIM_KIN_SCORBOT",
|
|
"value": 12
|
|
},
|
|
{
|
|
"name": "SIM_KIN_GENSER",
|
|
"value": 13
|
|
}
|
|
]
|
|
},
|
|
"errors": {
|
|
"SIM_KIN_ERR_ARGUMENT": -700,
|
|
"SIM_KIN_ERR_CONFIGURATION": -703,
|
|
"SIM_KIN_ERR_NONFINITE": -701,
|
|
"SIM_KIN_ERR_RANGE": -702,
|
|
"SIM_KIN_ERR_SINGULAR": -704,
|
|
"SIM_KIN_ERR_UNKNOWN_TYPE": -705,
|
|
"SIM_KIN_ERR_UNSUPPORTED": -706,
|
|
"SIM_KIN_OK": 0
|
|
},
|
|
"exported_functions": [
|
|
"sim_kinematics_forward",
|
|
"sim_kinematics_forward_ex",
|
|
"sim_kinematics_home",
|
|
"sim_kinematics_init",
|
|
"sim_kinematics_inverse",
|
|
"sim_kinematics_inverse_ex",
|
|
"sim_kinematics_state_hash",
|
|
"sim_kinematics_validate_pose"
|
|
],
|
|
"inputs": {
|
|
"cmake": "wasm-core/CMakeLists.txt",
|
|
"cmake_sha256": "e9296a3983a531e4e6864d05e2e97c8dbf29e0dc9e45942ecc1a0a7222b3a660",
|
|
"header": "wasm-core/include/sim_kinematics.h",
|
|
"header_sha256": "5fd01043d705486b0d365e36109c3b0e0d39f220c2cec313b5b747dca06148bc"
|
|
},
|
|
"missing_required_exports": [],
|
|
"numeric_policy": {
|
|
"fast_math": false,
|
|
"fp_contract": "off",
|
|
"iteration_limit": 100000,
|
|
"nonfinite": "SIM_KIN_ERR_NONFINITE",
|
|
"state_hash": "FNV-1a-64"
|
|
},
|
|
"required_functions": [
|
|
"sim_kinematics_init",
|
|
"sim_kinematics_forward",
|
|
"sim_kinematics_forward_ex",
|
|
"sim_kinematics_inverse",
|
|
"sim_kinematics_inverse_ex",
|
|
"sim_kinematics_home",
|
|
"sim_kinematics_validate_pose",
|
|
"sim_kinematics_state_hash"
|
|
],
|
|
"schema": "kinematics-abi-contract.v1",
|
|
"status": "verified",
|
|
"structs": {
|
|
"sim_kinematics": [
|
|
"sim_kinematics_config config;",
|
|
"int axis_joint[SIM_KIN_MAX_JOINTS];",
|
|
"uint32_t configured;",
|
|
"uint64_t forward_flags;",
|
|
"uint64_t inverse_flags;",
|
|
"sim_posemath_pose last_pose;",
|
|
"double last_residual;",
|
|
"uint32_t last_iterations;",
|
|
"uint32_t branch_id;",
|
|
"int32_t revolution_count;",
|
|
"uint32_t previous_quadrant;"
|
|
],
|
|
"sim_kinematics_config": [
|
|
"int type;",
|
|
"int mode;",
|
|
"uint32_t joint_count;",
|
|
"uint32_t kinematics_joint_count;",
|
|
"uint32_t extra_joint_count;",
|
|
"char coordinates[16];",
|
|
"double x_rot_point;",
|
|
"double y_rot_point;",
|
|
"double z_rot_point;",
|
|
"double x_offset;",
|
|
"double y_offset;",
|
|
"double z_offset;",
|
|
"double tool_offset;",
|
|
"double pivot_length;",
|
|
"double scara_d1;",
|
|
"double scara_d2;",
|
|
"double scara_d3;",
|
|
"double scara_d4;",
|
|
"double scara_d5;",
|
|
"double scara_d6;",
|
|
"double puma_a2;",
|
|
"double puma_a3;",
|
|
"double puma_d3;",
|
|
"double puma_d4;",
|
|
"double puma_d6;",
|
|
"uint32_t dh_joint_count;",
|
|
"double dh_a[SIM_KIN_MAX_JOINTS];",
|
|
"double dh_alpha[SIM_KIN_MAX_JOINTS];",
|
|
"double dh_d[SIM_KIN_MAX_JOINTS];",
|
|
"uint32_t max_iterations;",
|
|
"double convergence_tolerance;",
|
|
"uint8_t limit_enabled[SIM_KIN_MAX_JOINTS];",
|
|
"double joint_min[SIM_KIN_MAX_JOINTS];",
|
|
"double joint_max[SIM_KIN_MAX_JOINTS];"
|
|
],
|
|
"sim_kinematics_result_info": [
|
|
"uint64_t forward_flags;",
|
|
"uint64_t inverse_flags;",
|
|
"double residual;",
|
|
"uint32_t iterations;",
|
|
"uint32_t branch_id;"
|
|
]
|
|
}
|
|
}
|