LinuxCNC S-Curve Accelerations

More
9 months 1 week ago #341748 by ihavenofish

You cannot maintain velocity, follow the exact programmed path, AND have smooth jerk.

This is physically impossible. What I am saying is I would sacrifice velocity rather than programmed path on G2/G3 programmed arcs. At the moment if you run something with tangent arcs even with G61 the velocity is kept, this messes with jerk. G61 with jerk will have to slow down more.
For many line segments G64 Pxx it also slow down more, the more tight the tolerance, the smaller blending arcs the slower you have to move.
Béziers will give you better speed, because you can run them faster, but they are NOT arcs, meaning when you program a square for example, just 4 lines, you set G64 to 0.5 let's say, what kind of path error would you accept? A 0.5mm perfect radius which I have to slow down more to make smooth, or a squashed up Béziers which I can run faster?

Considering option 2, your set your priorities.

So for example the P value says you need to stay within 0.001mm, then that is your upper restriction for corner rounding, no matter what method you use. your lower restriction is then velocity.

So if I'm taking a corner at 20m/m and my p value and acceleration/jerk values mean I need to slow down, I need to slow down. HOWEVER, if I am taking the same corner with the same p value but only moving 1m/m then the p value is reduced until we hit 1m/m. You do NOT automatically round all corners up to the P value (something i think grotius' version did).

But like I said, I would focus on option 1, and when that work, fully, completely, bug free, we can look towards a new ground up TP with multiple jerk limited constant velocity strategies and more advanced look ahead (which is kinda what tormach did for the 1500).

The brother speedio C00 is a good example to look at. They have SEVERAL constant velocity modes you can choose in g code depending on the operation. some hold tighter paths for finishing, others hold higher speeds for roughing.

Another one to look at is fanuc and siemens, who use spline fitting.

But like is said, this should not be the focus right now. This is phase 2.


 
The following user(s) said Thank You: endian

Please Log in or Create an account to join the conversation.

More
9 months 1 week ago #341749 by ihavenofish

I thought jerk limiting was purely about acceleration. To extend it to varying the path seems to me is really scope creep. Get it working without changing the path and include path optimisations at a future time and write better gcode for now.

jerk limiting may permit higher maximum acceleration. Currently MAX_ACELERATION is set from a combination of motor dynamics and physics by the machine builder Eg the inertia in a heavy moving table may require a lower acceleration than what the motors are capable of so they are not overcome by inertia on deceleration and cause following errors. Its probably valid on a jerk limited machine to increase acceleration. In this context, some violations may be valid.
Absolutely correct. 
It is a constant fight to keep people from mixing jerk - 3rd order motion - with G64 constant velocity algorithms. These are 2 entirely independent topics and should be kept as such.

One thing I also keep seeing is the idea you just "augment" the existing trajectory for jerk limiting - rounding corners and such. This is not gonna be the route to success. Jerk (snap, crackle, pop - yes those are the real terms) needs to be in the core motion planning with velocity and acceleration.
The following user(s) said Thank You: endian

Please Log in or Create an account to join the conversation.

More
9 months 1 week ago - 9 months 1 week ago #341753 by grandixximo
The jerk limits are being respected on the tangent trajectory, the jerk limit works on segments due to the tp architecture, you see jerk spikes because when you look at the joints indipendently, the jerk they experience is completely different from planned jerk, there is cartesian rotation jerk, there are kinematics transitions, the spikes being reported are due to the fact that how the jerk is implemented and the architecture of the tp, we are limited to what we can do. When users report spike and we try to fix them, we find that the problem is not our jerk limiting, it's everything around it that is not made with jerk limit in mind...
The reasoning behind "augmenting" the path, is that we don't like to see the machine ondulate, on something like a multi axis cloud point, we can do it very smoothly but not at constant velocity, look at the actual machine and you'd want to fix it too. Do you want to see nice curves in the scope. Or you want to see the machine behave like it's following a smooth path?  Swift motion requires a swift path, they go together.
Last edit: 9 months 1 week ago by grandixximo.
The following user(s) said Thank You: akb1212, endian

Please Log in or Create an account to join the conversation.

More
9 months 1 week ago #341762 by ihavenofish

 we are limited to what we can do. 

This statement does no compute.



 

Please Log in or Create an account to join the conversation.

More
9 months 1 week ago #341787 by rodw
Replied by rodw on topic LinuxCNC S-Curve Accelerations

BUT for a square with NO programmed corners, blend with arcs and parabolas are acceptable? 

This is hypothetical and the gcode is really bad, an error waiting to happen. You might as well attempt to cut a 7 pointed star and break things properly!
Time to get out of the office and onto a real machine!
You should be either looping the corners or adding fillets to the part. If you choose to write bad gcode, be prepared to suffer the consequences. Fixing that is your problem, not the S code developers.
The following user(s) said Thank You: akb1212

Please Log in or Create an account to join the conversation.

More
9 months 1 week ago #341791 by MaHa
Replied by MaHa on topic LinuxCNC S-Curve Accelerations
It seems, this routine got no attention. You can do from 3 corner up to a lot, with rounded corners, configurable in the routine as desired.

forum.linuxcnc.org/42-deutsch/58236-g-code-schleifen#341677

Please Log in or Create an account to join the conversation.

Time to create page: 0.114 seconds
Powered by Kunena Forum