Robot joint Control



The control systems that we design for the joints of our robot have got a long ancestry. Human beings have been devising control systems for a long time. It’s been part of our ongoing process to harness the power of nature.

Here’s the schematic of a device invented by Hero of Alexandria around 2000 years ago and its purpose was to maintain a constant water level in the right most vessel. A constant water level result in a constant pressure and that was important for accurate time keeping with a water powered clock.

A related but more recent instance of this is the control of water level in the system of a flush toilet. A very simple mechanism, if the water level is less than the desired level, water flows into the tank and if the water level is greater than or equal to the desired level then it stops flowing into the tank.

Here’s an innovation that was important in harnessing wind power. If the main blades are not pointing directly into the wind then some wind will pass through the small fan tail. And that will cause the whole top of the windmill to rotate so it points the main blades directly into the wind.

A really important invention, perhaps under pinned the industrial revolution, is the centrifugal governor invented or at least perfected by James Watt. If the steam engine is running too fast then the centrifugal governor reduces the amount of steam going into the engine. And similarly if the engine is going too slowly it allows more steam into the engine and it allows the engine to run at constant speed even though the load on the engine may be varying.

It took a long time to come up with a general theory of control and a lot of very smart people contributed to this over a long period of time. Harald Black, shown here in the middle, really formalized the theory of negative feedback and that is you subtract the output of the system from the desired input to the system. This technique was patented by Black to improve the performance of amplifiers used in long distance telephone networks.

A really big innovation in control came with the introduction of affordable small digital computers and perhaps one of the first and perhaps best known examples of this was the small digital computer that was built to navigate Apollo spacecraft to the moon and to guide the lunar module from orbit onto the moon’s surface. 
Here again is the diagram that shows the components of a typical robot joint control system and we see here the negative feedback loop where we have the desired position and also feedback of the actual position.

One part of the system that we haven’t yet talked about is the position sensor. The most common technique for sensing the angle of an electric model is once called an incremental encoder.

Here we can see some examples of incremental encoders and typically the incremental encoder is fitted to one end of the motor assembly.

So these days you buy an integrated motor assembly it’s an electric motor. It’s got a gear box and it’s got an encoder which provides signals to tell you the angle of the motor shaft.

The principle of an incremental encoder is pretty simple. We have a slotted disk on the motor shaft and a pair of LEDs shine light through the slots and that are picked up by a pair of photo detectors. The two LEDs are positioned a half slot apart, so the output signals from the detectors looks something like this when the motor is spinning in the clockwise direction and it looks something like this when the motor is spinning in the counter clockwise direction.

In order to determine the motor angle all we need to do is to count the pulses but it’s important to know whether we’re counting up or down and that depends on the direction of rotation.

The direction of rotation is actually very easy to determine. We look at the rising edge of the A signal and we measure the value of the B signal. If the B signal is zero on the rising edge then we’re moving clockwise and if the B signal is one on the rising edge then the motor is rotating in the counter clockwise direction.

Incremental encoders are simple and cheap. They give us the direction of rotation and also the rotational speed that comes from the number of pulses per second. If we count the pulses we can determine the angular position of the motor shaft because the output signals of the photo detectors are binary, very easy to interface to a cheap micro controller.

Another important component in the robot joint control system is the micro controller. Modern micro controllers pack an awful lot of functionality into a very small package. They have analogue input and output, digital input and output, perhaps they've got serial ports.

Internally they have a large number of counters and timers and pulse with modulation generators in addition to a small computer with RAM and sometimes non-volatile memory as well. They’re easy to interface to a network to a keyboard and a display; very, very versatile and today very, very low cost devices.

Finally the robot joint controller looks something like this. We have the joint controller itself which is an algorithm running in the joint controller inside an embedded micro processor. Typically it outputs a pulse-width-modulated signal to the motor drive, which is this H bridge circuit that drives the actuator, a small electric motor. There is a gearbox which connects the electric motor to the robot joint and we use a gearbox to amplify the relatively low torque from the electric motor to the larger torque which is needed to move the link of the robot.

We use an incremental encoder to measure the position of the motor shaft and we can pair that with the desired position that we want the joint to have that goes into the joint controller and the loop is closed.

We can create a dynamic model of that robot joint controller system. A critical part of this is the summing junction. This is where we input the desired position of the robot joint and we subtract from that actual position.

This is the essence of a negative feedback system, the desired position minus the actual position. The result of that is the error in position and that goes into a control law.

The output of the control law is a signal that goes to the motor driver and applies some arbitrary gain I call it KD and generates a current is applied to the transfer function for the actuator, which is shown here.

The result of which is position of the motor. We have a sensor, which measures the position of the motor and our model that by a gain of one and this is the signal, which is subtracted from the desired position.


There is no code in this lesson.

A robot joint controller is a type of feedback control system which is an old and well understood technique. We will learn how to assemble the various mechatronic components such as motors, gearboxes, sensors, electronics and embedded computing in a feedback configuration to implement a robot joint controller.

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 an understanding of high school-level mathematics, e.g. trigonometry, algebra, calculus, physics (optics) and some knowledge/experience of programming (any language).

More information...

Rate this lesson


Check your understanding

Leave a comment

Previous lesson Next lesson