how do we deal with non-trivial kinematics and limits
12 Apr 2020 05:15 #163732
by Aciera
how do we deal with non-trivial kinematics and limits was created by Aciera
Having dealt with non-trivial kinematics only in simulation setups I have not dealt with the problem of a physical ball screw slamming into the hard limit of an axis. Since I'm working on a real machine with a swivel head that has changed and dealing with limits has become a serious isssue.
As we can set limits for axis and joints in the INI I was under the impression thas somehow both were checked while running LinuxCNC. However now it seems that only the axis limits are active and if I use a non-trivial kinematic to deal with say a mill with a swivel head the limits I set in the INI are of little use since the axis XYZ are linked to more than one joints by trigonometric functions. Even calculating new limits given the angle of the swivel head is not the solution because the limits depend on the actual position of the joints as well as the angle of the swivel head. Which means we would have to calculate the limits alongside the position in the kinematics.
How do I avoid running a physical joint into the metal end if that joint is involved in X and Z movements?
Am I just confused or how do we deal with limits when using non-trivial kinematics?
As we can set limits for axis and joints in the INI I was under the impression thas somehow both were checked while running LinuxCNC. However now it seems that only the axis limits are active and if I use a non-trivial kinematic to deal with say a mill with a swivel head the limits I set in the INI are of little use since the axis XYZ are linked to more than one joints by trigonometric functions. Even calculating new limits given the angle of the swivel head is not the solution because the limits depend on the actual position of the joints as well as the angle of the swivel head. Which means we would have to calculate the limits alongside the position in the kinematics.
How do I avoid running a physical joint into the metal end if that joint is involved in X and Z movements?
Am I just confused or how do we deal with limits when using non-trivial kinematics?
Please Log in or Create an account to join the conversation.
13 Apr 2020 08:43 #163852
by bbsr_5a
Replied by bbsr_5a on topic how do we deal with non-trivial kinematics and limits
if you setup the Switches even simple cherry switches you will never deal with limits
the Machine controll will do anything for you and let the router not pass your numbers
the Machine controll will do anything for you and let the router not pass your numbers
Please Log in or Create an account to join the conversation.
13 Apr 2020 11:26 - 13 Apr 2020 11:29 #163866
by Aciera
Replied by Aciera on topic how do we deal with non-trivial kinematics and limits
Well that's true of course. setting up physical limit switches on both ends of all axis will indeed make it impossible for the controller to run into the metal ends.
However since this trips a limit switch error it also turns the "machine" off and that is why we define soft limits for the controller to check the commanded position against and halt the axis in a controlled manner.
Anyway I have since been informed that this is a known bug and would require quite a bit of work to fix and since there are not all that many users of non-trivial kinematics it is not likely to happen anytime soon.
So as a work around I will have to disable soft limits for those axis that are mapped to joints by non-trivial kinematics and check the gcode before running it on the actual machine. Then rely on the mechanical limit switches as a last resort.
However since this trips a limit switch error it also turns the "machine" off and that is why we define soft limits for the controller to check the commanded position against and halt the axis in a controlled manner.
Anyway I have since been informed that this is a known bug and would require quite a bit of work to fix and since there are not all that many users of non-trivial kinematics it is not likely to happen anytime soon.
So as a work around I will have to disable soft limits for those axis that are mapped to joints by non-trivial kinematics and check the gcode before running it on the actual machine. Then rely on the mechanical limit switches as a last resort.
Last edit: 13 Apr 2020 11:29 by Aciera.
Please Log in or Create an account to join the conversation.
Time to create page: 0.141 seconds