Robot joint Control



We've covered a lot of territory in this lecture, let's recap some of the more important points. 

Actuators are devices that cause motion — that can cause linear or rotary motion, and they can generate either a speed or a force. They can be based on a number of different physical principles; they can be hydraulic, pneumatic, or electric.

In most robots, electric is the most common type of actuator that's used. Most robots driven by electric motors employ a reduction gear box. Electric motors are capable of spinning very very quickly, but they tend to have relatively low torque. A reduction gearbox amplifies the motor's torque at the expense of the motor's speed. We introduced "S" as an operator to convert a differential equation into an algebraic equation, a characteristic equation, which represents the dynamics of an underlying mechanical or electrical system. The roots of the characteristic equation are referred to as the poles of the system. And they describe the response of the system as a function of time.

For a system with multiple poles, the overall response is the super position of the response, due to each of the individual poles.
We introduced the notion of a transfer function. And in the laplace domain it is the ratio of resistance output to it's input.

Most mechanical systems incorporate friction. There are two important classes of friction: linear friction, and non-linear friction which is sometimes referred to as coulomb friction.

A realistic friction model looks something like this. It has a positive and negative coulomb friction value and a linear slope "B".

The friction force always opposes the direction of motion. And a friction characteristic like this is not defined for the case of zero velocity. For a current controlled electrical motor, we can write its transfer function in terms of the motor constant, it's inertia, and it's friction.

A motor control system needs a means of measuring the angle of the motor shaft. And the most common way this is done is with an incremental encoder with two light beams shine through slots in a disk attached to the motor shaft.

We can analyze these signals to determine the velocity of the motor and the direction of rotation. And by counting the pulses and knowing the direction, we can determine the angle of the motor shaft. We bring a number of these components together to create a robot joint controller.

The joint controller itself is typically an algorithm running in an embedded controller. The motor drive is typically an H-bridge circuit comprising four electronic switches. The switches can be turned on and off very quickly which allows us to control not only the direction the current flows through the motor, but the average voltage that the motor experiences. The output of the motor is connected through the robot joint by a mechanical transmission, a reduction gearbox which amplifies the torque of the motor.

The position of the motor is measured with a position sensor. Typically, that's an optical incremental encoder. That information is fed back to the joint controller compared with the desired position. And the error between those two is used to drive the motor either forwards or backwards to minimize the error.

We can create a dynamic model of this robot joint control system.

We have a block which represents the joint controller, and the negative feedback summing junction. The output of the motor driver is current which goes into our model of the actuator. The output of that block is the position of the motor. We model the sensor as a gain of one, which provides the negative feedback signal to the joint controller.

The maximum acceleration of a robot joint is a function of the maximum torque that the motor can generate and that's a function of the motor torque constant and the maximum current that can be fed into the motor. And it's also a function of the inertia that the motor experiences.

That inertia has got two components: one component is the motor's own armature inertia and that's a constant. The other component is the inertia of the link.

In a real robot, the link inertia is highly variable. And that's because in a serial link manipulator, each link has to hold up all of the subsequent links. As the joint angles of all of those out board links varies with time, so will the inertia that this motor experiences.

However, typically there is a gearbox between the motor and the link and that is the effect of reducing the inertia of the link by a factor of "G" squared. Typically, "G" is a big number, could be ten, could be a hundred; and that dramatically reduces this variable inertia due to the link configuration.

Multi-joint robots typically employ what's called independent joint control so there is a separate robot joint controller for each individual joint. Typically these controllers have a common electronic and software design. And typically, only a few parameters in the joint controller need to be changed to accommodate the different sized motors that are fitted to different joints of the robot. 


There is no code in this lesson.

We recap the important points from this masterclass.

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. Onofrio Gallina says:

    Very interesting Masterclass! Excellent lessons given by Professor Peter Corke with exhaustive explanations and well illustrated. Thanks!

    1. Peter Corke says:

      Thanks, please share the Robot Academy link with friends and colleagues.

  2. kish says:

    Thank you for this resource. life saver

Leave a comment

Previous lesson Next lesson