does linuxcnc have joint interpolation inside?

More
8 years 5 months ago #111105 by thang
I'm trying to use python interface to creat a new GUI to control an arm robot. It's pick and place type.

I see python interface can send MDI command that has linear and circular interpolation. Is it possible to send a command that control joints and reach pos-cmd at same time?

Please Log in to join the conversation.

More
8 years 5 months ago #111119 by thang
After looked at linuxcnc architecture, i see linuxcnc has interpolation inside but it doesnt have command to control multi joints. So i think i have to add 1 more function for: github.com/LinuxCNC/linuxcnc/blob/master...emc/motion/command.c
And convert to python in: github.com/LinuxCNC/linuxcnc/blob/master...ensions/emcmodule.cc .

There is a problem that i cant find where these commands are used.

Please Log in to join the conversation.

More
8 years 5 months ago #111266 by andypugh
I am not sure that I entirely understand the question.

The motion planner will drive the system in such a way that all moving axes will reach their end-points at the same time.

Are you saying that you want to operate joints directly from the Python interface rather than use the kinematics and MDI?

Please Log in to join the conversation.

More
8 years 5 months ago #111272 by thang

andypugh wrote:
Are you saying that you want to operate joints directly from the Python interface rather than use the kinematics and MDI?


Yes, it's like Point to point mode in robot controllers, just send joint values then robot will move to their end-points at the same time

Please Log in to join the conversation.

More
8 years 5 months ago #111277 by andypugh
I don't know if that is possible through canonicam motion commands (but then it isn't easy to get those linked to Python code outside a remap anyway).

What advantage does such motion have over coordinated motion in cartesian space?

Please Log in to join the conversation.

More
8 years 5 months ago #111303 by thang
It's much faster. In pick and place applications, they dont require so many linear and circle motions so joints can run at max velocity.

I read: github.com/LinuxCNC/linuxcnc/blob/master...emc/task/emccanon.cc . It doesnt have function i need.

I dont need to send these joint values via MDI command, just create a Python command to send them to pos-cmd, like how jog function work.

After looking into source code, i found the way linuxcnc use interpolation:
github.com/LinuxCNC/linuxcnc/blob/master...tion/control.c#L1079
My idea is create one more state that skips inv-kinematic and just uses "cubicInterpolate" function. How do you think about it?

Please Log in to join the conversation.

More
8 years 5 months ago #111310 by andypugh

thang wrote: It's much faster. In pick and place applications, they dont require so many linear and circle motions so joints can run at max velocity.


Are you sure about that? In coordinated mode during a rapid the speed will be limited by the most limiting joint. And there is no advantage in letting the other joints get to position faster, as they still have to wait for the limiting joint to finish.

You can probably move one joint at a time, in joint mode, through a defined distance, with the Python interface jog command.
linuxcnc.org/docs/devel/html/config/pyth..._linuxcnc_command_tt

Whether you have to wait for that to finish before moving another joint I don't know.

Please Log in to join the conversation.

More
8 years 5 months ago #111319 by thang
That isnt true, In coordinate mode, speed is limited by Axis velocity 1st, Axis and joint velocity are same only when we use trivkins (linuxcn 2.8pre).

Please Log in to join the conversation.

More
8 years 5 months ago #111320 by andypugh
I haven't experimented with whether joint velocity limits take over if the axis limits are set very large.

But in 2,8 I think that might be the case. (But then you might have looked, and I haven't)

Please Log in to join the conversation.

More
8 years 5 months ago #111321 by thang
i have tried it long time ago, if my memory isnt bad, the "following error" will occur when axis velocity limits set enough large.

Please Log in to join the conversation.

Time to create page: 2.615 seconds
Powered by Kunena Forum