-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
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
[FR] rotational axes with feedrate calculation like in NIST RS274 NGC Interpreter - version 3 #23116
Comments
Here is my first draft of the implementation (for up to 9 axes). |
My implementation was tested successfully in a 4 axis machine. for pure rotational moves (only axes 'A', 'B' and 'C' involved) , feedrate is interpreted correctly in degrees per minute, even in inch mode (after G20). |
This feature is implemented as part of #23112 |
Hello, DerAndere1 |
@i-make-robots : To answer the questions raised in the discord channel:
Meaningful concepts for the feedrate exist only in the cartesian space. Also it is what NIST RS274NGC v.3 (and by extension LinuxCNC) Gcode specification says for the default feed reference mode (CANON_XYZ). Extra axes movement will be ignored for the calculation of motor speeds. Still, ALL axes move to the specified destination for each G1.
In a move like
For moves where the maxium allowed speeds of any axis (defined by Again:
LinuxCNC / NIST RS274NGC also supports So to continue support for articulated robots without buil-in kinematics, I think we should add a special config option to get the old behaviour:
or maybe, for those robots, feedrate should be the speed of the axis that travels the furthest distance?
|
@i-make-robots : I added an option |
I suppose if I have a question it’s about the name of the label. All robots arms are articulated in some fashion. So what does this really mean? Perhaps ROBOT_ARM_DISTANCE_USING_ALL_AXIES?
… On Feb 16, 2022, at 9:17 PM, DerAndere ***@***.***> wrote:
@i-make-robots : I added an option ARTICULATED_ROBOT_ARM to PR #23112 . If enabled, you will get the old feedrate interpretation. As long as we have no inverse kinematics for such robots built in, the old feedrate interpretation is a suitable workaround that is also used by grblHAL/core, synthetos/g2core and Duet3D/RepRapFirmware currently have, IIRC.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you were mentioned.
|
Regardless of the option name, this needs to be documented. The first place where I will document the option will be https://github.com/DerAndere1/Marlin/blob/Marlin2ForPipetBot/README.md We might change the name of |
This feature is part of Marlin bugfix-2.0.x since PR 23112 was merged. I also opened PR 446 in the MarlinDocumentation repo MarlinFirmware/MarlinDocumentation#446 to update the documentation. Detailed information can also be found at https://github.com/DerAndere1/Marlin/wiki |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Is your feature request related to a problem? Please describe.
Currently, all axes are treated as linear axes. To support rotational axes, we should follow some standard. A relevant document is the documentation of the NIST RS274 NGC interpreter - version 3 (freely available at https://www.nist.gov/publications/nist-rs274ngc-interpreter-version-3 ). This reference is also used by other projects (LinuxCNC, synthetos/TinyG, synthetos/g2 (g2core) firmware). the NIST RS274 NGC interpreter that LinuxCNC is based on has two FEED_REFERENCE modes: CANON_XYZ and CANON_WORKPIECE. For the default CANON_XYZ mode, Interpretation of feedrate is specified in section "2.1.2.5 Feed Rate"
Are you looking for hardware support?
no
Describe the feature you want
We should change the code at
Marlin/Marlin/src/module/planner.cpp
Line 2081 in 49e8def
the implementation in the EMC (part of LinuxCNC) starts here; https://github.com/LinuxCNC/linuxcnc/blob/8a9665315cd96e9da24e08a0885b9a3686f1e7aa/src/emc/task/emccanon.cc#L608
Additional context
No response
The text was updated successfully, but these errors were encountered: