On Sun, Aug 22, 2021 at 5:15 PM John Dammeyer <jo...@autoartisans.com> wrote:
> > > What's the goal? To traverse the path as accurately as possible or to > reduce the shaking from sudden speed changes (the jerk)? > "jerk" is not a chance in speed. Jerk is change in acceleration. Planning an optimum jerk limited curved path in n-dimension has no closed form solution. I think you only option is to do a simulation out to some future time horizon. Actually for a machine tool, why not run the simulation off-line and use as much time and computer power as it takes. What is the goal? Usually it is a complex compromise of time and accuracy. It could even be a different compromise at different locations on the part > Mostly just confused. > John > > > > > > > -----Original Message----- > > From: Curtis Dutton [mailto:curtd...@gmail.com] > > Sent: August-22-21 11:48 AM > > To: Enhanced Machine Controller (EMC) > > Subject: Re: [Emc-users] jerk control > > > > I have a desire to implement this. > > > > My business is in need of another cnc router and I will be building as > > high speed of a machine as I can afford. It is going to be a dual table > but > > a horizontal spindle. 1m x 1m working envelope. I plan on using linear > > motors. > > > > It will require jerk limiting to really get the value out of the machine. > > > > I have been working on bits and pieces in my spare time but I have very > > little time right now. > > > > > > My main approach so far is.... > > > > > > The realtime motion component will be enhanced so as to interpolate > nurbs > > curves. Those curves need be in a specific form of parameterization. > (coord > > length parameterized) > > > > > > The other part is in user space and it is the hard part. To perform > > blending of line segments it converts segments to nurbs curves, and > blends > > them together by fitting a segment of a clothoid (euler spirals) in > between > > them. It must do all of this while fitting within all of the velocity, > > accel, jerk and limit constraints. Then it reparameterizes these curves > for > > consumption by the motion component. > > > > This is essentially plotting a reasonable driving path on an N > dimensional > > race track. > > > > From some of the papers that I have read it looks like it will involve > > numerical integration and/or linear programming. Adding jerk equations > into > > standard physics makes it very much harder to solve. Closed form > equations > > don't really seem to exist. (If you have experience with this I could > > sorely use pointers, links, papers) > > > > > > Ultimately this is a very difficult task. Building a stripped down > version > > of a jerk controlled motion planner is what many people have done to > earn a > > PHD. > > > > > > I would be happy to join up with anyone else that is interested in > working > > on this. Even ideas, papers, demos is very helpful. Timeline for this... > > sadly a few years at best before completion. > > > > > > Thanks, > > Curt > > > > On Tue, Aug 17, 2021, 10:10 PM andrew beck <andrewbeck0...@gmail.com> > wrote: > > > > > Here is the text from your link sam > > > > > > > > > Ramped velocity in this case just means constant acceleration over the > > > whole segment. This is less optimal than a trapezoidal velocity > profile, > > > since the acceleration is not maximized. However, if the segment is > short > > > enough, there isn�t enough time to accelerate much before we hit the > next > > > segment. Recall the short line segments from the previous example. > Since > > > they�re lines, there�s no cornering acceleration, so we�re free to > > > accelerate up to the requested speed. However, if this line is between > two > > > arcs, then it will have to quickly decelerate again to be within the > > > maximum speed of the next segment. This means that we have a spike of > > > acceleration, then a spike of deceleration, causing a large jerk, for > very > > > little performance gain. This setting is a way to eliminate this jerk > for > > > short segments. > > > > > > Basically, if a segment will complete in less time than 1 / > > > ARC_BLEND_RAMP_FREQ, we don�t bother with a trapezoidal velocity > profile on > > > that segment, and use constant acceleration. (Setting > ARC_BLEND_RAMP_FREQ = > > > 1000 is equivalent to always using trapezoidal acceleration, if the > servo > > > loop is 1kHz). > > > > > > You can characterize the worst-case loss of performance by comparing > the > > > velocity that a trapezoidal profile reaches vs. the ramp: > > > > > > # v_ripple = a_max / (4.0 * f) # where: # v_ripple = average velocity > > > "loss" due to ramping # a_max = max axis acceleration # f = cutoff > > > frequency from INI > > > > > > For the aforementioned machine, the ripple for a 20Hz cutoff frequency > is > > > 100 / (4 * 20) = 1.25 IPS. This seems high, but keep in mind that it is > > > only a worst-case estimate. In reality , the trapezoidal motion > profile is > > > limited by other factors, such as normal acceleration or requested > > > velocity, and so the actual performance loss should be much smaller. > > > Increasing the cutoff frequency can squeeze out more performance, but > make > > > the motion rougher due to acceleration discontinuities. A value in the > > > range 20Hz to 200Hz should be reasonable to start. > > > > > > Finally, no amount of tweaking will speed up a toolpath with lots of > small, > > > tight corners, since you�re limited by cornering acceleration. > > > > > > On Wed, Aug 18, 2021, 2:06 PM John Dammeyer <jo...@autoartisans.com> > > > wrote: > > > > > > > This is what we're talking about right? > > > > Ramping acceleration? > > > > https://www.mmsonline.com/articles/understanding-jerk-control > > > > > > > > John > > > > > > > > > > > > > -----Original Message----- > > > > > From: Feral Engineer [mailto:theferalengin...@gmail.com] > > > > > Sent: August-17-21 6:46 PM > > > > > To: Enhanced Machine Controller (EMC) > > > > > Subject: Re: [Emc-users] jerk control > > > > > > > > > > I'm curious what the current level of block lookahead is on lcnc > > > compared > > > > > to commercial controls. Anyone know the amount of data buffering > that > > > it > > > > > can handle? > > > > > > > > > > Phil T. > > > > > The Feral Engineer > > > > > > > > > > Check out my LinuxCNC tutorials, machine builds and other antics at > > > > > www.youtube.com/c/theferalengineer > > > > > > > > > > Help support my channel efforts and coffee addiction: > > > > > www.patreon.com/theferalengineer > > > > > > > > > > On Tue, Aug 17, 2021, 9:36 PM Sam Sokolik <samco...@gmail.com> > wrote: > > > > > > > > > > > It would be the same setup... Just using servo amps.. > Velocity out > > > > of > > > > > > the pid - position back from the encoders. > > > > > > > > > > > > On Tue, Aug 17, 2021, 8:14 PM andrew beck < > andrewbeck0...@gmail.com> > > > > > > wrote: > > > > > > > > > > > > > Not sure Sam. > > > > > > > > > > > > > > I have a 7i77 on this mill though also. So analog control > > > > > > > > > > > > > > On Wed, Aug 18, 2021, 12:51 PM Sam Sokolik <samco...@gmail.com > > > > > > wrote: > > > > > > > > > > > > > > > I am going to ask a stuid question.. If you have a velocity > run > > > > step > > > > > > gen > > > > > > > > with pid. Couldn't you hook a limit3 between the pid and > > > steghen. > > > > > > > > Because the input is velocity instead of position - wouldn't > the > > > > > > > > acceleration limit in the limit3 be jerk instead of > acceleration? > > > > I > > > > > > am > > > > > > > > sure it doesn't work that way.. I was just thinking you have > > > moved > > > > the > > > > > > > > derivatives up one.. > > > > > > > > > > > > > > > > (I can tell you it doesn't seem to work in practice - > probably > > > > because > > > > > > > the > > > > > > > > pid will always try to correct the error. Like maybe you > would > > > > need to > > > > > > > > negate the limit3 amount on the feedback side..) > > > > > > > > > > > > > > > > On Tue, Aug 17, 2021 at 1:28 PM Scott Harwell via Emc-users < > > > > > > > > emc-users@lists.sourceforge.net> wrote: > > > > > > > > > > > > > > > > > I haven't tried it yet, but this looks promising. > > > > > > > > > LinuxCNC S-Curve Accelerations > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Scott H > > > > > > > > > > > > > > > > > > > > > > > > > > > On Tuesday, August 17, 2021, 12:57:06 PM CDT, Ralph > > > Stirling > > > > < > > > > > > > > > ralph.stirl...@wallawalla.edu> wrote: > > > > > > > > > > > > > > > > > > I've also been hoping to see this appear in a Linuxcnc > update, > > > > > > > > > as it has been worked on by a number of people for years. > > > > > > > > > Here are the most recent threads about jerk-limited > trajectory > > > > > > > planning: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://forum.linuxcnc.org/24-hal-components/40152-jerk-limited-trajectory-planner-hal-component > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://forum.linuxcnc.org/38-general-linuxcnc-questions/34666-c2-smooth-velocity-profile?start=0 > > > > > > > > > > > > > > > > > > -- Ralph > > > > > > > > > ________________________________________ > > > > > > > > > From: David Berndt [ber...@uberwin.com] > > > > > > > > > Sent: Tuesday, August 17, 2021 9:01 AM > > > > > > > > > To: Enhanced Machine Controller (EMC); andrew beck > > > > > > > > > Subject: Re: [Emc-users] jerk control > > > > > > > > > > > > > > > > > > CAUTION: This email originated from outside the Walla Walla > > > > > > University > > > > > > > > > email system. > > > > > > > > > > > > > > > > > > > > > > > > > > > I don't have a great need for it with my machines, or the > > > > time/brains > > > > > > > to > > > > > > > > > implement it. It just seems like a feature we really should > > > have. > > > > > > > > > > > > > > > > > > I'd be willing to participate monetarily in some sort of > > > > system to > > > > > > > > > incentivize the inclusion of jerk control. Perhaps an > > > open-source > > > > > > > feature > > > > > > > > > bounty? Does the community want to consider that sort of > thing? > > > > > > > > > > > > > > > > > > -Dave > > > > > > > > > > > > > > > > > > On Mon, 16 Aug 2021 23:06:05 -0400, andrew beck < > > > > > > > > andrewbeck0...@gmail.com> > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > hey guys > > > > > > > > > > > > > > > > > > > > I am sitting here watching my cnc mill atm its shaking > quite > > > a > > > > bit > > > > > > > > > > acceleration is 600mm/sec2 which is not that high i > think. > > > > > > compared > > > > > > > > to > > > > > > > > > > every other cnc mill i have used with a commercial > > > controller. > > > > > > they > > > > > > > > have > > > > > > > > > > jerk control and work much better. so looking forward to > > > when > > > > we > > > > > > get > > > > > > > > > > jerk > > > > > > > > > > control here on linuxcnc! > > > > > > > > > > > > > > > > > > > > but in the mean time i need a poor mans jerk control and > > > > thinking > > > > > > of > > > > > > > a > > > > > > > > > > limit on the pid output to chop down the initial > acceleration > > > > for > > > > > > the > > > > > > > > > > first > > > > > > > > > > moment in time just so little moves don't shake it to > death > > > > > > > > > > > > > > > > > > > > andy mentioned that I could maybe use a limit component > to > > > > limit > > > > > > the > > > > > > > > > > initial acceleration for the first tiny moment in time > to cut > > > > down > > > > > > on > > > > > > > > the > > > > > > > > > > vibrations. > > > > > > > > > > > > > > > > > > > > how do you guys think that could work? > > > > > > > > > > > > > > > > > > > > Regards > > > > > > > > > > > > > > > > > > > > Andrew > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > > > > > Emc-users mailing list > > > > > > > > > > Emc-users@lists.sourceforge.net > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Femc- > > > > > users&data=04%7C01%7Cralph.stirling%40wallawalla.edu > > > > %7C7457b9607a2d4747a1e508d961a1b508%7Cd958f048e43142779c8de > > > > > > > > > > > > > > > bfb75e7aa64%7C0%7C0%7C637648169423748846%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJB > > > > > > > > > > > > > TiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=ue%2BwIaVhfay08NBevlCAvyOoNp0qVz9ojUuigRuCOOs%3D&reserved=0 > > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > > > > Emc-users mailing list > > > > > > > > > Emc-users@lists.sourceforge.net > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.sourceforge.net%2Flists%2Flistinfo%2Femc- > > > > > users&data=04%7C01%7Cralph.stirling%40wallawalla.edu > > > > %7C7457b9607a2d4747a1e508d961a1b508%7Cd958f048e43142779c8de > > > > > > > > > > > > > > > bfb75e7aa64%7C0%7C0%7C637648169423748846%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJB > > > > > > > > > > > > > TiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=ue%2BwIaVhfay08NBevlCAvyOoNp0qVz9ojUuigRuCOOs%3D&reserved=0 > > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > > > > Emc-users mailing list > > > > > > > > > Emc-users@lists.sourceforge.net > > > > > > > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > > > > Emc-users mailing list > > > > > > > > > Emc-users@lists.sourceforge.net > > > > > > > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > > > Emc-users mailing list > > > > > > > > Emc-users@lists.sourceforge.net > > > > > > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > > Emc-users mailing list > > > > > > > Emc-users@lists.sourceforge.net > > > > > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > > Emc-users mailing list > > > > > > Emc-users@lists.sourceforge.net > > > > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > > > > > > > > > > _______________________________________________ > > > > > Emc-users mailing list > > > > > Emc-users@lists.sourceforge.net > > > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > > > > > > > > > > _______________________________________________ > > > > Emc-users mailing list > > > > Emc-users@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > > > > _______________________________________________ > > > Emc-users mailing list > > > Emc-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > > > > _______________________________________________ > > Emc-users mailing list > > Emc-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/emc-users > > > > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users > -- Chris Albertson Redondo Beach, California _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users