Robots at TL7

By James T Perkins ·

TML message #4327From bundle 359Read the whole thread (8 messages)All messages with this subject

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