targets on workobject and quaternions space
k_schmid
✭
hi,
I am failing to understand what the rotation targets on workobject mean?
Docs say "The orientation is specified in relation to the current object coordinate system including
program displacement." Can i query that space somehow?
program displacement." Can i query that space somehow?
What does that mean for a rotating positioner?
Can i query the space somehow?
TASK PERS wobjdata Workobject_1:=[FALSE,FALSE,"PartMoverSim",[[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
I seem to not follow the second quaternion example in the docs either
0
Comments
-
For a rotating positioner the user frame of the workobject follows the rotation of the positioner (so any definition in the user frame fields are overwritten by the system).
As the object frame sits on top of the user frame it also rotates with the positioner but you can have linear and rotational displacements from the user frame defined here - they will not be over-written by the system.1 -
Thanks so much . Can i query the parent frame somehow? Or visualize the axes?
0 -
Just to clarify the parent frame is the user frame then?
0 -
Yes the parent frame is the user frame (it ultimately is related back to the base frame of the robot).
If by Query you mean obtain the value in RAPID then yes you can for both frames:
user framenum_variable:=wobjTest.uframe.trans.x; (x,y,or z)
num_variable:=wobjTest.uframe.rot.q1; (q1,q2,q3,or q4)object framenum_variable:=wobjTest.oframe.trans.x;num_variable:=wobjTest.oframe.rot.q1;1 -
So in my workobject neither oframe nor uframe is rotated still targets orient different from wobj0.I am surprised. Is there any more magic?2 axis Positoner holds the workobjectnum_variable_orx :=EulerZYX(\X, Workobject_1.oframe.rot);
num_variable_ory :=EulerZYX(\y, Workobject_1.oframe.rot);
num_variable_orz :=EulerZYX(\z, Workobject_1.oframe.rot);
num_variable_urx :=EulerZYX(\X, Workobject_1.uframe.rot);
num_variable_ury :=EulerZYX(\y, Workobject_1.uframe.rot);
num_variable_urz :=EulerZYX(\z, Workobject_1.uframe.rot);
0 -
Can i query in world space somehow?
0 -
You might be able to use the PoseMult function to do this?1
-
I dont see a rotation in either frames maybe its the axis direction in the positioner?
0 -
The axis direction and where the zero angle is of the positioner will be determined by the base frame calibration for the positioner.0
-
then it makes more sense
0 -
So here is a target with a unit quaternion in world space, can i get these gui values (x -180) from code?0
-
num_variable:=test_1111_IO.trans.x; (x,y,or z)
num_variable:=test_1111_IO.rot.q1; (q1,q2,q3,or q4)
If you want the Euler angles you will need to use the above Euler function
0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 316 IRC5
- 61 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 799 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings