- Posts: 279
- Thank you received: 0
LinuxCNC S-Curve Accelerations
8 years 5 months ago #110889
by rmu
Replied by rmu on topic LinuxCNC S-Curve Accelerations
I was actually replying to the message from automata, but I'm not very used to forum software, seems the quote was lost.
If you use the planner as is with something as an effective average acceleration and substitute the s-curve in the execution phase it could in theory happen that you don't leave the "S" on beginning/end, so the assumption that the planner will keep up with this "average" acceleration does not hold for short segments IMHO.
While at it, did anybody have a look at the synthetos g2core 6th order bezier smooth motion planner?
If you use the planner as is with something as an effective average acceleration and substitute the s-curve in the execution phase it could in theory happen that you don't leave the "S" on beginning/end, so the assumption that the planner will keep up with this "average" acceleration does not hold for short segments IMHO.
While at it, did anybody have a look at the synthetos g2core 6th order bezier smooth motion planner?
Please Log in to join the conversation.
8 years 5 months ago #110953
by automata
Replied by automata on topic LinuxCNC S-Curve Accelerations
Hi rmu,
The jerk percentage method will not guarantee any limits on the max jerk. It only takes the current acceleration phase and divides it into 3 parts based on the percentage.
For a trapezoidal velocity planner, you will have either 1, 2 or 3 phases based on your starting velocity, ending velocity, and max velocity for the segment.
If you have a segment that is accelerating or decelerating, you divide that segment into 3 parts on the time axis (NOTE that parts are not made on the distance axis).
Alternately like Fanuc, you can limit jerk from 0 upto 128 msec (based on a user editable parameter). That way your segment has to longer than 128*2 msec for execution.
In both cases you will always reach the max acceleration since the jerk limitation phase was allocated after the trapezoidal velocity planner has finished the planning of the complete time of the trajectory.
hope the explanation helps.
-automata
The jerk percentage method will not guarantee any limits on the max jerk. It only takes the current acceleration phase and divides it into 3 parts based on the percentage.
For a trapezoidal velocity planner, you will have either 1, 2 or 3 phases based on your starting velocity, ending velocity, and max velocity for the segment.
If you have a segment that is accelerating or decelerating, you divide that segment into 3 parts on the time axis (NOTE that parts are not made on the distance axis).
Alternately like Fanuc, you can limit jerk from 0 upto 128 msec (based on a user editable parameter). That way your segment has to longer than 128*2 msec for execution.
In both cases you will always reach the max acceleration since the jerk limitation phase was allocated after the trapezoidal velocity planner has finished the planning of the complete time of the trajectory.
hope the explanation helps.
-automata
Please Log in to join the conversation.
8 years 5 months ago #110954
by rmu
Yes, I understood that you divide a segment with constant acceleration a (coming from the trapezoidal planner) into a segment with acceleration < a and some sufficiently smooth form, then a "cruise" with acceleration slightly larger than a to make up for the slower smooth start/end segments, and then a smooth "deceleration" phase to get to the commanded exit velocity.
My question was regarding this smooth transition at the beginning/end of the segment, if the segment is too short (for a given jerk limit), you can't make up for lost time with larger acceleration.
If you don't guarantee a maximum jerk, that explains it. Short segments will then be executed violating the jerk limit.
I noticed that the linuxcnc trajectory planner has a cubic interpolator switched between the trajectory planner and command outputs, this seems to be a remnant from times when TRAJ_PERIOD usually was n times SERVO_PERIOD, n>1. If I understand correctly, this interpolator limits jerk somewhat. A step is spread out over 3 periods.
Replied by rmu on topic LinuxCNC S-Curve Accelerations
If you have a segment that is accelerating or decelerating, you divide that segment into 3 parts on the time axis (NOTE that parts are not made on the distance axis).
Yes, I understood that you divide a segment with constant acceleration a (coming from the trapezoidal planner) into a segment with acceleration < a and some sufficiently smooth form, then a "cruise" with acceleration slightly larger than a to make up for the slower smooth start/end segments, and then a smooth "deceleration" phase to get to the commanded exit velocity.
My question was regarding this smooth transition at the beginning/end of the segment, if the segment is too short (for a given jerk limit), you can't make up for lost time with larger acceleration.
If you don't guarantee a maximum jerk, that explains it. Short segments will then be executed violating the jerk limit.
I noticed that the linuxcnc trajectory planner has a cubic interpolator switched between the trajectory planner and command outputs, this seems to be a remnant from times when TRAJ_PERIOD usually was n times SERVO_PERIOD, n>1. If I understand correctly, this interpolator limits jerk somewhat. A step is spread out over 3 periods.
Please Log in to join the conversation.
8 years 3 months ago #113452
by Methier
Replied by Methier on topic LinuxCNC S-Curve Accelerations
Hi, what happened to this topic? any news on this? i find it interesting even necessary and i have machines available for testing.
Meth
Meth
Please Log in to join the conversation.
8 years 3 months ago #113460
by rmu
Replied by rmu on topic LinuxCNC S-Curve Accelerations
have a look here
forum.linuxcnc.org/38-general-linuxcnc-q...oth-velocity-profile and here github.com/rmu75/linuxcnc/tree/rs_6otp
Don't have much time at the moment, but I'm working on it (slowly).
forum.linuxcnc.org/38-general-linuxcnc-q...oth-velocity-profile and here github.com/rmu75/linuxcnc/tree/rs_6otp
Don't have much time at the moment, but I'm working on it (slowly).
Please Log in to join the conversation.
7 years 7 months ago #129674
by TiEr
Replied by TiEr on topic LinuxCNC S-Curve Accelerations
Hey,
i have looked for an implementation of S-Curve on LinuxCNC and stumbled on this thread: emc-developers.narkive.com/jxJvsPLF/jerk...ted-trajectory#post4
It seems that someone made an s-curve trajectorian planer in the year 2012! Have a look at his git: github.com/araisrobo/linuxcnc/blob/maste.../emc/kinematics/tp.c
Moreover it seems to work:
Is there a way to commit this implementation to the current version of LinuxCNC? Sadly i have not the abbilitys to realize this.
Timo
EDIT: i have found another post where they linked to his repo with newer code: github.com/araisrobo/machinekit/tree/rpi2-spi/src/emc/tp
i have looked for an implementation of S-Curve on LinuxCNC and stumbled on this thread: emc-developers.narkive.com/jxJvsPLF/jerk...ted-trajectory#post4
It seems that someone made an s-curve trajectorian planer in the year 2012! Have a look at his git: github.com/araisrobo/linuxcnc/blob/maste.../emc/kinematics/tp.c
Moreover it seems to work:
Is there a way to commit this implementation to the current version of LinuxCNC? Sadly i have not the abbilitys to realize this.
Timo
EDIT: i have found another post where they linked to his repo with newer code: github.com/araisrobo/machinekit/tree/rpi2-spi/src/emc/tp
Please Log in to join the conversation.
7 years 7 months ago #129742
by cmorley
Replied by cmorley on topic LinuxCNC S-Curve Accelerations
At the time of the branch started, (IIRC) it was jerk limited but only one block look ahead and didn't do spindle sync quite properly.
I believe it would be difficult to incorporate it without being an expert on the current multi-block look ahead planner.
Chris M
I believe it would be difficult to incorporate it without being an expert on the current multi-block look ahead planner.
Chris M
Please Log in to join the conversation.
- grandixximo
-
Topic Author
- Away
- Platinum Member
-
- Where are my paaaaants?
Less
More
- Posts: 351
- Thank you received: 2
6 years 7 months ago #160550
by andypugh
No. As far as I know nobody is looking at finite-jerk with the current multi-block lookahead TP.
Replied by andypugh on topic LinuxCNC S-Curve Accelerations
grandixximo wrote: Any news on this?
No. As far as I know nobody is looking at finite-jerk with the current multi-block lookahead TP.
Please Log in to join the conversation.
- grandixximo
-
Topic Author
- Away
- Platinum Member
-
- Where are my paaaaants?
Less
More
- Posts: 351
- Thank you received: 2
6 years 6 months ago #163437
by grandixximo
---
test signature
Replied by grandixximo on topic LinuxCNC S-Curve Accelerations
Anyone interested in making this a reality? i guess lot of people should have time on their hand right now, I'd be ok to hire someone to do this for the community, PM me if you are interested!
---
test signature
Please Log in to join the conversation.
Time to create page: 0.207 seconds
