ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

In answer to my own question, for anyone else that encounters this:

The quaternion you need to give as a goal for an end effector is in the frame of the base joint, not the relative change in position of the base joint compared to the tip.

Eg1. say, you have a base join with Z up and x forward, and the tip with a relative rotation of 90 degrees around the X axis compared to the base joint, when it is in the rest pose (ie,all joints 0). In this first case, to maintain that same starting orientation when moving the tip, you must give a quaternion that is a 90 degree rotation around the X axis, as the goal.

Eg2. say, you have a base join with Z up and x forward, and the tip has exactly the same orientation, with Z up and X forward.

In this second case, to maintain that same starting orientation when moving the tip, you must give the identity quaternion, ie. (x=0, y = 0, z = 0, w = 1).

Thanks for the suggestions Boris, but it turns out the configuration I was using was fine. The problem I was having was that the model that I was regenerating an IK solution for had been changed from the original model that the old solution had been calculated for, so there was a mismatch between what the scripts that drive the robot were expecting and the actual IK results being created. (the scripts were assuming identity quaternion would maintain the starting orientation, which was not the case for the newly generated solution)