• 0 Vote(s) - 0 Average
• 1
• 2
• 3
• 4
• 5

# Python API Pose gives odd behavior

I Have the following test code block

Code:
```from robodk import Pose   def test(abc):  a,b,c = abc  p = Pose(0,0,0,a,b,c)  print (p) test((30,89,0)) test((30,90,0))```
and I get the following output:

Code:
```Pose(0.000, 0.000, 0.000,  30.000, 89.000, 0.000): [[ 0.017, -0.000, 1.000, 0 ], [ 0.500, 0.866, -0.009, 0 ], [ -0.866, 0.500, 0.015, 0 ], [ 0, 0, 0, 1 ]] Pose(0.000, 0.000, 0.000,  0.000, 90.000, 30.000): [[ 0.000, -0.000, 1.000, 0 ], [ 0.500, 0.866, -0.000, 0 ], [ -0.866, 0.500, 0.000, 0 ], [ 0, 0, 0, 1 ]]```

Note the angles of the two outputs. In the second Rx and Rz appear to be swapped.

Perhaps I don't understand the coordinates but the second output seems wrong to me.

Can anyone confirm that this is bad behavior or explain why its not?
This is not a bug or a bad behavior. The Pose command uses an Euler angle representation (Rx->Ry'->Rz''). Using this representation, when the Ry value is 90 deg (your b value), Rx and Rz are redundant.

These 2 transformations are very similar:
Code:
```from robodk import * pose1 = Pose(0.000, 0.000, 0.000,  30.000, 89.000, 0.000) pose2 = Pose(0.000, 0.000, 0.000,  0.000, 90.000, 30.000) # Calculate error: pose1to2 = pose1.inv() * pose2 print(pose1to2) # Outputs: Pose(0.000, 0.000, 0.000,  -0.000, 1.000, -0.000)```

The 4x4 matrix you see is a pose and it represents the 6D transformation. You can see a very small change between the 2 poses.