Relative pose in 3D


Here again are two, 3-dimensional coordinate frames labeled A and B, and the relative pose A ksi B which is the pose of B with respect to A. We've introduced the point P and we can describe that in terms of a vector with respect to the origin of coordinate frame A, and we denote that just as we did for the 2-dimensional case in the last lecture in this fashion where P indicates a vector and A is the reference frame that indicates that the vector P is defined with respect to the coordinate frame A.

We can also define this point with respect to the coordinate frame B and just as for the 2-dimensional case, we can transform a vector from one coordinate frame to another using the dot operator. So, we take the relative pose A ksi B and use the dot to apply it to the vector P with respect to B and we can think of the B's in the middle here cancelling out and the result is that we are left with P defined with respect to coordinate frame A. We can extend this process. Now, we can define coordinate frame C with respect to coordinate frame B using the symbol B ksi C. And we can compose the 2 relative transformations, B with respect to A and C with respect to B in order to obtain the relative pose of C with respect to A and we use the composition operator which is a plus sign inside a circle and exactly what that means is something we'll get to later in this lecture but it's a process referred to as composing or compounding and we can extend this process indefinitely. And once we've compounded these two relative poses, now we have the relative pose of frame C with respect to A, we can write an expression for the vector with respect to frame C and the vector with respect to frame A and we can extend this approach indefinitely.

We've introduced a pose algebra and there were just a few simple rules, and these are exactly the same as for the 2-dimensional case. The actual implementation of ksi differs between the 2-D case and the 3-D case but when we deal with it in terms of the abstract symbol ksi and abstract operators, the rules are absolutely identical. So, the first rule is composition. Two relative poses can be compounded to get a third relative pose. When we do this, there are some important checks. These two inner indices must be equal and they effectively cancel out. The leading indices are the same and the trailing indices are the same. In general, composition is not commutative so that means ksi 1 compounded with ksi 2 is different to ksi 2 compounded with ksi 1. There is a notion of a null relative pose, that means no change in the pose and we represent that by the symbol O. So, if I have a relative pose of ksi and I compound it with the null pose, the result is the original pose. It's made no change to the pose. If I consider a pose as a relative motion from A to B, and then I go back from B to A, I'm back where I started from, I haven't moved any distance. That's the null pose 0. And if I compound with the inverse of the null pose, again, I'm left with my original pose.

Now for vectors, we can apply a relative pose to a vector, effectively transforms a vector from one coordinate frame to another. In this particular case, it transforms the vector from frame Y to frame X, and to check if we've done this right, these inner two indices must be the same, we can think of them as effectively cancelling out. And these two leading indices must be the same. These are very simple checks that we can use to ensure that we've written our expressions down correctly. Here's a very complex example where I have a large number of 3-dimensional coordinate frames representing some robotics scenario. I’ve got a world coordinate frame. I've got a camera that's fixed in the world. I've got a robot. There's a camera attached to the robot and there's an object in the world that the robot is looking at and might want to pick up. Just as for the 2-dimensional case, we can represent this by a pose-graph. Each node, each blue circle here represents a particular coordinate frame and the edges of the graph represent the relative poses. From this pose graph representation, I can write an expression something like this and to check that it's correct, we can look at it graphically in the pose-graph. The left hand side of the expression is shown in red and the right hand side of the expression is shown in blue.


There is no code in this lesson.

We consider multiple objects each with their own 3D coordinate frame. Now we can describe the relationships between the frames and find a vector describing a point with respect to any of these frames. We extend our previous 2D algebraic notation to 3D and look again at pose graphs.

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



  1. hujfei08 says:

    i want to know the diffierence between the O+ and the dot product?(it’s a point).when we describe pose we use O+?when we describe vector we use the dot product?

Leave a comment