Trajectory Planner using Ruckig Lib

More
23 Jun 2024 05:11 #303606 by Becksvill
Thanks Grotius


Yes the multi axis stuff is where it would be great to have a decent lookahead

And we would really appreciate it
The following user(s) said Thank You: Lcvette

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

More
25 Jun 2024 07:56 #303741 by Grotius
Hi,

If i run this in a 9 axis config, it blends the corner, and therm condition=2. Wich means TC_TERM_COND_PARABOLIC.
It has a 4th axis a.

Warning: Spoiler!


Maybe i need a sample file where the motion stops each segment.
The following user(s) said Thank You: Lcvette, wellingtoncsouza

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

More
25 Jun 2024 13:44 #303751 by hmnijp
you can see a couple of example trajectories here -  rotary toolpath .
simpleTP with parabolic blending and 1 line look ahead and there is a reason for slow velocity - it never reaches target speed on them...

No problem with large motions(x0a0 -> x100a100) - all the problem is that any multi-axis trajectory = polyline of many microscopic motions(I attached two examples with screenshots at the link). Simple parabolic blending on each of line is not enough, you need global blending with tolerance... (what Rob Ellenberg's planner does for XYZ axes).
The following user(s) said Thank You: tivoi, Lcvette, Grotius

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

More
26 Jun 2024 09:15 #303817 by Becksvill
Grotius

I have a large 4axis program I can attach here if you like.

As others have said the issues arise when posting a lot of high accuracy gcode any move that includes the 4th axis (A axis) means that the look ahead reverts to 1 line.

Rather than something like 1000 lines ahead
The following user(s) said Thank You: Lcvette, Grotius

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

More
27 Jun 2024 20:37 #303933 by Grotius
@hmnijp,
Thanks for your contribution.

@Beckvill,
Please post the file, than i can save it to investegate later on.

For the question to enable 4th axis without disabling look ahead, i thought of making a simple solution.
This solution should be fine for 3d printers using a 4th axis for a extruder. The idea was to interpolate
the 4th axis given the current gcode line progress 0-100%.
And try to add it up to the fillet. 

For this i have to figur out the original trajectory planners workflow for fillets and make a intrusion somewhere.
This will take more then one day to investegate. So if this is a bad idea, i better do something else.

 
The following user(s) said Thank You: Lcvette

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

More
27 Jun 2024 22:42 #303936 by Grotius
Hi,

Made a sample video of the progress so far for hal-core-2.0.

The gui sends the jog commands to the hal-component "state_machine.so" via shared memory.
Jogging is done by using scurve.
Motion speeds, acc, jerk, etc, is saved within the program settings tab. No ini file is needed so far.
Qt has a nice save settings framework, wich works ok.

In the state_machine.so component, all info is there to write the trajectory planner coming time.

So far the code is compact.

The following user(s) said Thank You: Lcvette, tiagounderground

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

More
28 Jun 2024 18:07 #303983 by robh
was doing a simple little part with some very common deburing operation so throught id share that part of the code for you here to test with,
i have attached 2 sample G code File, both posted from fusion360 for multi axis deburing,
is posted in Inverse feed mode (G93)
feed rate is quite low due to linuxcnc inability to process multi axis code smoothly so hopefuly will aid in ability to soon run much smooth and faster :)

use as you wish, I hope it helps with testing out the planner etc on multi axis side of things

if intrested here is a video of what it should do when simulated.


setup wise its posted for a machine of a 3axis + B & C rotary indexer, C rotates around Z , B Around Y
DEBURING OPERATION 5AXIS 2 Contains B & C moves
DEBURING OPERATION 5AXIS  only C Moves in the feed contour
Attachments:
The following user(s) said Thank You: tivoi

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

More
01 Jul 2024 12:04 #304141 by automata
Hi Grotius,
I have been trying to find out the physical meaning of curvature and how to imagin G2 continuity in higher dimensions. I have not been having much success in that endavour.
This recently published paper I have found claims to use splines for filleting in 5 axis: A Novel Local Smoothing Method for Five-Axis
Machining With Time-Synchronization
Feedrate Scheduling ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9085380

I was hoping for some help to find some references on how to do filleting in higher dimensions to reduce the tangential jerk.

-automata
The following user(s) said Thank You: Grotius

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

More
01 Jul 2024 13:46 #304154 by Aciera
One possibility that comes to mind is to
1. smooth the tool position trajectory (ie XYZ) as Grotius has been doing
2. create a second 3d trajectory that is offset from the tool position trajectory by a fixed distance along the tool orientation vector
3. smooth this second trajectory using the same method as in step 1
4. calculate the smoothed tool orientation vectors
5. calculate the smoothed orientation angles (ABC) from the smoothed tool orientation vectors.


I found a paper that may describe the method above but I do not have access to the full text:
www.researchgate.net/figure/3D-clothoid-...ector_fig3_361356637
The following user(s) said Thank You: Grotius

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

More
01 Jul 2024 23:25 #304180 by Grotius
@Automata,

Nice document.
There is a video link from andy, in the video they show curvature.

@Arciera,
I think also a graphical representation of the abc optimalistion will be much easyer to do. For sure in opencascade.
If i draw the tool orientation vector lenght:10mm at each gcode line. Or at each known position.

Then i connect these tool orientation's at the top with a poly line.
Then create fillets inbetween the polylines? Then set tool orientation vector to touch the fillets?

Maybe a scetch would help to verify the steps.
 

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

Time to create page: 0.126 seconds
Powered by Kunena Forum