This paper will present an introduction to the "science" of writing control equations for robots. While doing so professionally is indeed a science with a lot of complex mathematics, there is a lot you can do based on intuition and some good hacking. I'm going to try to give you an understanding of what goes into such equations and a bit of a feel as to how they work, how to design them for your application, and how to modify them to make them work better.

The control equations I'm going to describe are suited for real-time control of various basic robot functions; for example, speed control and steering of wheeled robots. We'll use speed control, steering and navigation as examples in this paper, but the concepts can be applied to any other motion based control; like controlling an arm and/or hand.

Most such equations are based on PID equations. PID is an acronym standing for Proportional, Integral and Derivative. These are three basic terms which may be used individually or together to generate control command outputs. In some simple applications, these three terms may be adequate to build a control system. But in "the real world", additional computation terms and logic is often necessary to get good performance.

Outline:

Control system overview

PID equations

Proportional

Derivative

Proportional/Derivative

Integral

Putting it all together

PID training simulator

Designing a system

What are the sensor inputs, the
target references and the control outputs?

Determining which PID terms are
appropriate

What can go wrong?

What limits and other logic may be
needed?

Sample designs

Single motor speed control

Two motor speed control

Steering a front wheel steering robot

Steering a two wheel differential
steering robot

Navigation examples

Distance traveled by dead-reckoning

Distance to an external reference

Steering by dead-reckoning

Steering to external references
(wall, beacons etc.)

Combining dead reckoning with occasional
external references

OTHER STUFF????