Giorgio De Nunzio wrote:
> The walker encountered an obstacle and could not overcome
> it at first. Then it tried again by lifting one leg some
> more, so trying a higher step (the central "waist" motor
> rotated some more,
There is no question that the motors, electronics, and physical
environment form several feedback loops that affect how far the motors
turn. However, electronic feedback within the circuit usually plays a
small (sometimes non-existant) role. Mechanical feedback is the major
factor. Interestingly enough, none of the electronic feedback loops can
have any effect on the motion of the walker by themselves. They come
into play as part of bigger feedback loops that always include
mechanical factors (geometry, weight, motor orientation, springs, etc.).
As I said, a lot of these affects in early robots were due to good luck,
not deliberate design. A well-balanced walker with motors that are just
powerful enough to shift the weight will adapt to varying conditions.
> ... see a similar scheme at
That's quite a different circut, however. It's for a six legged walker
with the motor on the upper left lifting three legs and lowering the
other three. The remaining two motors shift the "corner" legs forward
and backward. Sparky's Hexapod uses this circuit, except the 74HC139 has
been replaced with a 74HC086 which performs exactly the same function.
> ... Eventually the walker succeeded in putting its foot on
> the obstacle and it could pass by.
> I explained to myself this behaviour by (of course) a feedback
> from the legs and motors (current absorption). Isn't this one a
> good explanation?
Yes feedback is involved. Has to be. But it isn't simply a signal sent
from the motors to the circuits.
A single motor driving a leg has several feedback loops (6 of them, at
least) at work. Some are always there, some are rarely significant. As
soon as you put two or more motors together on a body, you double the
number of feedback loops per motor. In other words, a simple two motor
walker has at least 24 feedback loops, and that's with no sensors!
When a well-designed walker is moving over a uniform surface, these
feeback loops eventually establish a balance and the walker moves with a
uniform gait. When you disturb the "environment" (place an obstacle in
front of the robot, for example) some of the feeback loops are disturbed
and have to establish a new equilibrium. In doing so they disturb the
other feedback loops, so the whole system has to re-balance. This can
take quite a while so the robot gives the appearance of "trying" to
overcome the obstacle. There is no guarantee the feeback loops will
re-balance in a way that is useful to the robot; they may actually
establish a new pattern that gets the robot thoroughly stuck. We tend to
overlook the times a robot gets stuck because its what we expect; when
the robot manages to establish a pattern that gets it out of trouble,
that's when we sit up and take notice.
So, yes, feeback explains the behaviour of a walker adapting to its
environment. However, it's a very complex feedback system and not easy
to analyze or predict.
Interestingly enough, the reason so many digital walkers don't adapt
well to unexpected conditions is because the designers are so intent on
controlling everything, they end up breaking most of the feedback loops.
You can design precisely-controlled analog robots that are just as
incompetent as digital designs but it takes a lot of extra work :) You
can also design digital robots that are just as adaptable as many analog
robots but that takes extra work as well.