I am Newbie in staubli robot programming. I have the following problem. I have a problem in in the calculation of orientation rx, ry .
I am working on a robot (staubli with controller cs8) cell equipped with a vision system 2D. In a first stage the robot program memorize the rx, ry and coordinate z to the point used as a model of taking. The coordinate x, y and rotation rz is passed to vision system.
In cycle the vision system locate the part and send to robot the x,y coordinates and the rz orientation. The final position of pickup is formed combining x,y,rz from vision system and rx,ry previously saved from robot. When i move robot to final position the gripper is oriented with rz correct but with rx and ry not correct.
how should I calculate rx and ry according to the rz value send from vision system? With fanuc robot it's enough set the rx and ry saved and the rz send from vision to the final point structure but with staubli does not work properly.
Someone could help me? thanks a lot
Problem with Staubli orientation rx, ry, rz
-
mrb -
June 23, 2015 at 10:54 PM -
Thread is marked as Resolved.
-
-
Hi,
what kind of instruction you use for set the new x,y and rz?
thanks
-
Thank you for the answer.
The new x,y and rz are calculated from vision system.
This position is ok in all configurations of the part (360 degree). The problem is when i use the rx and ry saved in the point taken registration. If the part arrive from conveyor in the same orientation of position on point taken registration there is not a problem but if the part arrive for example rotated by 180 degrees the rz is ok but rx and ry is not ok.
I read that some robots (as fanuc) use fixed frame and other (staubli i think) use current frame. And the calculation of orientation is different according to type of frame. is it true?
I see an example where were used the geometrical transformation (pointresult = point1 * point2) or (pointResult=!point1) but i don't know how this operator work.
Do you have any suggestions. Thanks -
Hello,
i suggest you to use "compose " instruction?
you know this instruction?
Thanks
-
Thank you for answer.
I still used the instruction "compose" to move the robot to a position shifted than another but only with coordinates x,y,z (with rx,ry,rz equal zero).
how should I use the instruction for for my purpose? is correct as in the example below:point pResult
pResult = compose(pLocVision,world,{0, 0, pTaken.trsf.z, pTaken.trsf.rx, pTaken.trsf.ry, pLocVision.trsf.rz}
pResult.trsf.x=pLocVision.trsf.x
pResult.trsf.y=pLocVision.trsf.y
pResult.trsf.z=pLocVision.trsf.zwhere:
pResult -> is the final point where the robot must go to take part (that arrive from conveyor in any configuration)
pLocVision -> is the point calculated by vision system where x,y,z are the coordinate robot (not pixel) and rz is the z rotate to claw
pTaken -> is the model position for the orientation of claw (rx,ry) used for every orientation of rzthanks a lot for the help
-
Hello,
I have not tried it yet the istruction "compose" on robot but I want to know if the istructions that I wrote in the previous post is correct or not.
Another question, if I want to move the robot from one position to a shifted position relatively the tool reference coordinate. how should I do?thanks a lot
-
I tried the istruction "compose" on robot and it works correct.
Alessandro, thank you very much for the help.
Bye -
I've actually ran into this alot and i don't have an exact answer but from what i've tried here are a couple things.
One use approach for xyz and comopose for rx,ry,rz separate from the xyz values. try and split them up when assigning them to a point.
Also i'ave had troubel when trying to assign rx, rz,rz at the same time. If you notice somtimes a change in just one of those values effects the others. So try just assigning what you need and let the rest of the robot figure it out.