Welcome, Guest. Please login or register.
Did you miss your activation email?
May 24, 2012, 09:24:59 AM
Home Help Login Register
News: Any Problems or Experience with Industrial Robots ?
Register and place your Question / Answer to worldwide Robotexperts right here !

+  Robotforum | Support for Robotprogrammer and Users
|-+  Industrial Robot Help and Discussion Center
| |-+  Stäubli & Bosch Robot Forum (Moderators: Werner Hampel, Jim Tyrer, Martin H, Fabian Munoz)
| | |-+  Help!!!!!Alter() in the VALIII
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] Print
Author Topic: Help!!!!!Alter() in the VALIII  (Read 566 times)
snowingfish
Guest
« on: March 30, 2011, 04:54:04 PM »

Hello everbobody,


I used the alter for alter the distance from point to point. and I set the alter in the world coordinate, and I also have two points in the world coordinate. let's say, p1 and p2. if I want to alter from p1 to p2, I tought the alter should be:

ALTER trsf.x=p2.trsf.x-p1.trsf.x;trsf.y=p2.trsf.y-p1.trsf.y;trsf.z=p2.trsf.z-p1.trsf.z;trsf.rx=p2.trsf.rx-p1.trsf.rx;trsf.ry=p2.trsf.ry-p1.trsf.ry;trsf.rz=p2.trsf.rz-p1.trsf.rz;

But the fact is the translational part works fine, but the rotational part is not work properly. for example, if I only change RZ and p2.trsf.rz-p1.trsf.rz=10, So I alter trsf.rz=10, but the robot went to a wrong direction.

What the problem. Please help!!!!

Thanks a lot!!!
Logged
snowingfish
Guest
« Reply #1 on: March 30, 2011, 06:21:16 PM »

Ok, I think I should get the transform between them..any easy way to do that, or I have to convert to matrix and then do the transformation?  not easy to write with the VAL bawling..
Logged
Jim C
Guest
« Reply #2 on: March 30, 2011, 10:48:40 PM »

First ALTER is used to make gradual changes while the arm is moving along a trajectory. usually in response to some kind of input like a force sensor. It is not used for simple point to point movement.

Second, you are dealing with a transformation value. Doing simple math on the individual components will usually result in errors, especially when trying to change orientations. Transformations are vectors. You need to do vector math not simple addition and subtraction. for example in VAL3, the "product" of two vectors, also known as vector addition, is

trProduct = trOne * trTwo

Also keep in mind a VAL 3 point is more then just a transformation. it also include a configuration and it is linked to a frame. You can access the transformation value of point using pName.trsf

You can also use the inversion function, '!', to find the opposite vector. So if trOut is the trsf from a frame origin to point, !trOut is the transformation from the point back to the frame origin.

To get the transformation from p1 to p2, it would be

trFromP1ToP2 = !p1.trsf * p2.trsf

Basically inverting the p1 transformation and "adding" it to the transformation of p2.
Logged
snowingfish
Guest
« Reply #3 on: March 31, 2011, 01:03:28 PM »

Got it!

Thanks very much!
Logged
Jim C
Guest
« Reply #4 on: March 31, 2011, 02:59:43 PM »

Glad to help.

I also want to add that many people find the appro and compose instructions easier to use then dealing with the trsf values of points.

pNew = appro(pOriginal, trShift)

will create a new point based on an original point shifted by a trsf value relative to the original point. It is name appro as it is most often used to calculate approach and departure locations.

pNew = compose(pOriginal, fFrame, trShift)

is similar, but the shift is relative to a frame not to the point. One example of its use is to calculate locations on a pallet.

Neither appro or compose is a movement instruction. They just calculate points you can then move to.
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!