Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

How to create a left-handed coordinate system?

I have a custom H-type robot that uses a left-handed coordinate system and I need to recreate this robot in RoboDK environment and control it from there. I'm having issues with this seemingly simple step. Basically the mechanism works fine, only thing I want to change is to have the y axis in the other direction. Is this possible to achieve?
I don't think it's possible.
We use the right-hand rule for everything. As the vast majority of robot brands do.

Maybe @Albert can confirm. But I'm pretty sure we can't do much about that.

Find useful information about RoboDK and its features by visiting our Online Documentation and by watching tutorials on our Youtube Channel

You can provide any 4x4 matrix through the RoboDK API and you can build your own poses even if they use left-handed coordinate systems. However, RoboDK was not designed to be used for this purpose and you may see strange results. For example, if you provide a left handed coordinate system and you edit the pose through the user interface RoboDK will automatically recalculate a right-handed pose.

This example shows a proof of concept:

from robodk import robolink    # RoboDK API
from robodk import *    # Robot toolbox
RDK = robolink.Robolink()

reference = RDK.Item("Frame 2")
pose = reference.Pose()

# Set the pose as a normal translation along X
pose = transl(1000,0,0)

# Flip the X axis: warning! Switching to a left-handed coordinate system
# RoboDK UI was not designed to be used for this purpose and you may get unexpected results
pose[0,0] = -1

# Operate on this pose:
pose = pose * transl(100,200,300) * rotz(pi/2)

# Set the pose back: you should see the left-handed coordinate system in RoboDK

Users browsing this thread:
1 Guest(s)