RoboDK Forum
How to create a left-handed coordinate system?- Printable Version

+- RoboDK Forum (//www.sinclairbody.com/forum)
+-- Forum: RoboDK (EN) (//www.sinclairbody.com/forum/Forum-RoboDK-EN)
+ - - -论坛:General questions about RoboDK (//www.sinclairbody.com/forum/Forum-General-questions-about-RoboDK)
+--- Thread: How to create a left-handed coordinate system? (/Thread-How-to-create-a-left-handed-coordinate-system)



How to create a left-handed coordinate system?-Arhitrav-02-15-2022

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?


RE: How to create a left-handed coordinate system?-Jeremy-02-15-2022

I don't think it's possible.
We use the right-hand rule for everything. As the vast majority of robot brands do.

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

Jeremy


RE: How to create a left-handed coordinate system?-Albert-02-15-2022

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.

这个例子显示了一个概念验证:

Code:
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
reference.setPose(pose)