Author Topic: transformation matrix  (Read 1003 times)

0 Members and 1 Guest are viewing this topic.

Offline patrics94

  • Newbie
  • *
  • Thank You
  • -Given: 2
  • -Receive: 0
  • Posts: 4
transformation matrix
« on: April 29, 2018, 11:21:18 AM »
Hi to everyone,

I have a basic problem with the matrix transformation and I know that I'm doing something wrong but I can't find the mistake/s. I hope you can help me.

Well, I have two points, thats two points represent the final effector of two differents robots from a same reference system.
Thats two points are made up by rotation matrix and a translation matrix,

A = [0.197483115464607   0.966211034181067           -0.165640141672075           -0.558033514398967;
       0.541718514345437   -0.248385762830693    -0.803022766824445    -0.00795678559229851;
      -0.817032110948991   0.0688531063189357    -0.572466400261594       -2.08580955073814;
                                   0                                 0                                     0                                      1];


B = [0.914405771376565      -0.358660165997311   0.187683165467792   -0.561434153643170;
       0.0388923411267324       0.539341487739921   0.841188531426916   -0.00234190553034530;
      -0.402926136003749      -0.761888210257430   0.507126102656744   -2.12059968362547;
                                   0                                   0                               0                              1]

so my objective here is find the transformation matrix from B to A.

I did: T = B^-1*A but it doesn't work well.

I'm going to tell you my "experiment", I put the final effectors of both robots together (I designed a plastic 3D piece to keep them together) so, I made a final effectors movement and recorded all the points from final effectors of the robots.

My problem here is that when I calculate the transformation matrix T and I use it to fix the error between the two final efectors it doesnt work.

when I say it doesn't work I mean that the orientation error or the position error do not stay constant even at zero.

Please I hope you can help me, I am very frustrated.

Thank you a lot.!!!!


Offline SkyeFire

  • Global Moderator
  • Hero Member
  • *****
  • Thank You
  • -Given: 32
  • -Receive: 926
  • Posts: 6308
Re: transformation matrix
« Reply #1 on: April 30, 2018, 02:40:29 PM »
You don't mention what robot brand(s) you are using.  Since different brands use different Euler sequences, this has an effect on how you convert between robot coordinates and matrices.

You can't really create a transform between two robots (with two different frames of reference) using only one point.  3 points is the absolute mathematical minimum, and generally most industrial robots use 4 for a degree of redundancy.

Assuming you're using industrial robots, a cross-check can be performed easily.  All industrial robots include utilities for creating a reference frame (Base, UFrame, etc, every brand has its own name for it) from a set of reference points in a different reference frame.  This generally consists of identifying 4 points in space that both robots can accurately touch, and determining the coordinates of all 4 points in both robots' root reference frames.  Then, teaching one robot where those four points are in both its own reference frame, and the other robot's reference frame, will allow the robot to build the transform itself.  Doing this will give you something you can use to cross-check your matrix math.

You can also teach both robots to a common shared 3rd-party reference frame.  For example, if there is a table between the two robots, it's easy to teach both of them a new, common, frame referenced to the table, using the 3-point method.  This usually consists of assigning one corner of the table as the origin, and the edges intersecting that corner as the X and Y axes.  Teach each robot to the same origin and axes, and they will share that reference frame in common.

Offline patrics94

  • Newbie
  • *
  • Thank You
  • -Given: 2
  • -Receive: 0
  • Posts: 4
Re: transformation matrix
« Reply #2 on: May 02, 2018, 06:24:28 AM »
thank you SkyeFire.
I'm using UR3 and Barrett Wam robots.
When you say teach each robot what you mean? How can I do this?
Also I have to say you that the matrix A and B that I gave you are given from the same reference frame.

thank you
« Last Edit: May 02, 2018, 06:29:01 AM by patrics94 »

Offline SkyeFire

  • Global Moderator
  • Hero Member
  • *****
  • Thank You
  • -Given: 32
  • -Receive: 926
  • Posts: 6308
