
General conversion between different coordinate system types (KUKA, Fanuc, ABB, etc)
-
SkyeFire -
January 7, 2022 at 5:36 PM -
Thread is Unresolved
-
-
The 3d stuff was done with helixtoolbox.
Only can find helix toolkit !?
-
The name is helix toolkit.
The source code can be found on github.
The compiled library can be found on nuget
-
I missed this question
-
Well, I'm back to this. Except now it's project-related, instead of personal interest. I need to convert a lot of points from Kawasaki to Fanuc.
Back in this post , Jeremy said that RoboDK contains Python functions that convert each Euler "type" to/from matrix notation. I've found them, but... it's not entirely clear which function is for which (group of) robot brands. Some are called out explicitly -- the functions named pose_2_Fanuc and Fanuc_2_pose
are pretty obvious. But there's nothing called out explicitly for Kawasaki.
I think I've found it, though. In RoboDK proper, you edit a frame's "type" between multiple notations, and "Kawasaki" is grouped as so:
Digging into the RoboDK.py file turns up no functions labelled for Kawasaki, but does turn up one for Comau:
Code
Display Moredef Comau_2_Pose(xyzrpw): """Converts a Comau XYZRPW target to a pose (4x4 matrix), the same representation required by PDL Comau programs. .. seealso:: :class:`.Mat`, :func:`~robodk.TxyzRxyz_2_Pose`, :func:`~robodk.Pose_2_TxyzRxyz`, :func:`~robodk.Pose_2_ABB`, :func:`~robodk.Pose_2_Adept`, :func:`~robodk.Pose_2_Comau`, :func:`~robodk.Pose_2_Fanuc`, :func:`~robodk.Pose_2_KUKA`, :func:`~robodk.Pose_2_Motoman`, :func:`~robodk.Pose_2_Nachi`, :func:`~robodk.Pose_2_Staubli`, :func:`~robodk.Pose_2_UR`, :func:`~robodk.quaternion_2_pose` """ return Adept_2_Pose(xyzrpw) def Pose_2_Comau(H): """Converts a pose to a Comau target, the same representation required by PDL Comau programs. :param H: pose :type H: :class:`.Mat` .. seealso:: :class:`.Mat`, :func:`~robodk.TxyzRxyz_2_Pose`, :func:`~robodk.Pose_2_TxyzRxyz`, :func:`~robodk.Pose_2_ABB`, :func:`~robodk.Pose_2_Adept`, :func:`~robodk.Pose_2_Comau`, :func:`~robodk.Pose_2_Fanuc`, :func:`~robodk.Pose_2_KUKA`, :func:`~robodk.Pose_2_Motoman`, :func:`~robodk.Pose_2_Nachi`, :func:`~robodk.Pose_2_Staubli`, :func:`~robodk.Pose_2_UR`, :func:`~robodk.quaternion_2_pose`""" return Pose_2_Adept(H)
Which is rather amusing, as the Comau routines are just a call to the Adept routines. Apparently no one ever decided to add a similar "alias" for Kawasaki?
Now to see if I can actually get my weak Python skills to access those functions from my own external script....
-
- Best Answer
@SkyFire
check post #31 - there you will find the table
-
@SkyFire
you also may check post #35 (pose calculator)
-
@SkyFire
you also may check post #35 (pose calculator)
D'Oh!
Here's a question: these only work for Right-hand-rule coordinate systems, correct? Kawasakis used to be left-hand, but there doesn't seem to an option for those older robots.
Not that it really matters, as I'm working on an E-model controller (latest generation). So it should be right-hand, but now I need to find a way to confirm/deny that. Off to download the trial version of the Kawasaki simulator I go!
-
check this out.
-
Actually I just remembered (back in 1990) KUKA used Siemens Sirotec RCM as Robot controller.
Theorientation was also LHR(Angle A: math. positive, Angle B: math. negative, Angle C: math. positive)(so it always was RHR- sorry for the confusion)
They made the calculation using RHR and then inversed Angle B
Could this be the same with your described problem?
But as I said the was decades ago
-
Well, I downloaded the Lite version of K-Roset (Kawasaki's offline simulator). I didn't get a choice of controllers, but every robot I tried jogging behaved in a right-handed fashion.
-
@SkyFire
Is Kawasaki LHR or RHR?
-
@SkyFire
Is Kawasaki LHR or RHR?
RHR, from everything I could determine. Just has the World frame rotated +90deg around Z compared to Fanuc, ABB, or KUKA, relative to the physical base. So Y+ is "forward" instead of X+.
-