- Posts: 12170
- Thank you received: 4153
LinuxCNC S-Curve Accelerations
- rodw
- Offline
- Platinum Member
-
Less
More
3 years 8 months ago #265212
by rodw
Replied by rodw on topic LinuxCNC S-Curve Accelerations
Isn't that where look ahead should come into play? You can calculate the centripetal velocity limit based on radius and machine accelaration so the look ahead might determine how far back along the line deceleration should commence to hit the target velocity when the tool arrives at the arc..
Please Log in or Create an account to join the conversation.
- automata
- Offline
- Premium Member
-
Less
More
- Posts: 105
- Thank you received: 93
3 years 8 months ago #265213
by automata
Replied by automata on topic LinuxCNC S-Curve Accelerations
@rmu
That is exactly correct.
As I have alluded to earlier in this thread that this method can only take care of jerk which is tangential to the path. Jerk component normal to the path will still be unlimited.
forum.linuxcnc.org/38-general-linuxcnc-q...ons?start=240#216588
Do you have any ideas to deal with jerk limitation for both normal and tangential directions simultaneously?
Maybe as rowd suggested, using look ahead, we should be able to optimize the max jerk value allowd per axis.
In grotius' approach, the jerk is specified as a "dv" value which decides the change in velocity during which the jerk limitation is applied. It does not specify the jerk value directly. If you ask me, finite jerk (even if it not limited to a particular value) is way better than infinite jerk.
For paths that are continuously changing direction like circles or nurbs OR any machine with non-trivial kinematics, the only viable method to limit the jerk on joints would be to sample the path at some small length and check for velocity acceleration and jerk constraints at those points.
-automata
That is exactly correct.
As I have alluded to earlier in this thread that this method can only take care of jerk which is tangential to the path. Jerk component normal to the path will still be unlimited.
forum.linuxcnc.org/38-general-linuxcnc-q...ons?start=240#216588
Do you have any ideas to deal with jerk limitation for both normal and tangential directions simultaneously?
Maybe as rowd suggested, using look ahead, we should be able to optimize the max jerk value allowd per axis.
In grotius' approach, the jerk is specified as a "dv" value which decides the change in velocity during which the jerk limitation is applied. It does not specify the jerk value directly. If you ask me, finite jerk (even if it not limited to a particular value) is way better than infinite jerk.
For paths that are continuously changing direction like circles or nurbs OR any machine with non-trivial kinematics, the only viable method to limit the jerk on joints would be to sample the path at some small length and check for velocity acceleration and jerk constraints at those points.
-automata
Please Log in or Create an account to join the conversation.
- Grotius
- Offline
- Platinum Member
-
Less
More
- Posts: 2419
- Thank you received: 2349
3 years 8 months ago #265223
by Grotius
Replied by Grotius on topic LinuxCNC S-Curve Accelerations
In grotius' approach, the jerk is specified as a "dv" value which decides the change in velocity during which the jerk limitation is applied. It does not specify the jerk value directly.
Using "dv" delta velocity = ve-vo.
I had to decide how to specity the curve. In the past i also used a 0-100% curve power value.
Dv represents the curve's velocity steepness,
or determines how much of t2 linear period is
represented in the curve acc period t1,t2,t3. aka dcc period t5,t6,t7
Dv is the delta velocity for a motion from 0 acc to max acc (2*a), back to 0 acc.
The "jm" is then a constant value for all movements of the joint.
This results in a more predictable machine movement.
Where "ct" is curve time.
ct=(ve-vo)/a;
ct=dv/a;
as=2*a;
jm=(2*as)/ct;
I suggest that the topic synchronisation, look ahead, blending belongs to the path planner?
We need a good approach for look ahead and blending etc. And it's almost time to get started
with this.
Using "dv" delta velocity = ve-vo.
I had to decide how to specity the curve. In the past i also used a 0-100% curve power value.
Dv represents the curve's velocity steepness,
or determines how much of t2 linear period is
represented in the curve acc period t1,t2,t3. aka dcc period t5,t6,t7
Dv is the delta velocity for a motion from 0 acc to max acc (2*a), back to 0 acc.
The "jm" is then a constant value for all movements of the joint.
This results in a more predictable machine movement.
Where "ct" is curve time.
ct=(ve-vo)/a;
ct=dv/a;
as=2*a;
jm=(2*as)/ct;
I suggest that the topic synchronisation, look ahead, blending belongs to the path planner?
We need a good approach for look ahead and blending etc. And it's almost time to get started
with this.
The following user(s) said Thank You: Darium
Please Log in or Create an account to join the conversation.
- rmu
- Offline
- Elite Member
-
Less
More
- Posts: 279
- Thank you received: 101
3 years 8 months ago #265224
by rmu
Replied by rmu on topic LinuxCNC S-Curve Accelerations
automata, for me, the whole topic is ill-defined and arbitrarily complex depending on what you include (>3 joints, kinematics, blending, ...).
Maybe limiting jerk in tangential direction is a worthy improvement. I even did some experiments in linuxcnc.
rodw, AFAIK that is exactly what current TP does, it even optimizes blending arcs and feedrate to stay within G64 and machine acceleration limits.
I have no workable ideas regarding path blending nor do I know anything about 5-axis machining.
Maybe limiting jerk in tangential direction is a worthy improvement. I even did some experiments in linuxcnc.
rodw, AFAIK that is exactly what current TP does, it even optimizes blending arcs and feedrate to stay within G64 and machine acceleration limits.
I have no workable ideas regarding path blending nor do I know anything about 5-axis machining.
Please Log in or Create an account to join the conversation.
- rmu
- Offline
- Elite Member
-
Less
More
- Posts: 279
- Thank you received: 101
3 years 8 months ago #265227
by rmu
Replied by rmu on topic LinuxCNC S-Curve Accelerations
Checking the path is trivial, but that doesn't really help IMO.For paths that are continuously changing direction like circles or nurbs OR any machine with non-trivial kinematics, the only viable method to limit the jerk on joints would be to sample the path at some small length and check for velocity acceleration and jerk constraints at those points.
-automata
Please Log in or Create an account to join the conversation.
- andypugh
- Offline
- Moderator
-
Less
More
- Posts: 19899
- Thank you received: 4655
3 years 8 months ago #265316
by andypugh
Replied by andypugh on topic LinuxCNC S-Curve Accelerations
I watched a fascinating
Youtube video about the continuity of splines
At one point she shows how to achieve G3 continuity by solving a matrix for the desired boundary conditions.
It set me to thinking if the same approach (and, in fact, the same equation) would work expanded to 9 dimensions and with the boundary conditions being limited jerk.
1) Solve the matrix for the machine limits (probably needs to be re-solved every time feed-override changes!)
2) Use the equation to calculate the path between G-code waypoints
4) Profit.
I haven't even got as far as testing that the equation works in 3D yet, though.
But, in any case, the video is excellent, I watched all of it without noticing the length until the end.
At one point she shows how to achieve G3 continuity by solving a matrix for the desired boundary conditions.
It set me to thinking if the same approach (and, in fact, the same equation) would work expanded to 9 dimensions and with the boundary conditions being limited jerk.
1) Solve the matrix for the machine limits (probably needs to be re-solved every time feed-override changes!)
2) Use the equation to calculate the path between G-code waypoints
4) Profit.
I haven't even got as far as testing that the equation works in 3D yet, though.
But, in any case, the video is excellent, I watched all of it without noticing the length until the end.
The following user(s) said Thank You: tommylight, Grotius, Darium
Please Log in or Create an account to join the conversation.
Time to create page: 2.790 seconds