1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Simulation Systems
  4. RoboDK
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

Right hand rule for positive angle rotation KUKA vs UR in RoboDK

  • Askic
  • February 17, 2023 at 10:08 AM
  • Thread is Unresolved
  • Askic
    Reactions Received
    2
    Trophies
    1
    Posts
    25
    • February 17, 2023 at 10:08 AM
    • #1

    Hello,

    experimenting with trial version of RoboDK software, I found out that KUKA robots in this simulation software don't follow right hand rule for determining positive angle rotation.

    I have checked this with UR and ABB robots and for these robots angle rotations follow right hand rule.

    I have attached picture for clearer view of this. Is this true in reality that for example rotation about z axis of joint A1 for 30° follow left had rule with KUKA robots?

    Thank you.

    Images

    • RightHandRule_ UR vs KUKA.png
      • 347.98 kB
      • 1,436 × 790
      • 19
  • hermann
    Reactions Received
    411
    Trophies
    9
    Posts
    2,623
    • February 17, 2023 at 12:22 PM
    • #2
    Quote from Askic

    .. I found out that KUKA robots in this simulation software don't follow right hand rule for determining positive angle rotation...

    Not only in the simulation, it's the same in real life. :winking_face:

    But right hand rule only makes sense for Cartesian coordinates. For axis movements you can't define a good right hand rule, makes only sense when robot axis is parallel to a cartesian axis. How do you want to define the rule for the other robot axis, when robot has different position in all axis?

  • Askic
    Reactions Received
    2
    Trophies
    1
    Posts
    25
    • February 17, 2023 at 12:53 PM
    • #3

    Okay, thank you. I noticed this by playing with different joint frames, that this "right hand rule" for joint angles is not consistent. By right hand rule I meant right hand screw rule.

    What I mean by this is to define right hand oriented coordinate frame for each joint, and then apply right hand screw rule considering joint angle as an angle around its z axis.

    I used option "show frame" for each joint and then observed how joint rotates changing one joint angle (theta) at a time.

  • hermann
    Reactions Received
    411
    Trophies
    9
    Posts
    2,623
    • February 17, 2023 at 1:07 PM
    • #4

    Yes I also meant right hand screw rule. This also means the thumb is pointing to the positive cartesian axis, but with motor joints you have no consistence relation to a cartesian axis.

  • Askic
    Reactions Received
    2
    Trophies
    1
    Posts
    25
    • February 17, 2023 at 1:28 PM
    • #5

    Well, I thought that because with revolute joints axis Z are considered as rotation axis.

    For example if I turn on joint frames (like shown in the attachment), each joint rotate around its Z axis, so this axis is rotation axis. I thought (obviously) wrong that there must be a consistent rule, what is considered as positive angle of rotation (just like in mathematics, positive rotation is considered counter clockwise direction).

    Thank you for the clarification.

    Images

    • KUKA_coordinate_frames_.png
      • 210.88 kB
      • 1,474 × 641
      • 6
  • MOM
    Reactions Received
    176
    Trophies
    7
    Posts
    1,424
    • February 17, 2023 at 2:17 PM
    • #6

    the rotation is around the rotation axis (which is actially the z- coordinate).

    Axis1, axis4 and axis6 turning mathematical negative (e.g. a1 = 20° gives negative Y-value)

    (A reason could simply be mounting gearbox upside down to have motor on top)

    Axis2, axis3 and axis5 turning mathematical positive

    You can find this in $Machine.dat checking for AXIS_DIR (it was also mentioned in one of my posts on the other of your thread)

  • MOM
    Reactions Received
    176
    Trophies
    7
    Posts
    1,424
    • February 17, 2023 at 2:55 PM
    • #7

    Comparison a1 with AXIS_DIR[1]=-1 and math. positive

  • Askic
    Reactions Received
    2
    Trophies
    1
    Posts
    25
    • February 18, 2023 at 11:27 AM
    • #8

    Thank you MOM for the explanation. I'm learning robotics mostly based on textbooks and examples I can find on the Internet.

    I have made my own calculation of forward kinematics and checked the results in RoboDK software. That is where I have discovered this "mismatch".

    I have done calculations on UR5 and on KUKA 360-2. On UR5 everything as aligned to my expectations and I found out that all joints use mathematical positive direction of an angle around axis of rotation (z axis). But the results for the same logic were not OK when I tried on KUKA robot.

    For example, for UR5, my calculation is given in the attachment.

    I'm not sure if there is a way to obtain actual dimensions of the robot that is stored internally in the model in RoboDK software, so I used dimensions I could find on the drawings elsewhere. This caused small differences in the position values, but not significant.

    The .pdf generated script is attached. Since I don't have actual robots and don't have access to it, this is right now the only way to learn to calculate myself, use simulation software and ask for explanations and clarifications here.

    Files

    UR5_FW_kinematics.pdf 295.59 kB – 7 Downloads
  • MOM
    Reactions Received
    176
    Trophies
    7
    Posts
    1,424
    • February 20, 2023 at 10:40 AM
    • #9

    on your picture from your other thread post #1

    you can see how the different axes rotate in the positive direction.

    A1: Z-Axis poiniting down

    A4: pointing backwards

    A5: pointing backwards

    Direction of rotations are fully documented

  • Askic
    Reactions Received
    2
    Trophies
    1
    Posts
    25
    • February 20, 2023 at 11:34 AM
    • #10

    Yes, you're right. I didn't pay much attention. It is important for me to know that there is no a strict right hand rule when defining joint axes and positive direction of angles.

    I'll try to find one complete real world example of KUKA robot program and to inspect how this really look like in reality.

  • MOM
    Reactions Received
    176
    Trophies
    7
    Posts
    1,424
    • February 20, 2023 at 4:42 PM
    • #11
    Quote from Askic

    It is important for me to know that there is no a strict right hand rule when defining joint axes and positive direction of angles.

    did you read my post #7 and post #9?

    Images

    • pasted-from-clipboard.png
      • 20.62 kB
      • 829 × 231
      • 9
  • MOM
    Reactions Received
    176
    Trophies
    7
    Posts
    1,424
    • February 20, 2023 at 11:21 PM
    • #12
    Quote from Askic

    It is important for me to know that there is no a strict right hand rule when defining joint axes and positive direction of angles.

    There is a strict rule:

    Taking picture from post #9 and draw the z-axis accordingly - you defined them wrong - again!

    What do you actually want?

    - assistance - then follow the suggestion

    - follow your idea - this is the wrong place - look for your place

    By the way:

    I have no problems with knewbies as long as they follow my or rules or ask intelligent questions

    Asking you for help or just want to bore everyone?

    BTW:

    I did forward and inverse kinematics of kuka robots

    -no complaims

    - no one got killed

    -everything is still working as requested

  • Askic
    Reactions Received
    2
    Trophies
    1
    Posts
    25
    • February 21, 2023 at 11:17 AM
    • #13

    Hello,

    This time I used UR5 as an example, defined DH parameters and everything work as expected. The results were the same as shown in RoboDK simulation software.

    I have noticed a mismatched between positive direction of A1, A4 and A6 for KUKA robot in the RoboDk software, which triggered the original question in the post #1.

    In the attached picture this is clearly visible. There are directions of z axis for A1 and A2. Changing both joint angles for some positive shows that A2 is moving according to the right hand rule around Z2, while A1 is doing the opposite.

    My question is based only on what I saw in RoboDK, and it is confirmed here in the attached picture.

    MOM, In the post # 9 you placed a picture from the other closed thread. I didn't mention anywhere how I defined z axis here. RoboDK defined axis for the joints.

    P.S. I'm not able to upload picture as attachment, that is why I post a link here

  • MOM
    Reactions Received
    176
    Trophies
    7
    Posts
    1,424
    • February 21, 2023 at 11:39 AM
    • #14

    As shown in post #7 there are two ways to do it and it seems that RoboDK is using the $AXIS_DIR[1] = -1

    (like I do)

  • Askic
    Reactions Received
    2
    Trophies
    1
    Posts
    25
    • February 21, 2023 at 1:55 PM
    • #15

    MOM

    just to see that you advices were not given in vain, here is the code I used to calculate FW kinematics (KUKA 360-2 from the RoboDK library):

    Code
    Ad = [10, -60, 90, 30, -15, -10];
    th = deg2rad(Ad);
    % DH parameters
    a1 = 500;   alpha1 = -pi/2;     d1 = 1045;    th1 = th(1);
    a2 = 1300;  alpha2 = 0;         d2 = 0;       th2 = th(2);
    a3 = -55;   alpha3 = pi/2;      d3 = 0;       th3 = th(3)+pi/2; 
    a4 = 0;     alpha4 = -pi/2;     d4 = 1025;    th4 = th(4);
    a5 = 0;     alpha5 = pi/2;      d5 = 0;       th5 = th(5);
    a6 = 0;     alpha6 = 0;         d6 = 290;     th6 = th(6);
    % Define transformation matrices
    T1 = DH_calc(a1,alpha1,d1,th1);
    T2 = DH_calc(a2,alpha2,d2,th2);
    T3 = DH_calc(a3,alpha3,d3,th3);
    T4 = DH_calc(a4,alpha4,d4,th4);
    T5 = DH_calc(a5,alpha5,d5,th5);
    T6 = DH_calc(a6,alpha6,d6,th6);
    % Homogeneous transformation matrix 
    T06_dh = T1*T2*T3*T4*T5*T6
    Display More

    And the result is:

    Code
    T06_dh =
    [-0.287491, 0.0466039,  0.956649, 2311.23]
    [ 0.279567,  0.959402, 0.0372771, 369.424]
    [-0.916074,  0.278164, -0.288849,  1622.2]
    [        0,         0,         0,     1.0]

    This is the same result that can be obtained from RoboDK with the following input angles:

    Code
    Ad = [-10, -60, 90, -30, -15, 10];

    The RoboDK output is given in the picture shown here.

    I think I got it now, thanks for the help. I really appreciate it.

  • MOM
    Reactions Received
    176
    Trophies
    7
    Posts
    1,424
    • February 21, 2023 at 3:40 PM
    • #16

    De nada

  • Motouser
    Reactions Received
    39
    Trophies
    4
    Posts
    288
    • March 10, 2023 at 5:43 PM
    • #17
    Quote from MOM

    BTW:

    I did forward and inverse kinematics of kuka robots

    JUST AN INFO(OFF TOPIC):

    You mean that you are an official KUKA programmer that programmes THE Kinematics Algorithm inside the KUKA robot or I simply misinterpreted.

  • Fubini
    Reactions Received
    283
    Trophies
    9
    Posts
    1,904
    • March 10, 2023 at 6:55 PM
    • #18
    Quote from Motouser

    You mean that you are an official KUKA programmer that programmes THE Kinematics Algorithm inside the KUKA robot or I simply misinterpreted.

    No this can not be him. I do not have two accounts here :winking_face_with_tongue:.

  • MOM
    Reactions Received
    176
    Trophies
    7
    Posts
    1,424
    • March 10, 2023 at 7:43 PM
    • #19
    Quote from Motouser

    JUST AN INFO(OFF TOPIC):

    You mean that you are an official KUKA programmer that programmes THE Kinematics Algorithm inside the KUKA robot or I simply misinterpreted.

    I did not "program" THE" Kinematics Algorithm

    And I never said that

    Quote from MOM

    BTW:

    I did forward and inverse kinematics of kuka robots

  • Motouser
    Reactions Received
    39
    Trophies
    4
    Posts
    288
    • March 13, 2023 at 8:29 AM
    • #20
    Quote from MOM

    I did not "program" THE" Kinematics Algorithm

    And I never said that

    I misunderstood

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • krc5
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • krc5
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download