Control Laws

Alias: PID based control equations

    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????