Position and pose in 2D
Now that I have my robot and a coordinate frame, I can measure the position of the robot with respect to the coordinate frame. So, with my tape measure, I can see that the robot has got an x coordinate of 18 centimetres and it has got a y coordinate of 16 centimetres. So I can describe the position of the robot in terms of a vector and the elements of the vector are 18 and 16 in units of centimetres. Now, I can introduce other objects in the environment. A robot can have a little friend. His little friend can sit over there, and I can measure the position of the little friend as well. And, he is sitting at about 38 centimetres in the x direction, that’s his x coordinate. And, the y coordinate, not so easy to measure, but I could say perhaps it’s 6 centimetres in the y direction. So, any object within this environment I can describe their position in terms of two coordinates with respect to the coordinate frame that I laid down at the beginning.
Describing the position of the robot is an important part of the problem, but it’s not quite enough. We need to be able to say something about which way this robot is facing. So, if this robot wanted to move towards this robot, we need to know whether it’s going to move forwards, to the left, to the right, backwards. So, this robot is very different to this robot, to this robot, to this robot. It’s important to be able to describe which way it’s facing. And, in order to describe which way it’s facing, we can use the tools that we've already been discussing. And, what we can do is we can attach another coordinate frame to our robot. In this case, I’m going to use a green coordinate frame and I’m going to stick it on to the bottom of the robot with some, with some blue tack. Now with the robots here, we can describe its orientation - the way it’s facing in the world - by the orientation of this coordinate frame with respect to this coordinate frame.
So, we can describe then the position of this new coordinate frame that we've attached to the robot in terms of a motion. We do a motion from the original coordinate frame, our reference coordinate frame, sometimes called the world coordinate frame, that we move the origin of this frame to here and then we rotate. We can do the same thing for the little robot. We can describe its pose with respect to the world coordinate frame. To do that, I’m going to attach a blue coordinate frame to this little robot, and, I’m going to orient it so that the x-axis is pointing forward. And this is a pretty common convention for airplane, ships, cars, robots. We make the x-axis the direction of normal motion for the machine.
Now, we have a very simple representation of the original environment where it’s described now entirely in terms of a number of coordinate frames which represent the pose of the important entities in that environment with respect to the world coordinate frame. Now, just as we did for the big robot, we can consider the pose of the little robot in terms of a motion. So, imagine that we move the coordinate frame from where it lies on top of the reference coordinate frame. We make a translational motion, move it horizontally, we move it vertically, and then we rotate it and rotate it quite a bit until it lies on top of that coordinate frame. So, that is the pose of the little robot with respect to the world coordinate frame described in terms of a positional component and a rotational component.
So, now we have described the pose of the little robot with respect to the world coordinate frame. We previously described the pose of the big robot with respect to the world coordinate frame. But, we can also describe the pose of the little robot with respect to the big robot, and we can do that by picking up the big robot’s coordinate frame and we make a translation in the world x direction, and then in the world y direction, and then we rotate it until the axis line up. And, that then is a relative motion or relative pose from this coordinate frame to this one.
I’m going to use this Greek letter which is pronounced as ksi to represent pose. In a two-dimensional world, pose has got three parameters: x and y which represent the offset from the origin of one coordinate frame to the origin of the next coordinate frame, and the angle Theta which represents the rotation from one coordinate frame to the next. There is an important convention when we talk about the rotation of one coordinate frame with respect to another, and that is that angles increase positively in the anticlockwise direction. So, if this is my original coordinate frame, if I rotate that by the angle Theta, it looks like this. Importantly, positive rotation is in the anticlockwise direction.
We can also think about pose as a move, a motion in the x direction and in the y direction, and then a rotation or twist by the amount Theta.
So, we can describe that the position of this new coordinate frame that we have attached to the robot in terms of a motion. We do a motion from the original coordinate frame, our reference coordinate frame, sometimes called the world coordinate frame, that we move the origin of this frame to here, and then we rotate.
So, let’s summarise what we've covered in this section. A point can be described by a vector with respect to a particular coordinate frame, and, when we do that, we introduce some additional notation. We use the symbol lower case p to represent a vector. The A in front denotes the coordinate frame from which the vector starts. So, this vector begins from the origin of coordinate frame A. The trailing B is the destination. It’s the name of the point that the vector points to. The pose of a coordinate frame can be described with respect to another coordinate frame. I used this fat arrow to represent the pose - the motion from coordinate frame A to coordinate frame B. Now, the motion is more complex than just a translation like an ordinary vector. It includes a translation and a rotation, so that’s why I used a different kind of arrow. You know that it’s fatter and it’s got a different kind of head.
Symbolically, I describe it like this. I use the Greek letter ksi to denote that we’re talking about a pose. The leading A is the frame of reference. That’s where I start from. The trailing B is where I want to end up. This symbol describes a relative motion, a relative pose from the coordinate frame A to the coordinate frame B. We can consider a pose as a motion. We can consider it as a translation and a rotation. And, for the two-dimensional case, the pose is described by three numbers: two translational components and one rotational component.
To fully describe an object on the plane we need to not only describe its position, but also which direction it is pointing. This combination is referred to as pose.
Try your hand at some online MATLAB problems. You’ll need to watch all the 2D “Spatial Maths” lessons to complete the problem set.
High school mathematics
This content assumes an understanding of high school-level mathematics, e.g. trigonometry, algebra, calculus, physics (optics) and some knowledge/experience of programming (any language).
Fantastic set of lectures. Hats off to you Professor!
I am thankful for 2020 to give me enough time to attend these amazing lectures given by one of the greatest scientists in this domain.
Great Lectures Professor
Thank you and all of the QUT team behind this Great effort
Great Lecture Professor.
Thank for you and all QUT team.