{ "schema": "linuxcnc.machine-kinematics-specs/1", "description": "Per-case joint slots and limits, derived from the LinuxCNC INIs. limits[j] = [min,max] for joint index j; null means the source config declares none.", "cases": [ { "machineId": "xyzab-tdr", "coordinates": "XYZAB", "entrypoint": "linuxcnc/configs/sim/axis/vismach/5axis/table-dual-rotary/xyzab-tdr.ini", "kinematics": "xyzab-tdr", "jointCount": 5, "jointOrder": [ "X", "Y", "Z", "A", "B" ], "limitsByJoint": [ [ -200.0, 200.0 ], [ -200.0, 200.0 ], [ -300.0, 300.0 ], [ -3600.0, 3600.0 ], [ -180.0, 180.0 ] ], "declaredKinematicsJointCount": 5, "extraJointCount": 0, "parameters": { "x_rot_point": 0, "y_rot_point": 0, "z_rot_point": 0, "x_offset": -20, "z_offset": -10, "tool_offset": 0 }, "limitsSource": "linuxcnc-ini" }, { "machineId": "bridge-mill-5axiskins", "coordinates": "XYZBCWY", "entrypoint": "linuxcnc/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini", "kinematics": "5axiskins", "jointCount": 7, "jointOrder": [ "X", "Y", "Z", "B", "C", "W", "Y#2" ], "limitsByJoint": [ [ -500.0, 500.0 ], [ -500.0, 500.0 ], [ -500.0, 100.0 ], [ -120.0, 120.0 ], [ -36000.0, 36000.0 ], [ -100.0, 500.0 ], [ -500.0, 500.0 ] ], "declaredKinematicsJointCount": 7, "extraJointCount": 0, "parameters": { "pivot_length": 100 }, "limitsSource": "linuxcnc-ini" }, { "machineId": "max5-maxkins", "coordinates": "XYZBC", "entrypoint": "linuxcnc/configs/sim/axis/vismach/5axis/max5/max5kins.ini", "kinematics": "maxkins", "jointCount": 6, "jointOrder": [ "X", "Y", "Z", "B", "C", "J5" ], "limitsByJoint": [ [ -100.0, 200.0 ], [ -60.0, 60.0 ], [ -149.0, 1.0 ], [ -10.0, 10.0 ], [ -90.0, 90.0 ], [ -3600.0, 3600.0 ] ], "declaredKinematicsJointCount": 5, "extraJointCount": 1, "parameters": { "pivot_length": 0 }, "limitsSource": "linuxcnc-ini" }, { "machineId": "hexapod-genhexkins", "coordinates": "XYZABC", "entrypoint": "linuxcnc/configs/sim/axis/vismach/hexapod-sim/hexapod.ini", "kinematics": "genhexkins", "jointCount": 6, "jointOrder": [ "J0", "J1", "J2", "J3", "J4", "J5" ], "limitsByJoint": [ [ -1000.0, 1000.0 ], [ -1000.0, 1000.0 ], [ -1000.0, 1000.0 ], [ -1000.0, 1000.0 ], [ -1000.0, 1000.0 ], [ -1000.0, 1000.0 ] ], "declaredKinematicsJointCount": 6, "extraJointCount": 0, "parameters": {}, "limitsSource": "linuxcnc-ini" }, { "machineId": "pentapod-pentakins", "coordinates": "XYZAB", "entrypoint": "linuxcnc/configs/sim/axis/pentapod/pentapod.ini", "kinematics": "pentakins", "jointCount": 5, "jointOrder": [ "J0", "J1", "J2", "J3", "J4" ], "limitsByJoint": [ [ 400.0, 1500.0 ], [ 400.0, 1500.0 ], [ 400.0, 1500.0 ], [ 400.0, 1500.0 ], [ 400.0, 1500.0 ] ], "declaredKinematicsJointCount": 5, "extraJointCount": 0, "parameters": {}, "limitsSource": "linuxcnc-ini" }, { "machineId": "puma-pumakins", "coordinates": "XYZABC", "entrypoint": "linuxcnc/configs/sim/axis/vismach/puma/puma.ini", "kinematics": "pumakins", "jointCount": 6, "jointOrder": [ "J0", "J1", "J2", "J3", "J4", "J5" ], "limitsByJoint": [ [ -170.0, 170.0 ], [ -85.0, 50.0 ], [ -70.0, 75.0 ], [ -250.0, 250.0 ], [ -120.0, 120.0 ], null ], "declaredKinematicsJointCount": 6, "extraJointCount": 0, "parameters": { "puma_a2": 400, "puma_a3": 50, "puma_d3": 100, "puma_d4": 400, "puma_d6": 95 }, "limitsSource": "linuxcnc-ini (missing: J5)" }, { "machineId": "puma-genserkins", "coordinates": "XYZABC", "entrypoint": "linuxcnc/configs/sim/axis/vismach/puma/puma560.ini", "kinematics": "genserkins", "jointCount": 6, "jointOrder": [ "J0", "J1", "J2", "J3", "J4", "J5" ], "limitsByJoint": [ [ -180.0, 180.0 ], [ -360.0, 360.0 ], [ -215.0, 35.0 ], [ -360.0, 360.0 ], [ -360.0, 360.0 ], [ -360.0, 360.0 ] ], "declaredKinematicsJointCount": 6, "extraJointCount": 0, "parameters": { "dh_joint_count": 6, "dh_a": [ 0, 17, 0, 0, 0, 0 ], "dh_alpha": [ 0, 1.570796326, 0, 1.570796326, -1.570796326, 1.570796326 ], "dh_d": [ 26.45, -5.5, 0, 17.05, 0, 2.2 ] }, "limitsSource": "linuxcnc-ini" }, { "machineId": "trivkins-xyzab", "coordinates": "XYZAB", "entrypoint": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzab.ini", "kinematics": "trivkins", "jointCount": 5, "jointOrder": [ "X", "Y", "Z", "A", "B" ], "limitsByJoint": [ [ -0.001, 520.0 ], [ -0.001, 630.0 ], [ -115.0, 10.0 ], null, null ], "declaredKinematicsJointCount": 5, "extraJointCount": 0, "parameters": {}, "limitsSource": "linuxcnc-ini (missing: A,B)" }, { "machineId": "trivkins-xyzcw", "coordinates": "XYZCW", "entrypoint": "linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZCW.ini", "kinematics": "trivkins", "jointCount": 5, "jointOrder": [ "X", "Y", "Z", "C", "W" ], "limitsByJoint": [ [ -0.0, 600.0 ], [ -0.0, 400.0 ], [ -400.0, 4.0 ], null, [ -2.0, 4.0 ] ], "declaredKinematicsJointCount": 5, "extraJointCount": 0, "parameters": {}, "limitsSource": "linuxcnc-ini (missing: C)" }, { "machineId": "trivkins-xyzya", "coordinates": "XYZYA", "entrypoint": "linuxcnc/configs/sim/woodpecker/woodpecker_xyzya.ini", "kinematics": "trivkins", "jointCount": 5, "jointOrder": [ "X", "Y", "Z", "Y#2", "A" ], "limitsByJoint": [ [ -0.001, 520.0 ], [ -0.001, 630.0 ], [ -115.0, 10.0 ], [ -0.001, 630.0 ], null ], "declaredKinematicsJointCount": 5, "extraJointCount": 0, "parameters": {}, "limitsSource": "linuxcnc-ini (missing: A)" }, { "machineId": "scorbot-kins", "coordinates": "XYZAB", "entrypoint": "linuxcnc/configs/sim/axis/vismach/scorbot/scorbot.ini", "kinematics": "scorbot-kins", "jointCount": 5, "jointOrder": [ "J0", "J1", "J2", "J3", "J4" ], "limitsByJoint": [ null, null, null, null, null ], "declaredKinematicsJointCount": 5, "extraJointCount": 0, "parameters": {}, "limitsSource": "linuxcnc-ini (missing: J0,J1,J2,J3,J4)" } ] }