hal-core

More
06 Dec 2021 08:46 - 06 Dec 2021 08:54 #228426 by AlessandroT
Replied by AlessandroT on topic hal-core
Last edit: 06 Dec 2021 08:54 by AlessandroT.

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

More
07 Dec 2021 08:55 #228510 by Grotius
Replied by Grotius on topic hal-core
Hi,

If you give me the company link, i will contact you.
P.s. is this your github account? github.com/alessandrotorre

We want to test it in a multipurpose application
I am still making progress every day. Some parts of the code take a lot off time.
It can be used offline and online. This makes testing easyer.
What kind of multi purpose application are you thinking about? If you have any 3d drawings of the application, i can add it to the config like i did previously for a fanuc tig weld app. If your config is closed source then you can use the software as it is.
My motivation is learn how to write software and write free software for the linux community.


 

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

More
07 Dec 2021 09:04 #228512 by AlessandroT
Replied by AlessandroT on topic hal-core
Thanks Grotius for the reply.

Yes I started with linuxcnc and 3D printing long time ago and I'm very thankful for the existence of this community that is really crazy and amazing!:)
Our company name is "rev3rd".. If you google it you can find us. I think your motivation is completely in line with our philosophy.
If we could have a videocall i will explain you more and maybe if we could make progress, share the progress for everybody here.
The pourpose is the hybrid manufacturing:
Printing and milling! :)

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

More
07 Dec 2021 09:13 #228514 by Grotius
Replied by Grotius on topic hal-core
Hi,

I have contacted your website and sent info to it. You may call me by wattsapp in about 30 minutes.



 

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

More
07 Dec 2021 09:31 - 07 Dec 2021 09:44 #228517 by AlessandroT
Replied by AlessandroT on topic hal-core
thanks, but the email is not received...
 
Last edit: 07 Dec 2021 09:44 by AlessandroT.

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

More
15 Dec 2021 21:06 #229163 by Grotius
Replied by Grotius on topic hal-core
Hi,

A tiny hal-core update.

Working on the trajectory planner for day's now.

I had problem's with the ruckig s-curve motion planner when using end-velocity's. That's solved now.
In general coding the trajectory planner with a s-curve is a difficult job. Things like adative-feed, velocity-overide, controlled stop, velocity transition etc have to be coded. Then on top we have a path optimizer to calculate the perfect velocity's from the gcode file, this replaces a look ahead function.

Hopely i can show a new video within a few day's to show the progress.
Bye bye !
 

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

More
15 Dec 2021 21:41 #229167 by Dave3891
Replied by Dave3891 on topic hal-core
Hi Grotius,

Looks like you are making great progress on this project, I am really impressed with how fast your are going.

I am looking at the code (V1.20) and I had some questions about how everything is interacting with each other.

Is it correct that the flow from motor to control would go like this:
Stepper Motor -> HalStepgen -> HalKinematic -> HalTrajectory -> GUI

If I wanted to make a really simple GUI to jog a 6 axis robot in a XYZ plane with no 3D visual feedback and only DRO, would I just send commands to the HalTrajectory component?

Also I am not really familiar with the euler parameters, but I see you are using it a lot with axis and jogging. Would you be able to explain what that is?

Sorry for all the questions, I just want to get a full grasp of the system before I start trying it out.
 

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

More
16 Dec 2021 09:19 #229182 by Grotius
Replied by Grotius on topic hal-core
Hi,

To jog a robot without a gui and just using the kinematics, you could look at this project.
It will work by using halcmd to jog. Using a graphical interface would be easyer for debugging.
The workflow you suggested is correct. Looking at the ./runtest file's will give you the tested workflow.

The euler angles is the 3d rotation of the toolposition or last joint position of the machine or robot kinematic chain.
It is the same as jaw,pitch,roll but then defined as euler xyz.
Euler xyz is for me easyer to use then jaw,pitch,roll because in the graphics you can directly see by the colored axis origin on wich axis the
tool will rotate. Then related to lcnc, there are no euler xyz gode names. For the euler xyz we use the gcode a,b,c letters.

So a 3d gcode in hal-core will look like : G1 X0 Y0 Z0 A0 B0 C0 U100 F1400 S100 M300 P45 M301 P11
  • g1 (lineair movment)
  • xyz (toolcenterrpoint tcp).
  • abc (euler xyz toolposittion in degrees).
  • u (can be a gripper or exernal axis position).
  • f (feedrate).
  • s (spindlespeed).
  • m (macro).
  • p (marco value of type double, for example set output 300 to value 45).
The hal trajectory component can read gcode and perform a motion. It is connected to the hal-kinematic component. It's a basic example
how to perform motion. .

If you look at my current work, /opt/hal-core/src/hal/components/matrix, this is a all in one component. Currently in development stage.
It has benefits like using dynamic memory in c. Correct memory release for opencascade when closing drawings.
Fail safe double[4][4] rotation-translation matrixes connection between kinematics and graphics for each joint.
It has improved algo's, but still working on it every day. The graphics are just amazing. I hope the result of the trajectory planner will be
amazing to.

If you have any questions or problems, just ask.













 

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

More
17 Dec 2021 03:00 #229263 by Dave3891
Replied by Dave3891 on topic hal-core
Hi Grotius,

Thank you for the explanation, it makes a lot more sense now.

Looking at that example, am I right in assuming that velocity and acceleration and speed are either handled with the stepgen module or by feeding in small chunks of movements to the kinematics module?
I did not see any speed/velocity pins in the kinematics module so I am assuming that it takes the XYZ request and gives the J0-J5 end positions instantly?

Sorry for all the questions.

 

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

More
20 Dec 2021 16:19 #229557 by Grotius
Replied by Grotius on topic hal-core
Hi Dave,

Looking at that example, am I right in assuming that velocity and acceleration and speed are either handled with the stepgen module or by feeding in small chunks of movements to the kinematics module?
Yes, stepgen handles that in the example.

I did not see any speed/velocity pins in the kinematics module so I am assuming that it takes the XYZ request and gives the J0-J5 end positions instantly?
Yes, the kinematics only calculates the positions visa versa.

For hal-core i am busy with the scurve library for several day's now.
The ruckig scurve lib has some problems:
  • In a realtime 1ms kernel powered thread bringing back the current velocity to 0.001 will crash at longer paths.
  • End velocity accuracy out of control when crossing waypoints.
  • When end velocity can not be reached, ruckig end velocity value is 0 instead of value at end of path.
My own scurve lib is able to cross the waypoints with perfect endvelocity. But... it had no realtime velocity transition
under the hood.

So i started for the third time coding my scurve lib.
Now hoping to get everything ok within a few day's. I think i make a flag so lineair transition can be added in the
scurve between the concave and convex period. This makes the machine even faster as a normal scurve.
A period of lineair transition is all the time "2* max acceleration".

The picture shows the front curve, using a concave and convex period.
The curve can do a acceleration start value, and a acceleration end value.
I am coding it as stand alone c/c++ compatible library.











 

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

Time to create page: 0.550 seconds
Powered by Kunena Forum