Re: transformation matrix
« Reply #3 on: May 03, 2018, 06:37:53 PM »
All industrial robots that I'm aware of include a method to create a reference frame by teaching 3 points in space, by physically moving the TCP of the robot to those points in the correct sequence.  I assume the UR and BW robots have something equivalent.

I'm confused -- I thought you were trying to coordinate 2 6-DOF positions between two robots.  Unless you have already created a shared common reference frame between both robots, I don't see how those two transforms can be in the same reference frame.

Offline patrics94

  • Newbie
  • *
  • Thank You
  • -Given: 2
  • -Receive: 0
  • Posts: 4
Re: transformation matrix
« Reply #4 on: May 03, 2018, 10:26:58 PM »
Sorry, I should to explain you before. I am using a location system (polaris spectra) which have a few marks that have been positioned in a known place in the base of each robots so I could calculate the matrix that relate the polaris spectra (origen) and the final efector of my robots, those are the matrix A and B. So I want to know what is the translation matrix that correct the error between both final effector. For that, I put the final effector of the robots together.
« Last Edit: May 03, 2018, 10:30:39 PM by patrics94 »

Offline SkyeFire

  • Global Moderator
  • Hero Member
  • *****
  • Thank You
  • -Given: 32
  • -Receive: 926
  • Posts: 6308
Re: transformation matrix
« Reply #5 on: May 03, 2018, 11:29:10 PM »
But what is the relationship between the different reference frames involved?  Unless the Polaris is measuring the tool positions directly, you still have to teach both robots that relationship between their own root frames and the Polaris frame.

Offline robotero

  • Sr. Member
  • ****
  • Thank You
  • -Given: 40
  • -Receive: 72
  • Posts: 303
Re: transformation matrix
« Reply #6 on: May 08, 2018, 03:23:52 PM »
You seem to be confused on the transformations needed,  it is actually very simple

You want both robots to meet at a common point in space, and you said you know the position of the mark relative to the robot
You should be able to get the transformation from the mark to the user/world coordinate of the respective robot

First of all you need to define the point in space, say by teaching it in the first robot

Now you know the TCP location in user/world coordinates of robot 1
You need to calculate the TCP location, but in user/world coordinates f robot 2, to command the robot to move to that place

The transformation that you need to apply:
Inverse Trans from mark 2 to user/world frame of robot 2
Inverse Trans from polaris to mark2
Direct   Trans from polaris to mark1
Direct   Trans from mark 1 to user/world frame of robot 1
Direct   Trans TCP coordinates express in user/world of robot 1

user/world frame of robot 2 -> mark2 ->polaris -> mark1 -> user/world frame robot 1 -> TCP coordinates expressed in user/world of robot 1

The resulting transformation is the coordinates that you need to use to command the second robot

Take in account that you must define the Tool center point wisely
If you define the tool center point in one of the robot with axis z+ pointing outwards to the gripper
then the other tool center point z+ MUST point inwards

That way the grippers or tools would be opposing for a good "handshake" , or pass an object for example
« Last Edit: May 08, 2018, 03:25:50 PM by robotero »

Offline patrics94

  • Newbie
  • *
  • Thank You
  • -Given: 2
  • -Receive: 0
  • Posts: 4
Re: transformation matrix
« Reply #7 on: May 09, 2018, 11:21:25 AM »
Yes, it was the same way that I did,
I discovered one problem and was that this matrix depend on the movement of some joints, for example:

The first experiment that I did was put together the final effectors and move only the last joint. In this case the resulting error depend on the movement so I had to take off the transformation matrix from the 6-joint to 7-joint, calculate the error matrix and multiply in the kinematic chain, and after include(multiply) 6T7 again. In this case, everything was okey. the position and the rotation were regular.

But, now I discovered that I had the same problem when I did another experiment where I only move the 3-joint. But, in this case I dont know how take off that joint.
would you know how to do it?

I hope have explained it well.

Thank you a lot.
« Last Edit: May 09, 2018, 11:22:59 AM by patrics94 »