Python API Pose gives odd behavior chris_UW Junior Member Posts: 7 Threads: 3 Joined: Apr 2020 Reputation: 0 04-29-2020, 03:26 AM (This post was last modified: 04-29-2020, 10:27 PM by Albert.) 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? Find Reply Albert Administrator Posts: 710 Threads: 1 Joined: Apr 2018 Reputation: 31 04-29-2020, 10:20 PM 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. More information here: https://robodk.com/doc/en/PythonAPI/robo...obodk.Pose https://robodk.com/doc/en/Basic-Guide.html#RefFrames https://robodk.com/blog/robot-euler-angles/ Albert Find Reply