|
Anthropomorphism or Why
Legs?
The need for anthropomorphism in domestic robotics is
classically illustrated by the problem of staircases. It is not feasible
to alter houses or to remove the staircases. It is possible to design
robots with stair-climbing attachments, but these are usually weak spots
in the design. Providing a robot with the same locomotive structures as a
human will ensure that it can certainly operate in any environment a human
can operate in. The development of the robot is facilitated by the
extensive research into the anatomy and physiology of the human; it is
hoped that the work done by the Shadow Project can have some impact on
further research and development in these and related fields, such as
prosthetic design.
Prototype
Biped
The most visible (and appealing) piece of work in
progress at the Shadow Project is the prototype bipedal robot, the Shadow
Walker. The Walker is a wooden leg-skeleton, powered by Shadow air
muscles. It stands 160 cm tall, its 'upper body' currently consisting of
the control valves, the various control electronics and computer
interfaces. Its purpose is to permit us to research and develop the
necessary designs and techniques of humanoid balancing and walking. The
walker is a research prototype, and as such has undergone considerable
refinement as control problems are discovered.
Skeleton
The skeleton of the Walker was designed by David
Buckley. It is wooden, and follows the shape of the human skeleton closely
(see animation above), save only in these respects:
- the lower leg is one piece, rather than the
two-bone structure of the human.
- the knee has a simple joint and as such possesses
no kneecap.
- the foot has only one toe, which is the width of
the foot.
The hip is a ball-joint, permitting three degrees of
freedom; the ankle is a double-axis design, permitting two. We do not
envisage that any great modifications will need to be made to this design
in the course of development, except possibly that it may be necessary to
provide more than one toe for balancing.
The hip is a ball-joint, permitting three degrees of
freedom; the ankle is a double-axis design, permitting two. We do not
envisage that any great modifications will need to be made to this design
in the course of development, except possibly that it may be necessary to
provide more than one toe for balancing.
Actuators
In order to make the Walker as close as possible in
its design to the design of the human, it is necessary to find some
substitute for the human musculature. The device we use is the Shadow
air-muscle, designed and developed by Richard Greenhill. The air-muscle
operates on compressed air at low pressures, whilst providing both
power-to-weight ratios and strengths within the range of the human
muscles. Its design makes it intrinsically safe. The air-muscle is
inherently compliant, but has significant nonlinearities in its behaviour.
The air-muscle is described in Eureka, April 1993.
Twenty-eight air muscles (14 on each leg) act across
the eight joints, enabling a total of twelve degrees of freedom. The
muscle arrangement closely mimics that of the human muscles, in that the
placement of an air-muscle will usually match a corresponding muscle in
the human; however, there are significantly fewer muscles on the robot
than on the human. Considerations of the problems of replacing muscles,
and of mounting attachment points capable of withstanding the strains
exerted, has led to the locations of the anchor-points of the muscles on
the skeleton not being identical to those of the human muscles.
Muscle Control
Each air muscle has two control valves, one to fill it
from the air supply, and the other to exhaust it. A sensor on the muscle
measures the amount of strain in it and a sensor on the air line measures
the air pressure in the muscle. In order to satisfy the low-cost
criterion, the valve set has been through several significant design
iterations. The initial design utilised low-cost surplus AC solenoid
valves. These however necessitated high-voltage AC supplies, and extra
switching circuitry to isolate 110V AC from the i/o systems. Triacs used
in these circuits also had the disadvantage of only switching off during a
zero-crossing of the supply, thus restricting control of the valves.
Although these valves can be powered from lower voltages if a DC supply is
used (50V), this still requires more expensive switching circuitry. Also,
we discovered that the valves were optimised for switching high-pressure
air, and hence had a low throughput at the low pressures we use. The
valves we now use are 12V DC water valves, which switch sufficiently
quickly, are relatively noise free (compared to 110V AC) and have a high
throughput. These valves are low-cost, and so are not proportional;
however, the high-speed control of the switching permits sufficiently fine
control of the valves to render this less of a problem than might be
expected. Although this is a point of some debate within the project
team.
Sensors
There are four types of sensor used on the Shadow
Walker. These are ;
- Pressure
- Each muscle has a pressure gauge attached to its
air-line. These sensors were designed by David Tricket, as a
modification of the standard Borden gauge to produce an electrical
output, as well as the usual visual indication.
-
- Strain
- Each air-muscle is attached with two pieces of
Kevlar ® rope. At one end is a strain gauge. This gives a monotonic
increasing output with increasing strain on the muscle.
-
- Under-Foot Pressure
- Under each foot are five force sensors, two at the
toe, one in the centre, and two across the heel. These provide a fairly
good indication of both contact with the ground, and the distribution of
the centre of mass of the robot. The sensors were originally
opto-reflectors, of the Shadow Project's design; however, recently we
have discovered the Interlink force-sensing resistor: this is much
easier to use to get an indication of load on something like a heel.
Using these has made the sensing of the weight distribution much
better.
-
- Joint Position
- Each of the twelve degrees of freedom requires a
sensor to measure it. Initial designs used rotary potentiometers
however, potentiometers suffer from several problems:
- when in motion, their wipers make poor contact
and pop, thus producing poor-quality readings, and reducing intrinsic
safety.
- the use of a mechanical contact introduces a
possible mechanical failure.
- they require mounting on an axis of rotation
which is sometimes infeasible.
As a result, all joint positions are now measured
optically.
The hip provides a good overview of the problems
involved with the sensors. The upper leg is clamped round a ball that is
attached to the torso of the Walker, which provides the necessary three
degrees of freedom. To measure this, however, using on-axis potentiometers
is impossible without a wholly different construction. Measuring with
off-axis potentiometers requires difficult linkages; our experiments
foundered either on excessive play in the linkage, or on the existence of
some motion which was not transmitted along the link. A traditional
technique used for measuring co-ordinates in a difficult -dimensional
space is to measure simpler parameters of the system, such that the
parameters produce a spanning set for the space. However, in the case of
the hip, we would need to mount these sensors in a limited space, and then
to resolve their outputs, which would most likely introduce further
inaccuracies. Our current solution is to use opto-reflectors to measure
two of the degrees of freedom; one by reflecting infra-red from the inside
leg from a reflective surface on the groin region of the robot, which
measures distance from the leg to the groin, and the other by reflecting
visible light from a graded scale at a constant distance above the ball,
thus indicating position of leg with respect to the scale. The detection
of rotation about the length of the leg is not at present finalised; we
are performing experiments with magneto-resistive sensors which measure
the angle between the sensor and a magnetic field, which would be a
permanent magnet mounted within the ball.
Balance
The human balancing process is greatly aided by the
inner ear, which acts as a sensitive 3-axis accelerometer and
inclinometer. One of our ongoing projects is the provision of similar
sensing capability for the Walker. We currently have an array of mercury
tilt sqitches, which provide crude indications of tilt, and we intend to
mount commercial accelerometer parts to the Walker when we get round to
it... Other measurements necessary for balance are performed by the the
under-foot sensors. The other aspects of balance are detailed under
standing up.
Interface
The electronic control of this hardware is performed
by a custom modular i/o system. An interface card designed to interface
with an 8-bit i/o bus on a standard micro. However the interface was
designed in 1997 and needs upgrading.
- Interface card
- This converts the external bus format (which in
this system is the Acorn Computer® 1 MHz I/O Bus) into the internal
structur of the modular cards. Currently, it supports up to 15 addressed
daughter cards.
- A-D converter card
- This addressed card provides a high-speed 8-bit
analogue-to-digital converter, running at approximately 500kHz. It
provides select signals for up to 4 daughter sensor interface cards.
- Sensor interface cards
- Two of these unaddressed cards are currently used.
Each supports 64 sensors, which have a 0-5V range. These are multiplexed
under the control of the A-D card.
- Output cards
- Two of these multiply-addressed cards are used.
Each provides 48 pull-down output lines, capable of sinking 500mA each
from a load running from up to 50V DC. The outputs are latched.
The low-cost design goal necessitated in-house design
of these systems, which was done by David Buckley. Currently, the analogue
inputs are accurate to ±1 LSB.
Control
Software
The optimistic early work on the control of the Shadow
Walker was filled with notions of letting neural networks solve the
problems. However, there were and are certain significant obstacles
to this technique.
- The early unreliability of the sensors precluded
any use of their outputs directly without significant conditioning of
the values.
- The valves were initially too slow to perform rapid
manipulations of the robot.
- The control of the valves was also poor.
- And, finally, the robot itself was exceedingly
fragile, with a mean-time-before-failure of a couple of minutes.
Neural networks are trained in one of three ways:
- Supervised learning
- This requires that the correct input-output pairs
for a variety of inputs can be presented to the network, and the
generalisation ability of the network is relied upon to cover the rest
of the possible cases. In our case, this required us to be able to
predict the very data that we hoped the network could produce for us.
- Unsupervised learning
- The network is given a signal indicating how well
it performed on the most recent attempt, and is modified accordingly.
The initial actions of the network are essentially random, and only
after many, many iterations of the training process will it begin to
exhibit good behaviour. When dealing with the problems of standing, for
a fragile robot, random behaviour almost always means falling over and
damaging the robot.
- Self-organisation
- Is more useful for pattern recognition tasks, and
again requires the presentation of correct data to the network.
Software
Design
The development of the software thus became
test-directed; it was necessary to build programs to facilitate the
testing of parts of the robot, and the routines written to do this
developed in complexity. Programs operating on the robot now have a
standard library of routines to draw on, which they augment with further
functionality.
Robot Standard Library
The current standard library of routines for the
low-level control of the robot provides these facilities:
- valve switching to 1 millsecond resolution,
asynchronously of the main processes executing, with automatic interlock
to prevent simultaneous filling and emptying of the same muscle.
- reading the sensors.
- maintaining data of minimum and maximum sensor
values over time, and reporting excursions from these bounds.
- scaling the readings of the sensors to the range
0..255, so higher-levels of software can assume the signals are
conditioned.
- providing standard names for all the sensors and
muscles, so software can refer to `left hip 2' rather than `sensor 50'.
- providing logging facilities, to record all the
sensor values over a time-period, permitting examination later for
analysis.
It has been stated that these facilities could be
provided in the hardware of the robot directly; however, this would
possess several disadvantages:
- the very large number of sensors (80) and valves
(56) would require significant investment in time and complexity to
construct further control hardware.
- the design would become fixed in a manner that, at
present, it is not.
- the hardware would require significant space on the
robot, which is not available.
- the hardware would be expensive, compared to the
software costs.
Control Programs
On top of the standard library, a variety of further
programs have been developed. Some permit detailed examination of the
state of the robot, others provide a `front panel', and still others are
part of the actual control of balancing. In1997 we were able to stand the
robot up straight, and have it remain in this position, under its own
control, for periods of fifteen or more minutes. Apart from the valve
noise, the main indication that the robot is not statically balancing is
that it sways up to 10 degrees from the vertical. However, it is not yet
capable of recovering from more extreme deviations, nor rapid changes in
its orientation.
Standing
Up
The control system that finally enabled the robot to
exhibit this fundamental behaviour was a simple fuzzy rule-based
controller. Each sensor's input range is divided into a number of bands,
or `qualifiers': for a specific sensor value, a mapping gives the
proportional activation of the corresponding band. The rules are then
specified in terms of these qualifiers, High-Level Control. The
higher-level control has altered with experience with the system. The
initial, ambitious ideas were usually to control the whole system with a
neural network that would maintain the balance of the robot. However,
examinations of training times of networks on large problems,
consideration of the difficulty problem the robot itself represents (80
sensors provide information on the state; 28 actuators must be driven) and
a strong desire to ensure that, at any time, the actions performed would
be nearly sensible led us away from the idea of a single monolithic
network. Instead, we currently use a simple fuzzy-logic system. Sensor
values are classified according to their closeness to certain qualifiers,
for example, the left hip (`LHip') has qualifiers fore ,
mid and aft, and then rules take qualifier values
and use them to produce actuator commands. A typical code sequence is:
LHip Fore : Left 6 LongFill & Left 2 LongEmpty
LHip Aft : Left 2 LongFill & Left 6 LongEmpty
LHip Mid : Left 2 Off & Left 6 Off
which simply acts to restore the hip to the centre
position by filling and emptying the muscles (2 & 6) that act on it.
Simple control of this sort now lets the Walker stand up straight, swaying
gently around within the tolerance of the control. Any significant
perturbation of the system (for example, pushing the Walker) will take the
state outside the narrow controlled region. We are now augmenting the
joint position rules with rules examining the under-foot sensors, to
produce control in a larger region of the state space. The augmentation
process is entirely manual, for reasons described above. However, we are
investigating the possibility of using neural-network systems to broaden
the effectiveness of the hand-generated rules.
Staggering
Forwards
The most recent development comes from our new
under-foot sensors. These have been improved the reliabilty of the
information from the feet considerably. Using this better-quality output,
we've started to put reflexes in to react to significant changes, so when
the robot moves (or is moved) outside the envelope of simply standing, the
system will take other actions to restore it to standing up. In this case,
we were getting the heel sensors to trigger a pushing action with the toe,
so if the robot was pushed forwards, the toe would push down and move the
robot back. We tried this code, and pushed the robot forwards a few times.
And it duly recovered from these small, but significant, perturbations,
which it wouldn't have done using just the posture maintenance. Then, we
tried pushing it sideways, instead. The entire foot lifted off the floor:
the heel sensor reflex acted, but because the foot was off the ground,
instead of pressing back, the foot was moved forwards. The change in mass
distribution caused the robot to swing back over, and the foot hit the
floor. But, because there was nothing to stabilise the side-to-side
motion, the robot carried on swinging over, lifting the other foot from
the floor. So, the heel reflex for that foot kicked in, and it swung
forwards, and the robot swung back onto that side... Unfortunately, luck
ran out at that point, and the third step didn't happen: the robot was
caught by it's tether and stopped. However, it had taken
twosteps. Next: to get this to be repeatable.
© Richard Walker and The Shadow Robot Company
1999
|
|
|
|
|