DPRG List  

DPRG: Deep Thoughts and rambling

Subject: DPRG: Deep Thoughts and rambling
From: Alan Bredon alanb at cryogen.com
Date: Fri Jan 9 13:37:50 CST 1998

Jim Brown wrote:

> In this oberservation, a robot would need to be created with
> some built in reflex responses.  IE: something to help it
> a long with the process.  Just as you put your finger over
> a flame, your hand draws back, the robot should have some
> similar reflex responses programmed in or it will not be
> complete.  Some things babys and robots should not have
> to learn, they should be innate.  Like the robot should have
> bumper switches, and should not have to learn that it should've
> stopped before it busted a hole in the wall.  The wise programmer
> would've programmed some innate responses, that when a bumper
> sensor goes off, the instant reaction is to stop, or back off,
> or shut down, or some other safety response.  Also, if it's
> power is getting weak, it's response is to seek out a wall
> receptical.  You can't learn if your power runs out!!!

Very good, I agree with the concept of at least some amount of innate
instinctive behavior.

When you stick your finger in a flame too long, the nerves from the
finger start firing towards the spinal cord which immediately sends back
signals for the muscles to retract.  All this before the brain finds out
about the hazard, minimizing the damage!  A properly functioning nervous
system will retract from negative stimuli.  The brain finds out about
the problem and processes the information to determine if the problem
has been handled or if more reaction is necessary (this is the learned
response part).  In other words, the brain collects damage reports

I've implemented just this method in my Otto.  Then pulse width
modulation for the speed control is set up by the CPU but separately
>from the CPU.  I used parallel-serial shift registers driving power FETs
to energize the motors.  The CPU jams a bit pattern into the register in
parallel and the register circulates the pattern continuously (clocked
asynchronously from the CPU at a rate optimized for the motors).  The
FET is driven by the circulating bit pattern.  The circulating circuit
contains a gate which can dump the bits and replace them with zeros in
one circulation, thereby disabling the FET and stopping power to the
motor.  The limit switches have access to those gates and the CPU polls
the limit switches.  If a switch is hit the motor stops or at least
coasts.  Subsequently the CPU responds with a signal to the braking
relay and decides what else to do next.

When we tried to do it all with just the CPU (C64), the program got busy
and would run over people for 1 second after a stop command was issued.
This was because the program was busy doing other things (such as
talking) and we did not have access to interrupts.  Faster processors
and interrupt vectoring can alleviate this problem.  However, interrupt
vectoring, complicates the programming, is not always reliable (CPU goes
haywire), and is difficult for a truly universal robot control
approach.  I've implemented several modularity concepts on Otto.
- --
     _  _
    / || \    Regards, Alan Bredon
   /  ||  \   My views & opinions do not represent my company.
  /. .||. .\  My email address is MINE.  Spammers should pay me!
 /-|-||||-|-\ Legit replies delete the -NOSPAM.
  _|_|__|_|_  http://www.imagin.net/~abredon
 | . .  . . | And always remember to ESCHEW OBFUSCATION!


More information about the DPRG mailing list