Trajectory Planner using Ruckig Lib

More
2 years 5 months ago #301848 by automata
@Grotius and @Andrew2085
Awesome work. 
Some of the parameters used by Delta controllers for high speed machining can be found in the NC300 manual.
deltronics.ru/images/manual/CNC_Milling-...M_MM_EN_20210630.pdf
Parameters for path modification / blending Page 12-5, 12-6 (pg 306): Param 329, 330, 331, 332, 333
Parameters for feedrate modification Page 12-4 (pg 305):   Param 309, 311, 319, 320, 321, 322

This may point the way.
Regards,
automata

Please Log in to join the conversation.

More
2 years 5 months ago #301850 by andrew2085
I'm going to convert the bi-clothoid stuff I've tested so far into C++. I tested using Gaussian quadrature in Python to numerically integrate the clothoid. It's seems unreasonably fast and unreasonably accurate to the point that it seems like magic. Evaluating the derivative at only 5 points is giving an integral with an error of around 1e-11 to 1e-17.

Edit:
Here is the start of it:  github.com/a-downing/clothoid

Please Log in to join the conversation.

More
2 years 5 months ago #301885 by Grotius
@Andrew,

Amazing work so far !.

I cloned the scurvy lib today. It is to be compiled c++ 23.
I use up to c20. For some reason i could not resolve to
get it c23 compiled. Looking for updating the compiler, but was newest version.

Then i could convert the println functions to printf. But there where also other c23 function that where more
complicated to convert.

Is it possible to convert to c20 or lower? This should be perfect.

Now going to look at the clothoid lib. Maybe i have questions later on. Thanks so far.

Evaluating the derivative at only 5 points is giving an integral with an error of around 1e-11 to 1e-17.
This is perfect. < 1e-6 is acceptable.

Another question.
I tested 2 nurb libs today. One of them was only 2d and very slow.
The other was OpenNurbs , this one is also very fast. And did a good job for 3d.

So i could create the 7 controlpoint example in opencascade. This works ok.

The question is, if i want to make a nurb with 100 waypoints for example. I don't know how the knot
vector should look like. Maybe i have to look further to understand how to build a nurb going over all the
gcode lines.

I was able to dynamicly load the points, load the knot vector. But the result was not ok.
Maybe you have experience with it?

Please Log in to join the conversation.

More
2 years 5 months ago #301886 by Grotius
@Andrew,

The biclothoid lib runs now. Will try to get visual output in opencascade from your main file example.

Please Log in to join the conversation.

More
2 years 5 months ago #301887 by andrew2085
I think the only c++23 feature I used besides std::println is std::expected, you should only need to change a couple lines to just return the value directly. It's in scurvy::solve in scurvy.h. I don't really need them, they're just convinient to use to do fast work. On systems with old gcc versions I usually just compile the latest version of gcc and install to /opt.

I just added a Line class to the clothoid project and pushed to github. This is technically right, but its also wrong. Hopefully I just overlooked something. 

Attachment not found

Please Log in to join the conversation.

More
2 years 5 months ago #301892 by Grotius
Hi Andrew,

Will look tomorrow if i can fix the scurvy.
The clothoid lib compiles in qt. However loaded into the lcnc project. It has problems with c23.
So i can make first shared lib of the clothoid lib and then just link it.
 

Please Log in to join the conversation.

More
2 years 5 months ago #301921 by andrew2085
Got it, atan2 returns an angle from -pi to pi, but the clothoid stuff works with angles between 0 and 2pi.

Attachment not found

Please Log in to join the conversation.

More
2 years 5 months ago #301943 by Grotius
Hi Andrew,

I just added a Line class to the clothoid project and pushed to github. This is technically right, but its also wrong. Hopefully I just overlooked something. 
I have seen this behaviour before using a  spline lib in opencascade a few year ago.
When corners become tight, the spline used that solution.
Nice you found the solution to normalize it to be a max of 2*M_PI.

The clothoid library now works along the linuxcnc program.

The clothoid source code is now in the linuxcnc vendor dir:
clothoid_andrew

To make it myself easy i have brought all your code into a source file.
If you make any modifications, i just have to copy, paste code.

Then your code is in class clothoid_intf, This interface will be used to make your arc & line shapes
compatible with the linuxcnc arc & line primitives. A little bit of shape conversion code will appear there.

This is your test example using a line and arc, creating a clothoid fillet. It works perfect !

Attachment not found



So far so good ! Now let's try to get the scurvy going.

Please Log in to join the conversation.

More
2 years 5 months ago #301948 by andrew2085
I can take the c++23 stuff out of scurvy now. I should probably also add some notes to the readme on how to use it. Also I'm not sure if you noticed or not, but currently it only solves one s-curve given the constraints, it doesn't try to do more. I figured the task of joining multiple segments together with matching end and beginning velocities should be handled one level of abstraction higher.

For the clothoid stuff I need to look into the part where the maximum deviation from the path is calculated.

Please Log in to join the conversation.

More
2 years 5 months ago #301950 by Grotius
Hi Andrew,

The scurvy lib compiles now. It's a little strange, it won't compile to executable, but will compile to shared lib.
I only commented out the println's. Will finish it later on this day.

Also I'm not sure if you noticed or not, but currently it only solves one s-curve given the constraints,
No, not noticed. Have to run the example later on this day. I am curious fur sure !.

For the clothoid stuff I need to look into the part where the maximum deviation from the path is calculated.
Ok. This is the intersection point of the 2 segments to the closest clothoid fillet point i guess?
Take your time. I will have work to do, to get the clothoid interface fertig.

Thanks so far.

Please Log in to join the conversation.

Time to create page: 1.110 seconds
Powered by Kunena Forum