Resolved rate motion control in 2D


We're going to introduce an important concept called resolved rate motion control. It sounds complex but its really quite simple to understand. For a lot of real world problems, we might be interested in the robot end effector moving along a straight line in Cartesian space.

Now we know that if we move, for instance, joint angle 1, we move joint angle 2, then the end of the robot tends to move in arcs in space. We don't want it to move in arcs. We want it to move along a straight a line. So we began to specify the Cartesian velocity that we want the end effector to follow. We want to convert that then to the required joint velocity.

We already touched on this. We take the desired velocity nu, we multiply it by the inverse Jacobian and we get the joint velocity that we need. We compute that inverse Jacobian, we can write it out symbolically as I had done here. Now what I need to do is have the robot's hardware move the joints at this desired velocity. But after the robot's been moving for a short period, the joint angle vector Q will have changed so that that Jacobian that I've computed will no longer be appropriate. So what I need to do then is periodically update the Jacobian matrix. And use that when I'm computing the desired robot velocity vector Qdot. So it's a matter of moving the robot joints, updating the Jacobian, computing the robot joint velocity, moving the joints, updating the Jacobian and so on. Repeat this indefinitely. 

Most control algorithms that run on a digital computer a typically discrete time algorithms. That is they compute things at discrete time intervals. So here we have a time line and we indicated a number of time steps. Time 1, time 2, time 3 and so on . The duration of these time steps, I’m going to denote by the symbol delta T. It might be 1/10 of a second it might be a thousandth of a second. Something like that. At every time step what I'm going to do is to take the current value of the joint angles and call that QK. That stands for joint angles at the time K.

To compute the Jacobian, take the inverse, multiply it by the velocity that I want to achieve and compute the Qdot that I need to achieve at this particular time step. What I'm going to do is take that joint velocity Qdot I'm going to multiply it by delta T so that will give me a joint angle displacement; that is how much I would want the joints to move over the coming time interval.

I add that to the current value of the joint angles QK. And that gives me the robot’s target. That's where I want the robot joint angles to be at time K +1. Then I tell the robot hardware to move the joints to this new joint angle configuration over the time interval delta T. And then I'll repeat this steps for as long as necessary. 

We will introduce resolved-rate motion control which is a classical Jacobian-based scheme for moving the end-effector at a specified velocity without having to compute inverse kinematics.

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

Leave a comment