New Trajectory Planner - Testers/programs wanted

More
14 May 2014 06:31 - 15 May 2014 04:36 #46903 by DaBit
[edit]duplicate post[/edit]
Last edit: 15 May 2014 04:36 by DaBit. Reason: duplicate post

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

More
14 May 2014 06:32 #46904 by DaBit
rellenberg: your TP did an extremely good job on these curved milling paths.



It managed to keep the feedrate up and, more important, constant through the curves.
Around 18000 blocks of G-code, milling time in total an hour or so.

With the default TP I would have to set the tolerances really loose to prevent constant acceleration/deceleration.

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

More
14 May 2014 19:26 #46920 by kostas
The new trajectory planner made a huge difference for me, since I'm experimenting with laser rastering with code that has millions of small F1s/M67s

something like this
g0 x0 y 0.1
g1 x 0.0 m67 e0 q 0.0
g1 x 0.1 m67 e0 q 0.723347424421
g1 x 0.2 m67 e0 q 1.44669484884
g1 x 0.3 m67 e0 q 2.17004227326
g1 x 0.4 m67 e0 q 2.89338969769
g1 x 0.5 m67 e0 q 3.61673712211
g1 x 0.6 m67 e0 q 4.34008454653
g1 x 0.7 m67 e0 q 5.06343197095

and so on ..

The speed difference is huge, with 2.5.4 max feedrate was a little above 300mm/min while with the new planner the feedrate goes up to my max 7500mm/min. At first I had some problems going beyond 6000mm/min, but then changed the lookahead parameter in INI file and the feedrate climbed up to my machine maximum. Excellent!

In the next few days I hope that I will have my setup ready for real laser burning, so I'll see if my experiments will be fruitful! ;)

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

More
14 May 2014 19:49 #46923 by kostas
I'd also like to report a behaviour I can't understand. This small g-code program is treated differently from the planner, based on where the tool is located initially.
g21
f7500

g0 x -10  y 0.1
g1 x0 m67 e0 q0
g1 x 0.1 m67 e0 q 218.453333333
g1 x 0.2 m67 e0 q 436.906666667
g1 x 0.3 m67 e0 q 655.36
g1 x 0.4 m67 e0 q 873.813333333
g1 x 0.5 m67 e0 q 1092.26666667
g1 x 0.6 m67 e0 q 1310.72
g1 x 0.7 m67 e0 q 1529.17333333
g1 x 0.8 m67 e0 q 1747.62666667
g1 x 0.9 m67 e0 q 1966.08
g1 x 1.0 m67 e0 q 2184.53333333
g1 x 1.1 m67 e0 q 2402.98666667
g1 x 1.2 m67 e0 q 2621.44
g1 x 1.3 m67 e0 q 2839.89333333
g1 x 1.4 m67 e0 q 3058.34666667
g1 x 1.5 m67 e0 q 3276.8

...

g1 x 29.5 m67 e0 q 64443.7333333
g1 x 29.6 m67 e0 q 64662.1866667
g1 x 29.7 m67 e0 q 64880.64
g1 x 29.8 m67 e0 q 65099.0933333
g1 x 29.9 m67 e0 q 65317.5466667
g1 x 30.0 m67 e0 q 65536.0
g1 x 40 m67 e0 q0

m2

I'm doing some overscan before and after the line, so that the laser will have the correct velocity before it starts rastering. If the tool is located at the end of the line so that the "g0 x-10 y0.1" makes it move at rapid, everything works as expected, except for the last g1 which has an acceleration/deceleration of its own, which I also don't understand. The screenshot "laser_overscan_2.png" visualizes the moves.

As seen on "laser_overscan_1.png" though, the machine moves differently if the tool is already located at x-10. The first g1 x0 accelerates/decelerates and then accelerates again when it sees the rest of the g1s ..

Is this something normal I don't understand?
Attachments:

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

More
14 May 2014 20:49 #46927 by rellenberg
I'm glad to see such a performance boost! The velocity dips you are seeing at the beginning and end are due to how the TP handles a "short" queue. The short story is, it's a known issue. It stems from the motion module not knowing the current interpreter state.

The origin of this issue is in the way we do lookahead. The velocity lookahead can only work on segments that have a known length. The last segment in the queue has a nominal length, but if another segment is added, then it could be blended with this new segment. In this case, the segment will be shortened. So, this means that we can only trust that the 2nd-to-last segment in the queue has a known length.

The current method code has a simple band-aid fix. If the queue is less than 3 segments deep, it assumes that the last segment will not be arc-blended, locks down its length, and runs lookahead over the queue. However, this means that a new segment added later will do parabolic blending instead of arc blending, which slows the motion down at that point.

Practically, it means that any time the queue gets very short, the blending behavior will not be optimal.

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

More
14 May 2014 21:36 #46928 by kostas
Ok, got it (partially :))

What I can't understand now is how it is affected by the queue at the beginning of the line, where the queue is not small (or I misunderstood something), but also how this does not happen after the rapid move. Also, it does not look like a non optimal blending, but more like a full machine stop there. Would a non optimal blending make the velocity go down to nearly zero?

My band aid is adding some small (1mm) g1s at the overscan area, so that the queue is always well filled!

My many thanks and congrats to your work! And the timing with my experiments was great also, so I'm really thrilled about it :woohoo:
Attachments:

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

More
14 May 2014 21:40 #46929 by rellenberg
Yeah, it's annoying because you get that hiccup when the queue is less than 3 segments long, which happens at the beginning of the program (as it's first filling up). This may also happen during "queue buster" commands like turning on/off the spindle.

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

More
19 May 2014 12:49 #47040 by JZHA1985
I am getting together a second computer to test this all on.
I have programs at are a few hundred thousand lines long so I'm dying to try.

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

More
20 May 2014 20:44 - 20 May 2014 20:45 #47097 by 1240
I just now start to write in English
Excuse me in advance.

New TP are present in LinuxCNC 2.6.0-pre1 (or Later)?
i mean
linuxcnc.org/index.php/english/forum/29-...nc-260-pre1-released
Last edit: 20 May 2014 20:45 by 1240.

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

More
21 May 2014 06:21 #47124 by andypugh

New TP are present in LinuxCNC 2.6.0-pre1


No.

I believe it is present in Machinekit.

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

Time to create page: 0.153 seconds
Powered by Kunena Forum