Welcome, Guest. Please login or register.
Did you miss your activation email?
May 23, 2012, 07:20:24 PM
Home Help Login Register
News: Any Problems or Experience with Industrial Robots ?
Register and place your Question / Answer to worldwide Robotexperts right here !

+  Robotforum | Support for Robotprogrammer and Users
|-+  Industrial Robot Help and Discussion Center
| |-+  KUKA Robot Forum (Moderators: Werner Hampel, Martin H, SkyeFire)
| | |-+  How convert E6POS to E6AXIS?
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] Print
Author Topic: How convert E6POS to E6AXIS?  (Read 1125 times)
KooKoo
Newbie
*
Offline Offline

Posts: 3


« on: April 08, 2010, 05:14:37 PM »

Hi!

I have two different position variables.

DECL E6POS Position
DECL E6AXIS Axis

How can I convert E6POS Position to E6AXIS Axis? Is there some function to make translation?
Logged
SkyeFire
Global Moderator
*****
Offline Offline

Posts: 1784



« Reply #1 on: April 08, 2010, 05:40:06 PM »

The INVERSE and FORWARD functions, as discussed here:  http://www.robot-forum.com/robotforum/kuka_robot_forum/krl_undocumented_features-t1174.0.html

or here:http://www.robot-forum.com/robotforum/kuka_robot_forum/making_sure_that_a_motion_command_can_be_performed-t947.0.html
« Last Edit: April 08, 2010, 05:45:33 PM by SkyeFire » Logged
KooKoo
Newbie
*
Offline Offline

Posts: 3


« Reply #2 on: April 11, 2010, 07:13:56 AM »

I have this DESTINATION position and I want to calculate new DESTINATION_AXIS postion which is same, but a4 axis angle is different. What this line means ($TARGET_STATUS=#SOURCE)?

E6POS DESTINATION
E6AXIS DESTINATION_AXIS
INT ERRORCODE

$TARGET_STATUS=#SOURCE
ERRORCODE=0
DESTINATION_AXIS=INVERSE(DESTINATION,XHOME,ERRORCODE)
DESTINATION_AXIS=DESTINATION_AXIS.A4+45
Logged
SkyeFire
Global Moderator
*****
Offline Offline

Posts: 1784



« Reply #3 on: April 11, 2010, 07:24:01 PM »

I'm betting that the A4 angle is exactly 180deg different, correct?

On any 6-axis articulated robot, for a given set of Cartesian coordinates, there is more than one way for the robot to reach the commanded XYZABC position.  In this case, if you rotate A4 180deg, rotate A6 180deg in the opposite direction, and negate A5, you'll find that the TCP ends up at the same position and orientation in space.  This ambiguity means that the robot doesn't know exactly how to achieve the position you want, which is why, if you look into an E6POS position, you'll find two variables, S and T.
Try this: put your robot in a given position in space, and record that point.  Then rotate A4 180deg, and jog A6 and A5 until you get the TCP back to the same position in space.  Record this point.  Then compare the two points.  What you should find is that they are identical (to within small fractions) except for the S and T values, which will be different.

S and T are complicated, but the short version is that they describe how the waist, wrist, and elbow of the robot should be oriented for a particular Cartesian position.  The INVERSE function has to take them into account in order to generate a correct E6AXIS value from a given E6POS.

In this usage:
Code:
DestinationAxis = INVERSE(DestinationPos, StartAxisPos, ErrorCode)

StartAxisPos is an E6AXIS variable that acts as the starting position for the calculation.  This variable is only evaluated if DestinationPos does not have S and/or T defined.  How this variable is evaluated is controlled by the setting of the system variable $TARGET_STATUS.

If $TARGET_STATUS is set to #SOURCE, then the INVERSE function will calculate the S and T values for StartAxisPos, and then put those S and T values into DestinationAxis.

If $TARGET_STATUS is set to #BEST, then the INVERSE function will calculate which E6AXIS result for DestinationAxis will result in the shortest path, in axis space, from StartAxisPos.  In other words, which destination will result in the smallest amount of axis movement.  If you ever watch a move between two points whose S and T values are mismatched, you'll see that the result is often a great degree of extra, unnecessary axis motion.

So, you need to choose a good starting point for StartAxisPos, and choose the correct setting for $TARGET_STATUS.

Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!