1 | initial version |

The Inverse Kinematics is returning an invalid result as you are not supplying a desired orientation for the pose. Without setting an orientation, the default Pose::Quaternion is a vector of all zeros [0,0,0,0], which is an invalid Quaternion. I would recommend either

- read a bit on Quaternions in order to calculate your own

-or-

- move Baxter's end effector into the desired orientation with respect to the base of the robot, check the arm's current Pose::Quaternion, and use that:

```
$ rostopic echo -n1 /robot/limb/left/endpoint_state
header:
...
pose:
position:
x: 0.529521061953
y: 0.205000088025
z: -0.287943031364
orientation:
x: -0.229715175883
y: 0.970497091367
z: 0.00287481046527
w: 0.0731988325182
```

Whether or not the latter method will work at an arbitrary Pose::Position is arm-configuration dependent.

2 | No.2 Revision |

The Inverse Kinematics is returning an invalid result as you are not supplying a desired orientation for the pose. Without setting an orientation, the default Pose::Quaternion is a vector of all zeros [0,0,0,0], which is an invalid Quaternion. I would recommend either

- read a bit on
~~Quaternions in order to calculate your own~~

-or-

- move Baxter's end effector into the desired orientation with respect to the base of the robot, check the arm's current Pose::Quaternion, and use that:

```
$ rostopic echo -n1 /robot/limb/left/endpoint_state
header:
...
pose:
position:
x: 0.529521061953
y: 0.205000088025
z: -0.287943031364
orientation:
x: -0.229715175883
y: 0.970497091367
z: 0.00287481046527
w: 0.0731988325182
```

Whether or not the latter method will work at an arbitrary Pose::Position is arm-configuration dependent.

ROS Answers is licensed under Creative Commons Attribution 3.0 Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.