TCP 5-axis kinematics

More
9 years 11 months ago - 7 years 2 months ago #82650 by jsskangas
Hello

I have an old Mori Seiki MV jr retro fitted with linuxcnc, nikken 5-axis table and indramat servos.
5 axis and its kinematics has been on and off in my mind.


I would like to run linuxcnc in TCP (tool center point) mode, in linuxcnc this is I think called kinematic.
But I would like to run machine in two different modes while its running a program.

First mode would be independent axis X is X and so on, in this mode rotating rotary axis wont affect XYZ movement or position.
Second mode is TCP, in this mode tool center point and coordinate system rotates along with rotary axis.
Switching between these modes would be done with M128 and M129 commands.

This far I have got:
I can make and compile my own kinematic code.
M128 and M129 custom command controls hal pin from my kinematic module (True/false).

My idea was just to switch between two different setups in linuxcnc kinematics

pseudo code:
Code:
inverse kinematics { hal pin TCP; if(TCP==True){ joint 0 = cos(B)*cos(C)*X-cos(B)*sin(C)*Y+sin(B)*Z+cos(B)*Vx+sin(B)*Vz joint 1 = sin(C) * X + cos(C) * Y + Vy; joint 2 = -sin(B) * cos(C) * X + sin(B) * sin(C) * Y + cos(B) * Z - sin(B) * Vx + cos(B) * Vz; joint 4 = B; joint 5 = C; } else { joint 0 = X; joint 1 = Y; joint 2 = Z; joint 4 = B; joint 5 = C; } }

Same goes for forward kinematic.

I been testing this switching between different kinematics with sim--> axis --> maxkins simulation setup.
results are promising , but I would need help from those that has deeper understanding of how exactly Linuxcnc kinematics works
and how this switching should be done correctly.


So comments and help please.
Last edit: 7 years 2 months ago by andypugh.

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

More
9 years 11 months ago #82655 by jsskangas
Replied by jsskangas on topic TCP 5-axis kinematics
This 3+2 axis indexing work I usually run.


But need is for true 5-axis machining.
Normally I do this by roughing in 3+2 mode like in video then turn on TCP and run 5-axis finishing paths.

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

More
9 years 11 months ago #82658 by Todd Zuercher
Replied by Todd Zuercher on topic TCP 5-axis kinematics
Sorry I don't have any answers for you, but I am watching this with interest and one question.
You say "your results are promising, but..." What is the but? What specifically are the problems are you having?

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

More
9 years 11 months ago #82662 by jsskangas
Replied by jsskangas on topic TCP 5-axis kinematics
Yes, problem is transferring between these two modes, it gives axis following error .
Joints them self dont move, but axis coordinates jumps in different place.

This jump is normal in commercial control systems.
at least these system I have been running: Mazak, fanuc, Siemens 840D and iTNC530.

One solution could be that new coordinates would be some how introduced to upstream.
When new position is calculated from joint position, there is no risk of loosing actual position.
The following user(s) said Thank You: rajsekhar

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

More
9 years 11 months ago #82664 by Todd Zuercher
Replied by Todd Zuercher on topic TCP 5-axis kinematics
For that I might have a really simple solution.
I am guessing that you are using the current stable branch of Linuxcnc 2.7 (or an earlier one).
If you switch to the development version Master (2.8pre), where Joints_Axis has been added, I think your following error problem might just disapear.
In that version the folloing errors are tied to the Joint number rather than the Axis letter.

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

More
9 years 11 months ago #82667 by jsskangas
Replied by jsskangas on topic TCP 5-axis kinematics
That's something worth of look at.

Other thing is how trajectory planner and other thing that are upstream from kinematic module likes to be displaced somewhere else instantly.

Now im running 2.7.7 on deb.
At the moment it works well when you make transition between different models f kinematics in 0 angles of rotary axes.
at this point there is no shift in XYZ coordinates, but this forces you to make this at 0 angles.
This has to be taken in account when making a operations and making a post processor.

It is something I can live with, but far from ideal situation.

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

Time to create page: 0.312 seconds
Powered by Kunena Forum