does linuxcnc have joint interpolation inside?

More
25 May 2018 07:53 - 25 May 2018 07:54 #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?
Last edit: 25 May 2018 07:54 by thang.

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

More
25 May 2018 14:06 #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 or Create an account to join the conversation.

More
29 May 2018 15:03 #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?
The following user(s) said Thank You: thang

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

More
29 May 2018 16:43 #111272 by thang


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 or Create an account to join the conversation.

More
29 May 2018 17:46 #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 or Create an account to join the conversation.

More
30 May 2018 04:46 #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 or Create an account to join the conversation.

More
30 May 2018 12:00 #111310 by andypugh

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 or Create an account to join the conversation.

More
30 May 2018 14:28 #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 or Create an account to join the conversation.

More
30 May 2018 14:31 #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 or Create an account to join the conversation.

More
30 May 2018 14:48 #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 or Create an account to join the conversation.

Time to create page: 0.133 seconds
Powered by Kunena Forum