many ways to implement the other circuits shown.
The central pattern generator can be as simple as a
single transistor sine wave oscillator with the output connected
to a circuit (Circuit 1) that acts as a voltage to position
converter using a few components and an unmodified,
hobby type servo. When correctly connected together, the
shaft of the servo will rotate back and forth in a smooth,
near sine wave pattern. This back and forth motion — when
properly in phase with other sine wave/servo combinations —
forms the basis of robotic locomotion, whether it is walking,
crawling, swimming, or flapping.
The nervous system can be used to synthesize all forms
of limbed and finned robotic locomotion within the limits of
current servo technology, provided that the circuits can
generate the proper waveforms. Furthermore, only by
modulating the frequency, phase, amplitude, and DC voltage
offset of the oscillator can the full power of continuously
variable analog computation be taken advantage of. In these
examples, I use only NPN transistors to perform this function
to keep things easy.
Circuit 2. Master/slave central pattern generator.
How It Works
Circuit 1 shows a circuit that I call the “basic motor
neuron.” It’s a two transistor multivibrator (Q1, Q2) with a
third transistor added (Q3) and a high impedance on its base
that is functionally a voltage variable resistor (with a
threshold). This outputs the 1-2 msec pulse that is needed to
control the servos. The MPF102 JFET was tried as the third
transistor, but I get much better and more linear results just
using an inexpensive 2N2222 or something close to it. Other
circuits have been tried using opamps and diodes, 555
timers, and just digitizing the signal, but this is the circuit I
settled on, in keeping with the BEAM spirit.
Use the values suggested as a starting point; there’s a lot
of room for experimentation. Be sure not to omit C12 and
C13, as these capacitors help eliminate noise in the oscillator.
An oscilloscope will be helpful to adjust these circuits. R3 is a
potentiometer that, with a voltage at R1, adjusts the high
level pulse. R1 and R2 control the impedance of the circuits
and determine how much an input
voltage influences the timing. This circuit with a hobby servo represents a
voltage to position converter.
Circuit 2 represents a central pattern generator using phase coupled
sine wave oscillators. Section 1 eventually feeds to one servo and Section 2
feeds to another. The sine voltage at
OUT1 and OUT2 should be roughly
90° out of phase; it should make a circle or something close to it on the
screen of your oscilloscope when set in
XY mode. It is controlled by R9, R10, and R12. These
voltages can be tied into “basic motor neurons” to create a
smooth sine motion on the output shaft of a servo.
Having two servos phased locked roughly in quadrature
forms the basis for locomotion. This can be a two servo
walker, a single two axis leg controller for a quadruped,
undulating motion for a fish or crawler, flapping, etc. (It
should be pointed out that there are all sorts of circuits that
can create sine waves or something close to it. A 567 tone
decoder, for example, can be set up as a quadrature square
wave oscillator and then a simple RC low pass filter is used at
the outputs.) Computationally, the oscillators are acting as a
sine (or other waveform) look up table.
A word about the sine outputs and R9, R10, and R12.
The values can be adjusted for quite complex wave forms. I
have personally sampled and printed out periods 1, 2, 3, 4,
8, 16, and chaotic phase orbits. One setup showed a definite
trend every 32 cycles, but never actually repeated.
This might be useful, for example, to keep a two servo
walker from digging itself into or digging out of a hole on a
soft surface (i.e., sand) by having a variable phase trajectory on
the output shaft of the servos (of course, it might just make a
bigger hole!). On top of that, the circuit can be adjusted to clip
the ground or positive voltage, which might create some more
useful waveforms. An interesting thing about weakly coupled
oscillators operating in a chaotic mode is that they become
information generators instead of just look up tables.
If one of the resistors in the RC
network in the sine oscillator is
replaced with a transistor that has a
high base impedance to act as a
voltage variable resistor, then the sine
oscillator can be frequency modulated,
as shown in Circuit 3. This would, for
example, allow the robot to both walk
and run by changing the oscillator time
constant. By phase locking two of
these circuits together, as in Circuit 2,
more complex and interesting wave
forms can be obtained by frequency
Circuit 3. Frequency modulated central
SERVO 07.2004 19