April 24, 2019, 10:12:28 PM
Robotforum | Industrial Robots Community

  Precise setting Wobj Orientation S4C+

Author Topic:   Precise setting Wobj Orientation S4C+  (Read 228 times)

0 Members and 1 Guest are viewing this topic.

February 01, 2019, 01:27:24 PM
Read 228 times

Dawid Firlej


I am using an IRB2400 robot with a s4c controller. I want to write a program to grind knees from the inside. I found a problem with setting the orientation of coordinate systems so that the robot's movement was axial with the grinder. I wanted to set the coordinate systems as shown in the figure. The calculations show that for Wobj the orientation should look as follows: Q1 = 0.7071 Q2 = 0 Q3 = 0.7071 Q4 = 0. When I set these quaternion values, the Wobj coordinate system was tilted to World. After setting the gripper manually, the quaternion value is as follows: Q1 = 0.72468 Q2 = 0.02721 Q3 = 0.68800 Q4 = 0.02753

Can anyone tell me why in this case the theory is not practice? I care that X-Axis World and Z-Wobj overlap perfectly.

Is this related to the fact that the file changed only Wobjdata's orientations and the userframe has not been changed?
I am asking for help in solving the problem.

Thank you and best regards
(Written with Google Translator)

Today at 10:12:28 PM
Reply #1



February 01, 2019, 01:28:59 PM
Reply #1

Dawid Firlej

February 01, 2019, 01:37:21 PM
Reply #2


The workobject data contains both the userframe (uframe) and the objectframe (oframe).  A normal teaching method would just set the uframe.  Check to see that the oframe has no change, represented by quaternions 1,0,0,0.  If you think that you are better in figuring wpr representations, you can use this routine to play around with different values.

  PROC tcp_orient()
    VAR num anglex;
    VAR num angley;
    VAR num anglez;
    VAR num nFKAnswer;

    TPWrite "This routine is use to calculate";
    TPWrite "The quaternions based upon EulerZYX";
    TPWrite "angles.";
    TPWrite "Remember EulerZYX goes Z rotation,";
    TPWrite "Then Y rotation,";
    TPWrite "and then X rotation";
    TPReadNum anglez,"Please enter the value for z rotation";
    TPReadNum angley,"Please enter the value for y rotation";
    TPReadNum anglex,"Please enter the value for x rotation";
    TPWrite "Based upon your inputs,";
    TPWrite "Quaternion 1 is "\Num:=orient1.q1;
    TPWrite "Quaternion 2 is "\Num:=orient1.q2;
    TPWrite "Quaternion 3 is "\Num:=orient1.q3;
    TPWrite "Quaternion 4 is "\Num:=orient1.q4;
    TPReadFK nFKAnswer,"Press OK to Finish or CONT to write to  tool","CONT",stEmpty,stEmpty,stEmpty,"OK";
    TEST nFKAnswer
    CASE 1:
      ! OK you have chosen to write the TCP
      ! value to the tool.  Change the name
      ! of tgripper in the following
      ! instruction to the name of the tool
      ! you wish to change.

Just change from tcp to wobj.

February 01, 2019, 08:59:52 PM
Reply #3


0.707 is a perfect 90 degree rotation related to the robot's world coordinate system.
The only place that will happen is in robotstudio (i.e. the virtual world).

In reality you may have 89 degrees (or worse for that matter) and that's why you get a different result when measuring the workobject manually.
Plus you're introducing all other imperfections in a system (TCP, mechanical, etc.)

Check out https://quaternions.online/ which lets you visualize quaternions.

Share via facebook Share via linkedin Share via pinterest Share via reddit Share via twitter

Setting TCP and orientation of endmill

Started by JMinnesota on KUKA Robot Forum

6 Replies
Last post May 19, 2014, 12:11:15 PM
by panic mode
Teach a position setting Axis Orientation and increments

Started by Marco on KUKA Robot Forum

4 Replies
Last post March 09, 2016, 09:36:48 PM
by Marco
Precise Stop Position

Started by Robo_Eng_13 on Fanuc Robot Forum

1 Replies
Last post January 02, 2019, 05:34:26 PM
by Robo_Eng_13
Jogging precise increments in A,B,C axes

Started by tlambrop on KUKA Robot Forum

16 Replies
Last post March 02, 2017, 02:28:51 PM
by SkyeFire