Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[kinematics] Generic Cartesian kinematics implementation #6815

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

dmbutyugin
Copy link
Collaborator

This PR adds support for a new generic Cartesian kinematics class, which allows one to define various Cartesian-style kinematics (e.g. CoreXYUV, inverted hybrid CoreXY, and others). This was extensively discussed on Discourse and tested for a while now. I think the only non-addressed feedback from there is choosing an appropriate name for a parameter that defines the stepper kinematics, as there were concerns about possible confusion for an option

[stepper a]
kinematics: x-y
...

however I found a proposed alternative

[stepper a]
carriage_control: x-y

to sound a bit odd. But I do not have strong arguments against this option either, and I could accept it as well, if that is desired (alternatively perhaps just carriages: x-y may also be OK).

That said, any additional feedback is appreciated.

@HelgeKeck FYI

The new command allows to alter the behavior of the steppers at run
time. Option DISABLE_CHECKS=1 allows advanced and potentially unsafe
modifications of stepper kinematics, e.g. disabling the stepper, or
configuring incomplete motion kinematics, which can be useful for
advanced fully custom homing procedures. The latter required
implementing computation of the kinematics matrix inverse via SVD.

Signed-off-by: Dmitry Butyugin <[email protected]>
This also adds a proper implementation for the short names for
kinematic steppers for future reference.

Signed-off-by: Dmitry Butyugin <[email protected]>
Copy link

Thank you for your contribution to Klipper. Unfortunately, a reviewer has not assigned themselves to this GitHub Pull Request. All Pull Requests are reviewed before merging, and a reviewer will need to volunteer. Further information is available at: https://www.klipper3d.org/CONTRIBUTING.html

There are some steps that you can take now:

  1. Perform a self-review of your Pull Request by following the steps at: https://www.klipper3d.org/CONTRIBUTING.html#what-to-expect-in-a-review
    If you have completed a self-review, be sure to state the results of that self-review explicitly in the Pull Request comments. A reviewer is more likely to participate if the bulk of a review has already been completed.
  2. Consider opening a topic on the Klipper Discourse server to discuss this work. The Discourse server is a good place to discuss development ideas and to engage users interested in testing. Reviewers are more likely to prioritize Pull Requests with an active community of users.
  3. Consider helping out reviewers by reviewing other Klipper Pull Requests. Taking the time to perform a careful and detailed review of others work is appreciated. Regular contributors are more likely to prioritize the contributions of other regular contributors.

Unfortunately, if a reviewer does not assign themselves to this GitHub Pull Request then it will be automatically closed. If this happens, then it is a good idea to move further discussion to the Klipper Discourse server. Reviewers can reach out on that forum to let you know if they are interested and when they are available.

Best regards,
~ Your friendly GitIssueBot

PS: I'm just an automated script, not a human being.

@KevinOConnor
Copy link
Collaborator

Thanks. This looks like useful functionality and I plan to provide comments on it in the coming days. Sorry for the delay.

-Kevin

@KevinOConnor KevinOConnor self-assigned this Feb 27, 2025
@dmbutyugin
Copy link
Collaborator Author

Thanks Kevin! No worries, it is not super urgent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants