Robot Figures: Control System
Each robot has 2 acrylic decks which contain the electrical system.
The bottom deck (right) contains the "brain" components diagrammed above. A commercial Microcontroller Board and wire wrapped custom boards are used.
The 5VDC linear supply feeds only brain (not servo) equipment.
The solid state relay allows the whole robot to be "safed" from a remote location.
This VERSATILE SHOW-CONTROL SYSTEM can best be viewed as a 3-tiered management pyramid: The top tier and "CEO" , is the PC; subservient to it on the middle tier are the up to 16 subsystems (for example a robot on-board microcontroller), these typically posess sensors and can range from autonomous to tightly directed from above. And finally, subservient to the subsystems is the bottom tier (requiring constant supervision), the many servos, each of which is really a tiny computerized motion-control system. The purpose of all this is creating and playing automatic performances - with multiple robot actors, lighting, effects & sounds.
The physical implementation of the above diagram is as follows (see topology diagram below). The 2 built robots, a user interface module, and up to 13 future subsystems all reside on a communications backbone called a Robot-Bus which is mastered by a personal computer equipped with a digital i/o card (Cyber Research DIO-24). The PC, running DOS (this dates from 1996, the pre Windows, pre USB era) and custom software written in C, can query and write to any devices on the bus at >1 million bytes per second, at distances up to 4000 feet. The 24 signal robot-bus is implemente with RS-485 , a reliable & noise immune technology that requires 2 wires per digital signal. A traditional address / data bus arrangement was chosen for simplicity of design, fabrication and debugging; despite resulting in a cumbersome 50 line ribbon cable. The breakdown of the 24 robot-bus signals is:
Each subsystem on the bus has a 1KB dual-port RAM to further simplify operations. Virtually no handshaking is required because the PC and the robot subprocessor have independent access to this memory. The PC program can read and write memory locations in the subsystems at any time, as if these locations were in the PC.
- 8 Lines DATA, to and from PC
- 10 Lines SUBSYSTEM MEMORY LOCATION (0-1023), from PC
- 4 Lines SUBSYSTEM ID (0-15), from PC
- 1 Line READ / WRITE, from PC
- 1 Line STROBE, from PC
Below is a more detailed diagram of a robot subsystem. At its core is a Motorola 68HC11 microcontroller, which spends most of its time generating 40 high resolution servo PWM signals. The HC11 loops every 22 milliseconds through an assembly language program (stored in HC-11 EEPROM) that generates servo pulses in accordance with PC-requested positions pulled from the dual port RAM. It also digitizes 8 analog voltages and does some transfers between the PC and the robot local ports. These Ports can be used for sensors, actuators, local lighting, etc. At startup and in case of HC-11 malfunction, the PC can directly control servo power and HC-11 reset. Local memory is available for autonomous (off robot-bus) robot action if desired. The HC-11 can also be commanded to execute program code that the PC has inserted into the dual port RAM. This system has proven to be highly reliable.
The top deck (Servo Deck) contains the servo power supply, connectors for the servos, as well as the structures which support the servos and the robot. The 8 amp 6 Volt DC power supply works well with Slave Zero, but is a bit wimpy for Slave One which has several higher current servos. Slave One could benefit from a gel-cell battery in parallel to handle peak current demands.
The servo brackets are slotted to allow adjustment of cable tension.
The ULTRASWIVLER (right) is the main user interface to the robot figures.
The ultraswivler allows individual joint control by 4 possible methods:
For each oscillating joint, the user has control of frequency, range of motion, and range bias. There is also a "master tempo" knob that modulates all oscillators.
Motion sequences can also be recorded and played.
Achieving smooth multijoint movements by turning knobs is not practical. That's why waldos were invented.
A teach pendant (also called a waldo) is a structure with similar joint geometry to the actual robots. But instead of having motorized joints, it is limp and has SENSORS in the joints. A user can move the teach pendant and have the robot(s) copy these movements. It is also possible for some joints to be controlled by the pendant and others by oscillators. The teach pendant uses potentiometers as sensors and as structural elements.
The computer software, in conjunction with a calibration table, translates the waldo's pot values into servo position commands.