motion channels for robotic atc library

More
8 months 4 days ago - 8 months 4 days ago #343672 by ihavenofish
So i had a craaazy idea for a little robot tool library.
Wondering how you would implement it in linuxcnc.

So we have our XYZA on our cnc. lets reserve B just in case we ever need a 5th.

That leaves 4 more axes available.
Our little tool robot will have an x2 y2 z2, and a x3 (fixed motion, likely air) and C do pivoting the gripper - again fixed motion.

Basically it is a cnc of its own, and needs to operate while the main machine is cutting so it can sort and stage tools. This is different from using C for an atc platter that is actually coordinated with the main machine.

How could we do this?can we decouple these new axes from the main motion as a "channel" ?



 
Last edit: 8 months 4 days ago by ihavenofish.

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

More
8 months 1 day ago #343673 by Marcos DC
LinuxCNC has a single realtime motion module (motmod).
All coordinated motion and joint updates go through that one trajectory planner and queue.
Even if you configure additional axes (U/V/W etc.), they still belong to the same motion instance.
There is no concept of a second independent motion channel inside one LinuxCNC process.

Industrial controllers sometimes give the impression that this should be possible because they support true multi-channel motion. For example, platforms like Omron Sysmac can run multiple independent motion groups or program contexts in parallel within the same controller. That capability is built directly into the motion kernel.

LinuxCNC, however, is architected around a single motion instance per process.

If you need the tool robot to move while the main machine is cutting, the practical solutions are:

• Run a second LinuxCNC instance / second controller for the tool robot and handshake via IO/fieldbus.

• Use an external PLC/MCU/drive sequencer for the robot and trigger it from LinuxCNC via M-codes or IO.

A “HAL-only second planner” is technically possible, but then you own all the safety, limits, interlocks and coordination logic yourself — and it tends to become fragile fast.

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

More
8 months 1 day ago #343674 by ihavenofish
Thanks, that's basically what I thought

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

More
8 months 23 hours ago - 8 months 23 hours ago #343675 by NWE
I've been thinking about this for some time.

Obviously the easiest way is probably going to be to run a second LinuxCNC pc. (Assuming I'm doing everything in LinuxCNC.)

Then I was thinking about the possibility of running a custom multi-instance capable tp component consisting of something like:
GUI <-hal-> [tp.0, tp.1, tp.2] <-hal-> [trivkins.0, scarakins.0, scarakins.1] <-hal-> I/O (mesa, lcec, etc)

Definately re-inventing most of the wheel. Can we make it any harder?
Last edit: 8 months 23 hours ago by NWE.

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

More
8 months 23 hours ago #343676 by NWE
One other possibility I considered, if it is possible to run just one at a time?
Could it then be done pausing the one and temporarily switching kinematics to run the other set of axis... say, toolchanger?

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

More
8 months 22 hours ago - 8 months 22 hours ago #343678 by rodw
Because the OP is on the Ethercat bandwagon (as are the commenters),
I have wondered about a seperate Ethercat component that does not consume an axis. I was mostly thinking about spindles but it might be able to morph into something with position control.


EDIT Running it on a seperate thread may give you enough independence...


RodW
Last edit: 8 months 22 hours ago by rodw.

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

Time to create page: 0.130 seconds
Powered by Kunena Forum