Linuxcnc - s-curve acceleration? (7176e)

More
03 Sep 2017 17:07 #98417 by robertspark
Hello, new to linuxcnc still very much learning.

I'm sure this has been asked before from the posts I've seen and searched for, but I was wondering does linuxcnc do s-curve (jerkless) acceleration?

Given I'm intending to use (awaiting arrival of ) a Mesa 7176e, I was wondering if this changes things at all?

Given it appears that the hard lifting (bit banging) is done by the FPGA in the 7176e (same as other motion controllers I'm used to from the dark side), and linuxcnc spits tradjectory planner data out to the Mesa card at the servo loop frequency, I was wondering if a quazi curve fitting servo loop s-curve acceleration profile was possible?

I presume that true s-curve acceleration is reliant upon the bit banging firmware within the FPGA to be updated to incorporate it properly.

(There is a discussion on s-curve acceleration with the current CNC software and motion controller I use (uccnc) hence I'm not quite green about it, am just interested to see where linuxcnc stands on its development and where the holdups may be with regards to implementation (linuxcnc hal or Mesa card firmware?)

Thanks

Rob

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

More
03 Sep 2017 17:55 - 03 Sep 2017 17:56 #98418 by PCW
LinuxCNC currently does not have a limited jerk trajectory planner. There have been some experimental branches
(micges and Arais robots branches being ones I am familiar with) But neither have been merged with LinuxCNCs
mainline code, I think because of unresolved acceleration/velocity limit violations in certain circumstances

I think its easy to make a jerk limited trajectory (the LinuxCNC Limit 3 component can do it)
but integrating it into the full trajectory planner with lookahead, real time feed rate control, spindle sync etc is a
pretty major project

Unless you have an exotic level of accuracy or acceleration The FPGA code that just does velocity control is adequate for any type of trajectory planner, That is, the error from the fact that the stepgen does linear motion between (nominally 1 KHz) updates is less than 50 uinch at 1G acceleration ( and proportional to acceleration so a more normal machine tool with say .25 G accel gets you down to 12 uinch or so) A jerk limited planner will only reduce this error
Last edit: 03 Sep 2017 17:56 by PCW.
The following user(s) said Thank You: robertspark

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

More
03 Sep 2017 18:41 #98420 by robertspark
Thanks for that reply, much appreciated

I thought the benefit in the mysterious s-curve acceleration and deceleration profile was the ability to have a higher peak acceleration (or decel) but overall the mean acceleration time would remain the same as used by the likes of hypertherm for plasma applications, which is smoother than trapezoidal acceleration (or decel) reducing the start and end jerk.

Not considered the error

Rob

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

More
03 Sep 2017 18:55 #98424 by PCW
Limited jerk profiles typically allow higher accelerations with a given following error budget
(or a lower following error at the same acceleration as a trapezoidal profile)

On a servo system you see the limitation of unlimited jerk profile as a small error spike at the beginning and end of
acceleration that cannot be tuned out. This is because no servo system can develop full torque instantaneously
but a trapezoidal profile requires this because of its stepwise acceleration.
The following user(s) said Thank You: robertspark

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

More
04 Sep 2017 11:46 #98453 by VNR

I think its easy to make a jerk limited trajectory (the LinuxCNC Limit 3 component can do it)
but integrating it into the full trajectory planner with lookahead, real time feed rate control, spindle sync etc is a
pretty major project


I was wonderig if there is a way to do a an easy hack to get an S-Curve profile only on G0 moves, in order to obtain less vibrations on the machine. What do yo think about that? Do you have any idea how to do that?

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

More
04 Sep 2017 12:54 #98465 by rodw
Funny, I've just been tuning my Z axis for maximum acceleration on my 7i76e. I settled on 2500 mm/sec/sec (0.255 g) which I thought was pretty amazing for a no name Chinese 1.9 Nm (269 oz-in) NEMA 23 motor.

I've no experience with other hardware but I've heard people comment that their motors run much smoother on Mesa hardware so I'd wait until you were operational.

Anyway, back to S curves.

It might be possible to write a component using the experimental external offsets branch to offset the position during acceleration. You'd need to be confident that the maximum velocity and acceleration of your machine exceeded your maximum cut speeds. This is because you would have to give up a proportion of this for external offset use. How much you could afford to give up would determine the slope of your S curve. I don't know enough about the underlying model to be of much help.

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

More
30 Mar 2018 11:35 #108102 by Herzog
dear all,

I'm planning a Project for using LinuxCNC for a high-end 3-5 axis micromilling machine.
The machine Features high precision and high Dynamics.

1) The communication with the drives uses an Ethernet-based bus (either EtherCAT or TriaLink, a proprietary bus of the drive manufacturer www.trialink.com).
I know that there has been attempts to integrate realtime Ethernet bus communications to LinuxCNC.
Any hint or information is highly appreciated.

2) Jerk-limited acceleration profiles are essential for my application in order to avoid acceleration jumps.
But this Needs also that the pieces of of trajectories feature "G^2 continuity".
If, e.g., a G01 is followed by a tangential G02, the normal acceleration jumps, which is undesirable (vibrations/surface quality).
Usually, commercial CNC's feature geometrical cornering before doing the time-based motion planning.

Is this the case with LinuxCNC ?

My activity domain is the development of Motion Planning (geometrical preprocessing and feedrate planning), but using high Level languages (Matlab).

I would like to include them to LinuxCNC.
Is this realistic in your view ?

thanks in advance and best regards,

Raoul

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

More
30 Mar 2018 20:13 #108129 by andypugh

I know that there has been attempts to integrate realtime Ethernet bus communications to LinuxCNC.
Any hint or information is highly appreciated.

The Mesa ethernet FPGA cards already do this, so it is pretty mainstream in LinuxCNC now.

2) Jerk-limited acceleration profiles are essential for my application in order to avoid acceleration jumps.

Unfortunately jerk-limited trajectory planning is not an option with LinuxCNC. If you absolutely have to have that then I am afraid that LinuxCNC won't work for you.

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

More
13 Jul 2018 13:54 #114128 by FDP
I was wondering what it would take to make #2 an option in LinuxCNC?

If Raoul has Matlab code for motion planning I/others might be able to help him convert it over to SciPy, which could link up with LinuxCNC via Python.

Is there a high-level block diagram of the LCNC libraries to understand how one could go about plugging in modules like this?

I feel like it could be hugely beneficial to LinuxCNC to make it a go-to option for people in the academic community to test new algorithms. You saw that with Gimp back in the day when it became a popular software to demo new image processing algorithms to the academic community (since Matlab is slow and frustrating to develop UI for).

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

More
14 Jul 2018 12:46 #114167 by Herzog
Making LinuxCNC appropriate for high end applications with high machine dynamics and very high precision would be cool.
For this kind of applications low excitation of vibrational modes is essential, and also low tracking errors in the drive control loops.

Commercial CNC's offer e.g. "bellshaped acceleration profiles" which have a steep drop off in the spectrum avoiding excitation of vibrational modes. Other "standard" features are e.g. "crosstalk compensation".

All this stuff needs time to be developed, time to make it reliable in order to work properly in every situation.
Help from Academia is welcome and needed.

LinuxCNC could be for them an easy to use platform to incorporate new algorithms for trajectory planning (TP) and G^2 cornering.
A better description of the actually implemented TP core algorithms would be helpful.

Let me know what you think about this.

best regards,

Raoul

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

Time to create page: 0.112 seconds
Powered by Kunena Forum