mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-08-22 01:21:51 -06:00
kinematics: Generic Cartesian kinematics implementation (#6815)
* tests: Added a regression test for generic_cartesian kinematics * kinematics: An intial implementation of generic_cartesian kinematics * generic_cartesian: Refactored kinematics configuration API * generic_cartesian: Use stepper instead of kinematic_stepper in configs * generic_cartesian: Added SET_STEPPER_KINEMATICS command * generic_cartesian: Fixed parsing of section names * docs: Generic Caretsian kinematics documentation and config samples * generic_cartesian: Implemented multi-mcu homing validation * generic_cartesian: Fixed typos in docs, minor fixes * generic_cartesian: Renamed `kinematics` option to `carriages` * generic_cartesian: Moved kinematic_stepper.py file * idex_modes: Internal refactoring of handling dual carriages * stepper: Refactored the code to not store a reference to config object * config: Updated example-generic-cartesian config * generic_cartesian: Restricted SET_STEPPER_CARRIAGES and exported status * idex_modes: Fixed handling stepper kinematics with input shaper enabled * config: Updated configs and tests for SET_DUAL_CARRIAGE new params * generic_cartesian: Avoid inheritance in the added classes Signed-off-by: Dmitry Butyugin <dmbutyugin@google.com>
This commit is contained in:
parent
1cc6398074
commit
cc6736c3e3
27 changed files with 1855 additions and 199 deletions
|
@ -135,3 +135,18 @@ def matrix_sub(m1, m2):
|
|||
|
||||
def matrix_mul(m1, s):
|
||||
return [m1[0]*s, m1[1]*s, m1[2]*s]
|
||||
|
||||
######################################################################
|
||||
# Matrix helper functions for 3x3 matrices
|
||||
######################################################################
|
||||
|
||||
def matrix_det(a):
|
||||
x0, x1, x2 = a
|
||||
return matrix_dot(x0, matrix_cross(x1, x2))
|
||||
|
||||
def matrix_inv(a):
|
||||
x0, x1, x2 = a
|
||||
inv_det = 1. / matrix_det(a)
|
||||
return [matrix_mul(matrix_cross(x1, x2), inv_det),
|
||||
matrix_mul(matrix_cross(x2, x0), inv_det),
|
||||
matrix_mul(matrix_cross(x0, x1), inv_det)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue