2-vector representation of rotation in 3D


When we're discussing industrial type robots, it's important to describe the orientation of the end effector, the gripper - the piece of the robot that does the work by picking objects up and putting them down. The common convention in this type of robotics is what's called the 2-axis representation. We start off by defining a vector which is called the approach vector and that's the vector that's parallel to the fingers of the robot. We define another vector which we call the orientation vector and that's the vector that joins the tips of two fingers. So that says something about the twist of the robot fingers around the approach vector. And for a lot of robotic manipulation tasks, just knowing the approach vector and the orientation vector is sufficient to be able to describe the orientation of the gripper.

In order to create a right-handed coordinate frame we introduce a third vector just called the normal vector. Now we can express the orientation of the gripper as am orthonormal rotation matrix. We do that by stacking up as columns the N vector, the O vector and the A vector. We're can expand this out as a 3 x 3 matrix and each column are the elements of the N, O and A vectors. All of these columns must be orthogonal. So if we know the A and the O vector, we can compute the N vector as the cross product of the O and the A vector.

Here's a quick recap on the rules that relate the columns of an orthogonal matrix. A little trick that I use to aid my memory is to consider that N, O and A are written on a circular strip of paper. We start with the symbol that we want to know, and is equal to the cross product of the next two around the circle.

Here I have a very simple robot and we have our world coordinate frame here, which is our reference for both position and for orientation. And this robot is going to pick up this battery. In order to do that, we need to describe both the position and the orientation of the gripper. It might be that we want to pick up the battery with a gripper orientation like this or we might want to pick up the battery with a gripper orientation like this. Either way we need to be able to describe the orientation of the gripper. So we do what we've done before, with other objects. We attach a coordinate frame to the gripper of the robot. We orient it so that the z-axis is pointing outwards. We refer to this as the approach vector. It's generally the direction in which the gripper approaches the object. We have another vector which we call the orientation vector and is parallel to the y-axis of the gripper's coordinate frame and that is the orientation of the gripper. Do we want the gripper's fingers like this or like this. And the third vector, the x-axis we refer to as the normal vector.

The orientation of a body in 3D can also be described by two vectors, often called the approach and orientation vectors.

Professor Peter Corke

Professor of Robotic Vision at QUT and Director of the Australian Centre for Robotic Vision (ACRV). Peter is also a Fellow of the IEEE, a senior Fellow of the Higher Education Academy, and on the editorial board of several robotics research journals.

Skill level

This content assumes high school level mathematics and requires an understanding of undergraduate-level mathematics; for example, linear algebra - matrices, vectors, complex numbers, vector calculus and MATLAB programming.

More information...

Rate this lesson


Check your understanding


  1. ItachiVN says:

    Could anyone help me to find the correct answer in Question 1 please! Thanks for your further help!
    Best regards.

Leave a comment