Trajectory Planner using Ruckig Lib
23 Jun 2024 05:11 #303606
by Becksvill
Replied by Becksvill on topic Trajectory Planner using Ruckig Lib
Thanks Grotius
Yes the multi axis stuff is where it would be great to have a decent lookahead
And we would really appreciate it
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.
25 Jun 2024 07:56 #303741
by Grotius
Replied by Grotius on topic Trajectory Planner using Ruckig Lib
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.
Maybe i need a sample file where the motion stops each segment.
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!
G21 G90 G40
G64 P10.0
G17
S1 F12000
M3
G0 x0 y0 z0 a0
G1 x100 y0 z1 a100
G1 x100 y100 z0 a110
G1 x100 y0 z1 a120
G1 x0 a0
M5
m30
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.
25 Jun 2024 13:44 #303751
by hmnijp
Replied by hmnijp on topic Trajectory Planner using Ruckig Lib
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).
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).
Please Log in or Create an account to join the conversation.
26 Jun 2024 09:15 #303817
by Becksvill
Replied by Becksvill on topic Trajectory Planner using Ruckig Lib
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
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
Please Log in or Create an account to join the conversation.
27 Jun 2024 20:37 #303933
by Grotius
Replied by Grotius on topic Trajectory Planner using Ruckig Lib
@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.
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.
27 Jun 2024 22:42 #303936
by Grotius
Replied by Grotius on topic Trajectory Planner using Ruckig Lib
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.
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.
28 Jun 2024 18:07 #303983
by robh
Replied by robh on topic Trajectory Planner using Ruckig Lib
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
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
The following user(s) said Thank You: tivoi
Please Log in or Create an account to join the conversation.
01 Jul 2024 12:04 #304141
by automata
Replied by automata on topic Trajectory Planner using Ruckig Lib
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
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.
01 Jul 2024 13:46 #304154
by Aciera
Replied by Aciera on topic Trajectory Planner using Ruckig Lib
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
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.
01 Jul 2024 23:25 #304180
by Grotius
Replied by Grotius on topic Trajectory Planner using Ruckig Lib
@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.
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