Robots at TL7
In reply to #4323 Re: Rallying the troops for TNE/TDR II by Mark F. Cook
Replies:
Mark F. Cook [email removed] writes:
> I'm willing to give it a shot. I'd like to work with James, but unless
> his work schedule changes, I suspect there's vanishing small chance he'll
> have the time to contribute.
Argh. Life sucks (sometimes). While I have spent most of my time
programming advanced software systems, I have a little experience with
TL7 robot programming from college, where I took a robot programming
class. We programmed a small (24", one-armed) robot and got a good
overview of mostly modern robot systems and technology. Suffice to say
robot programming is still in the stone age, moreso even than
conventional programming.
Off the top of my head, here's some of the problems with TL7 robots:
touch sensors
dynamic range: human tactile and internal sensors can
distinguish delicate forces on the order of 10e-5 Newtons to
crushing weights of 10e3 Newtons, using a log scale. Force
sensors on TL7 robots are usually linearly scaled in a narrow
band engineered for a specific task. My robot had notoriously
flaky microswitches to gauge "force". Usually we programmed
it to squeeze four clicks past switch close and hoped it was
strong enough to grasp the object without crunching it or
having the motor slip and get out of sync with the program.
pattern recognition & perception: humans have millions of
tactile sensors on their bodies which are all coordinated with a
pattern-recognition system that can distinguish the broken edge
of an egg shell from steel net. Robots are typically limited to
a few dozen channels of sensor data.
visual sensors
computer vision is barely out of its infancy. Often embedded
sensors in the environment are a good idea - like office robots
using a magnetic stripe embedded in the floor.
manipulators
force: human muscle groups, made from collections of tiny
contracting fibers, can exert from 10e-5 to 10e3 Newtons of
force in fine gradations, depending on the number of coordinated
units. Again, TL7 robots are usually linearly scaled in a narrow
range.
coordination: muscles are arranged in groups and feedback
mechanisms regulate and coordinate their force signal by
comparing sensor data with the goal in real time. Humans can
regulate force feedback in about 1/5 to 1/10 a second for
unpracticed tasks and as little as 1/30 second for highly
practiced and programmed tasks.
range of motion: muscle systems can exert different levels of
force depending on the particular segment of their range of
motion - for example, the bicep is strongest when the forearm
and upper arm are near a 90 degree angle, and weaker at the
extremes.
blockage: Also, the muscle controller unit is inherently
cognizant of the range of motion the limb is capable of
depending on its physical parameters, location, and environment
(through integrated sensor data). If the limb is asked to do
something impossible, this becomes evident in the sensor data.
Robot programming
guided: a robot with adequate sensors can be taught to record a
particular set of motions by being walked through it, either
programmatically or physically. It can then replay the
remembered motions any number of times. Spray-painting robots
are often taught in this way.
programmed: a robot may be directly programmed in a robot
programming language. These languages are moderately arcane and
while they perform the basic deed, are not particularly
inspiring. Basic problems exist, like:
reaching the limits of the range of motion
(and still thinking you're moving)
not taking into account how heavy the object is
you're moving (arm droops)
failure to realize your force varies with position
poor real-time response
lack of high-level pattern recognition
no innate integration between sensors and manipulators
poor ability to resync with the real world if you slip
bumping into unexpected objects
dealing with anything unexpected, in general
failure to realize that the limbs themselves have mass
and take space (it's easy to write a program
that doesn't take into account that the item of
interest is three feet down a narrow well and
that your arm must reach straight down)
mapping cartesian coordinates to robot coordinates
(ie. position (3,5,-1) corresponds to shoulder
joint 350 deg. Mark 27 degrees, elbow joint -90
degrees, etc. tough from both a mathematical and
practical standpoint - try and move a robot arm
at a constant speed along an arbitary straight
line in real time! Hah! I dare you!)
combine the last two (limb space consumption with mapping)
and you have a really major disaster, since
every point on the robot arm must be tracked,
which animal systems handle innately.
programming doesn't lend itself well to dealing with
large ranges of logrithmic, fuzzy data with
near-instant common feedback systems.
much of the work involves dealing with multi-dimensional
analog information that naturally should be
integrated or differentiated, items which are
unnatural or expensive to perform modern
software systems.
Well, that's a modestly outdated state of the art. Robot systems sorely
lack 3-1/2 billion years of evolution of sophisticated systems,
subsytems, networks, and goal-oriented integration systems. At TL7-8 We
are exposed to the white-box view of the internals of how all the
systems work, a totally different view than our internal experiential
views suggest.
James