Velocity Ellipse in 2D


Here again is our simple two-link planar robot and what we're going to do now is to consider the end effector velocity as a function of a very specific set of joint velocities. That's the set of joint velocities that have got a magnitude of 1. We can think about this geometrically. What we're interested in is the set of all velocities that lie on this red circle. Here is a general point Q that lies on that circle. Points here and here corresponds to motion of joint 1 only and points here and here corresponds to motion of joint 2 only. All the other points in the circle correspond to a mixture of motion of joint 1 and of joint 2. 

Another way we could write this constraint that the velocity lies on the red circle is in terms of this vector, vector product. It's the same as the dot product. Same dot product of Qdot with itself is equal to 1. We have an expression for Qdot in terms of the Jacobian matrix inverse and the velocity of the robot end effector. So I can substitute this expression for Qdot into the above and I get a complex expression that looks like this.

What does that mean? Well this is the equation for an ellipse. It's an ellipse in the velocity space. So in the coordinate system xdot and ydot, what we have here is an expression for an ellipse. So this is a particular velocity on that ellipse xdot and ydot. What happened is we've mapped a set of velocities in the joint space which was a circle into a set of velocities in the end effector velocity space and that is an ellipse. What this says is that the robot was able to achieve quite a high speed in the y direction but a relatively low speed in the x direction. So it can go fast in the y direction and more slowly in the x direction.

Now this ellipse that I've drawn is a function of the joint angle configuration. The shape of the ellipse depends on the way the robot joint angles are configured. Let's have a look at the example to get the intuition behind this. Once again, this is our two-linked robot. And if I moved joint 1 then the end of link 1 will move with the velocity like this. And if I move joint 2 then the end of link 2 will move with the velocity like this. The end effector velocity is the vector sum of these two velocities. We can add the two vectors together and this is the resultant.

And what we see in this particular configuration, the robot was able to move more quickly in the vertical direction than it can do in the horizontal direction. So for equal joint velocities, we will in general get an even velocity in the different Cartesian directions. This depends on the robot's configuration.

Let's have a look at how the robot's velocity ellipse changes shape as the robot's configuration changes. I've imported a model of the two-linked planar manipulator. I plotted and I created a teach window here. So we can see the blue panel on the side has got a couple of sliders that allow me to change the joint angles of the robot. This is a plain view. A top down view of the robot manipulator.

First thing I'm going to do is to adjust the joint 1 slide a little bit. Here we can see the robot's velocity ellipse. It's very, very skinny indeed. That's because the robot is at a near singular condition. We see that in configuration like this, the robot is able to move quite quickly towards the left and the right. But it's almost completely unable to move either upwards or downwards. The configuration here is close to singularity and similarity came about when the second joint angle was very close to 0. Let me increase the second joint angle. What's going to happen now is that the ellipse gets wider and wider. The robot is further away from singularity and is now in a configuration of joint angles that allows it to move quite readily along the direction of link 2 or orthogonal to link 2. Now if I reduce the second joint angle, Q2, make it close to 0, we see that the ellipse is going to get skinnier and skinnier. Ultimately it will become an ellipse of 0 with a straight line.


There is no code in this lesson.

The end-effector is not able to move equally fast in all directions, and that in fact depends on the pose of the robot. We will introduce the velocity ellipse to illustrate this.

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. MarcoC says:

    Good evening, professor Corke,
    I have problems with the velelipse command.
    If I follow the instruction in the matlab help, I can fix it with this expression:
    >> p2.teach(‘callback’, @(p2,q) p2.vellipse(q))

    Am I right?

Leave a comment