Trajectory Planner using Ruckig Lib
- Grotius
- Away
- Platinum Member
Less
More
- Posts: 2239
- Thank you received: 1956
08 Dec 2024 14:48 #316249
by Grotius
Replied by Grotius on topic Trajectory Planner using Ruckig Lib
Hi Rob,
looks like you have been bussy Grotius
Yeahh...
ill try and find the page in one of my manuals for lathe and share will give you some ideas i think
Perfect.
The super imposed interpreter itself does not track the axis positions as it run's non-realtime.
I see no reason to run it realtime.
Each (sub) interpreter has it's own motion component running on the servo_thread 1ms.
Responsible for scurve motion, probing sequence, homing, etc.
Then the base_tread has it's own components running to execute the position commands from the motion components.
This can be a ethercat servo, a stepgen component, a probe input sensor, etc.
The position feedback is done in the base_thread's, this feedback is stored in the shared memory region(s).
The gui, servo_thread, base_thread, can see the feedback positions by just calling the shared memory name and value.
Will introduce axis group's.
And introducing global variables that can be used by all 3 interpeters. As they now have their variables only local.
Finally i now can start the qt program and start the servo_thread & base_thread from there using a rt_loader class.
Before today this was a problem.
Now also using multiple shared memory region's works fine.
Edit 07 Dec 2024 12:10:
Today did a mayor bug fix. It turn's out that multiple shared memory regions updated by thread's, would not exchange data
properly. Even when mutex etc. was set.
In the end it worked by using a single shared memory region for all thread's.
This is now solved in the source code. Was not the cause.
looks like you have been bussy Grotius
Yeahh...
ill try and find the page in one of my manuals for lathe and share will give you some ideas i think
Perfect.
The super imposed interpreter itself does not track the axis positions as it run's non-realtime.
I see no reason to run it realtime.
Each (sub) interpreter has it's own motion component running on the servo_thread 1ms.
Responsible for scurve motion, probing sequence, homing, etc.
Then the base_tread has it's own components running to execute the position commands from the motion components.
This can be a ethercat servo, a stepgen component, a probe input sensor, etc.
The position feedback is done in the base_thread's, this feedback is stored in the shared memory region(s).
The gui, servo_thread, base_thread, can see the feedback positions by just calling the shared memory name and value.
Will introduce axis group's.
And introducing global variables that can be used by all 3 interpeters. As they now have their variables only local.
Finally i now can start the qt program and start the servo_thread & base_thread from there using a rt_loader class.
Before today this was a problem.
Now also using multiple shared memory region's works fine.
Edit 07 Dec 2024 12:10:
Today did a mayor bug fix. It turn's out that multiple shared memory regions updated by thread's, would not exchange data
properly. Even when mutex etc. was set.
In the end it worked by using a single shared memory region for all thread's.
This is now solved in the source code. Was not the cause.
The following user(s) said Thank You: tommylight, tivoi, Lcvette, endian, smc.collins
Please Log in or Create an account to join the conversation.
- smc.collins
- Offline
- Platinum Member
Less
More
- Posts: 690
- Thank you received: 123
11 Dec 2024 14:47 #316469
by smc.collins
Replied by smc.collins on topic Trajectory Planner using Ruckig Lib
Grotius, we should chat by email
Please Log in or Create an account to join the conversation.
- Lcvette
- Away
- Platinum Member
Less
More
- Posts: 1195
- Thank you received: 619
14 Dec 2024 14:02 #316646
by Lcvette
I have a question regarding the current Trajectory planner and since you have been in it elbow deep i was wondering if i could bounce it off you to see if it may be feasible for those of use who are experiencing some pretty bad effects of it. I don't want to hijack this thread and was wondering if we might chat in realtime? this is the QtPyVCP chat room link below please feel free to drop in, you can ping me with @Lcvette in the room and I will get a notification!
matrix.to/#/#qtpyvcp:matrix.org
Thanks Grotius, I hope to chat soon!
Chris
Replied by Lcvette on topic Trajectory Planner using Ruckig Lib
Sounds very exciting! like an overhaul of linuxcnc without the constraints of outdated sections. very cool indeed!Hi Lcvette,
It's indeed a alternative controller, once it finished.
This can take a long time. Some are good coding day's, some are bad coding day's without good progress.
It turned out, modifying lcnc's code to do thing's i would see accomplished is almost impossible.
Best reason is entanglement.
Then just writing new code from scratch is 10x faster to get things done.
There are no goals for me. It's just a project to try out new things wich got my interest's.
It's not the purpose to outsmart lcnc or something like that. Or claiming thing are better etc.
Altrough it is interesting to find out differences in lcnc and this approach.
Like this has bi-directional hal pins and used modern boost interprocess for shared memory.
Today did a mayor bug fix. It turn's out that multiple shared memory regions updated by thread's, would not exchange data
properly. Even when mutex etc. was set.
In the end it worked by using a single shared memory region for all thread's.
I have a question regarding the current Trajectory planner and since you have been in it elbow deep i was wondering if i could bounce it off you to see if it may be feasible for those of use who are experiencing some pretty bad effects of it. I don't want to hijack this thread and was wondering if we might chat in realtime? this is the QtPyVCP chat room link below please feel free to drop in, you can ping me with @Lcvette in the room and I will get a notification!
matrix.to/#/#qtpyvcp:matrix.org
Thanks Grotius, I hope to chat soon!
Chris
The following user(s) said Thank You: Grotius
Please Log in or Create an account to join the conversation.
Time to create page: 0.084 seconds