Robots that play with people and pets

 comp.robotics.misc    Post an article   get this group's latest topics as an RSS feed add this group's latest topics to your My MSN content add this group's latest topics to your My Yahoo content
Subject Author Date
Robots that play with people and pets Frnak McKenney 01-04-2007
Posted by Frnak McKenney on January 4, 2007, 8:47 pm
Please log in for more thread options

I'm working on a design for a something to impress and entertain my
niece Caroline, who has recently gotten involved with robots.
Caroline is eleven; my impression is that she hasn't done any
ground-up robot construction, but she does seem to have enjoyed a
Lego-based program at her school.

So... I have an old Radio Shack "Street Quake" R/C truck I've dug
out of my collection of thrift-store $2 specials, and I'm wondering
how I can come up with "something" that is:

- Interesting and/or amusing to an eleven-year-old,
- Autonomous, and
- Cheap. <grin!>

My first thought was a simple "wandering truck" that would
occasionally go to sleep, then wake up, and wander some more. Its
main goals would be to (a) move randomly so it looked like it was
exploring and (b) not run into too many walls.

Then I discovered Bert Van Dam's 'web site and read his article on
"Tom", a Subsumption-based robot that "chased" things, and things
started falling into place. Here's what I hope I'll be able to make
this truck do:

1) Wander about exploring and not cause too much damage. <grin>
2) Find a dark place and hide ("sleep") for a while.
3) Chase moving objects (based on distance)
4) "Play" with humans (and possibly dogs and cats) by moving toward
them, following if they move away, and running away if they come
close.

("Tom" has a rather full array of sensors, but I'm hoping I can get
similar results with fewer, and a smaller investment.)

Well, after several days exploring odd places on the 'web, I haven't
been able to come up with a simple, clear, and inexpensive way to
tell if my robot is facing a warm-blooded creature. I've looked at
E-fields, radiometers, thermopiles, pyrometers, and all sorts of
noncontact temperature measuring devices with prices from $40 to
$500 (I even looked into a gadget called a capaciflector); the best
I've been able to come up with is sticking a pair of Fresnel-domed
PIR motion detectors on the front of the truck. (Panasonic/
Matsushita's 'MP' series have some really nice features, but they're
in the $30-$45 range).

I could do worse: somewhere in my collection is my father's Garden
Frog which croaks when it "detects people", apparently by rapid
changes in the intensity of light falling on it (think "CdS
photoresistor"), but even that involves detecting motion. I'm
curious as to whether anyone can suggest another approach.
Detecting the presence of humans (e.g. "occupancy") seems to still
be an Interesting Problem; I've seen USENET newsgroup discussions on
the topic as far back as 1997.

The PIR approach has some problems. First, because it detects
changes in temperature, it can't detect a nonmoving human. Second,
it's not much help in determining range, and third, even when motion
is present I'm not sure I can tell which direction the human is
moving. How about a $10 noncontact ranging IR thermometer?
"There's a 98.6 degF object 2.64 meters away" would be really nice,
since I could use the range measurement to "chase" or "avoid".

Since I'm still at the GedankenRobot stage (the point where many of
my best creations seem to get stuck) it's not hard to change my
design. Any suggestions will be welcomed.

* * *

A note on the R/C truck. I wan't thrilled with having to cobble up
an L293D/PWM arrangement, but it looks like I can re-use the trucks
existing -- and designed exactly for the motors and batteries --
drive electronics. This is one of many _many_ R/C and IR/C vehicles
built around the Realtek TX2/RX2 and TX2C/RX2C chipsets, and it
_looks_ like all I'll have to do is desolder the chip and solder in
a 16-pin header for a cable.

Tracing a PC board to build some idea of its circuit is a long,
tedious project (I've done it a few times, but it's never fun); it's
simpler to throw the whole assembly away and start again. Even
worse, you have to do it again for the next R/C vehicle. On the
other hand, patching into the circuit through _known_ points (the
RX2 pins) is not only straightforward but it's a _reusable_
technique. In fact, if I had the companion TX2 board, I could
control the truck from _it_ and connect it to the RX2 board with a
two-wire cable.

Will an AVR output pin properly drive the transistors controlling
the L/R steering motor and the drive motor? Guess I'll find out,
but even the _thought_ of accomplishing that kind of re-use warms my
auld Scots heart. <grin!>

* * *

If anyone's curious, here are a few pointers to some of the items
I've mentioned:

Bert Van Dam's 'web site
http://members.home.nl/b.vandam/

Connell 1987: Tom (Description of "chase" behavior)
http://members.home.nl/b.vandam/lonely/pagina37.html

Realtek RX2/TX2 and RX2C/TX2C datasheets
http://www.datasheetarchive.com/
http://www.mobicon.com/

PIR Sensors/Modules/Detectors (search on PIR, Fresnel, RE200B)
http://www.hvwtech.com/ SKU#35050 $10.95
http://www.allelectronics.com/ CAT#IRD-10 $3.95
http://www.electronics123.com/ BB054 $8.95
http://store.qkits.com/ QK76 $12.95

Discussion thread on finding Fresnel lenses
http://www.jesseshunting.com/forums/index.php?
s=409bf6d58c94f4f6fc69200d19b42dde&showtopic=5048

Enjoy...


Frank McKenney, McKenney Associates
Richmond, Virginia / (804) 320-4887
Munged E-mail: frank uscore mckenney ayut minds pring dawt cahm (y'all)
--
Copper wire was invented when two Scotsmen found the same penny.
--

Posted by dan michaels on January 5, 2007, 2:14 pm
Please log in for more thread options

Frnak McKenney wrote:
> I'm working on a design for a something to impress and entertain my
> niece Caroline, who has recently gotten involved with robots.
> Caroline is eleven; my impression is that she hasn't done any
> ground-up robot construction, but she does seem to have enjoyed a
> Lego-based program at her school.
>
> So... I have an old Radio Shack "Street Quake" R/C truck I've dug
> out of my collection of thrift-store $2 specials, and I'm wondering
> how I can come up with "something" that is:
>
> - Interesting and/or amusing to an eleven-year-old,
> - Autonomous, and
> - Cheap. <grin!>
>


Hi Frank. Just a couple of comments to boil down your post. van Dam has
a lot of interesting stuff on his site. You should be able to cook up
an interesting bot using subsumption techniques, possibly coupled with
an "overseer" device that can select between different behavioral
schemes for different situations.

Joe Jones' books "Mobile Robots" and also "Robot Programming" are very
good practical introductions to subsumption techniques. Added to this,
Joseph Jones & Ben Wirz discuss their RoCK robot, which had a number of
different behaviors coded using subsumption techniques, and which they
could select between using a manual pushbutton. One behavioral
repertoire coded in were little song'n'dance routines. Kids love this.

http://www.circuitcellar.com/magazine/142toc.htm

I haven't experimented much with PIR devices, but it seems you could
use them to produce an interesting robot which would either approach or
run away from humans, or animals, in different circumstances. Having
such "ambivalent" responses might have some appeal to teenagers. You
might also check Braitenberg's classic book "Vehicles" regards coding
different forms of robot behavior for different situations.

More to practicalities, R/C cars generally do not make the best robot
platforms, since they are made for speed, while most robots tend to
lumber around at much slower rates. In general, the sorts of small
computers used in small robots to do have enough processing power to
deal with high speeds. R/C cars generally will not run well at slower
speeds, since the gear trains are not geared properly for this. You
won't get enough torque at the low end.

Also, the L293D h-bridges only handle 600-mA max, and most R/C car
motors will draw much more than this. It's probably easiest to try and
tap into the h-bridges already present in the car.


Posted by dan michaels on January 5, 2007, 2:19 pm
Please log in for more thread options

>
> In general, the sorts of small
> computers used in small robots to do have enough processing power to
> deal with high speeds.
>

Was supposed to say "... do not have enough ..."


Posted by Frnak McKenney on January 9, 2007, 12:39 pm
Please log in for more thread options

Dan,

Thanks for taking the time to reply.

On 5 Jan 2007 11:19:00 -0800 and On 5 Jan 2007 11:14:39 -0800, dan michaels
> Frnak McKenney wrote:
>> I'm working on a design for a something to impress and entertain my
>> niece Caroline, who has recently gotten involved with robots.
>> Caroline is eleven; my impression is that she hasn't done any
>> ground-up robot construction, but she does seem to have enjoyed a
>> Lego-based program at her school.
>>
>> So... I have an old Radio Shack "Street Quake" R/C truck I've dug
>> out of my collection of thrift-store $2 specials, and I'm wondering
>> how I can come up with "something" that is:
>>
>> - Interesting and/or amusing to an eleven-year-old,
>> - Autonomous, and
>> - Cheap. <grin!>

> Hi Frank. Just a couple of comments to boil down your post. van Dam has
> a lot of interesting stuff on his site. You should be able to cook up
> an interesting bot using subsumption techniques, possibly coupled with
> an "overseer" device that can select between different behavioral
> schemes for different situations.

van Dam's description of his "Tom" robot was what really started
pulling things together for me. The Subsumption approach seems to
have worked well for van Dam, and I may well adopt it or something
like it, but before I start coding I need to work out a clear and
reasonably specific statement of how Caroline's toy will behave when
she turns it on. I may change it later, but at least I won't be
"evolving" code as I write. <grin!>

> Joe Jones' books "Mobile Robots" and also "Robot Programming" are very
> good practical introductions to subsumption techniques.

Thanks for the reminder. I dug out my copy and I've flagged a
couple of points to re-read when things calm down around here.

> ... Added to this,
> Joseph Jones & Ben Wirz discuss their RoCK robot, which had a number of
> different behaviors coded using subsumption techniques, and which they
> could select between using a manual pushbutton. One behavioral
> repertoire coded in were little song'n'dance routines. Kids love this.
>
> http://www.circuitcellar.com/magazine/142toc.htm

Thank you for the pointer. My Journal Storage and Retrieval system
(see also: Stacks'o'Magasines <grin!>) turned up issues #141, 142,
and 144, but it appears that I pulled #143 out some time back (for a
ReallyGoodReason(tm), I'm certain) and never got around to replacing
it.

The "Waltz" behavior sounded interesting, but there's little
description beyond "plays songs and moves in a pattern". Still, it's
worth thinking about.

> I haven't experimented much with PIR devices, but it seems you could
> use them to produce an interesting robot which would either approach or
> run away from humans, or animals, in different circumstances. Having
> such "ambivalent" responses might have some appeal to teenagers. You
> might also check Braitenberg's classic book "Vehicles" regards coding
> different forms of robot behavior for different situations.

One of my goals is to have the robot respond to humans and pets, and
be able to distinguish them from (say) radiators and fireplaces
(especially the latter! <grin>). PIR detectors, as I mentioned in
my original post, are the best thing I've found, but I'm hoping
someone out there has a better approach. If not (and several past
Usenet exchanges on the topic were inconclusive), I'll use them and
hope that I can be "good enough" to amuse Caroline.

> More to practicalities, R/C cars generally do not make the best robot
> platforms, since they are made for speed, while most robots tend to
> lumber around at much slower rates. In general, the sorts of small
> computers used in small robots to do have enough processing power to
>>>--correction inserted--
>++ Was supposed to say "... do not have enough ..."
>>>
> deal with high speeds. R/C cars generally will not run well at slower
> speeds, since the gear trains are not geared properly for this. You
> won't get enough torque at the low end.

But... R/C cars, carefully acquired ("You're not throwing _that_
away, are you??!!") are much cheaper than the cost of most motors,
battery packs, and motor controllers.

> Also, the L293D h-bridges only handle 600-mA max, and most R/C car
> motors will draw much more than this. It's probably easiest to try and
> tap into the h-bridges already present in the car.

Yup. And as I mentioned, knowing the details of the TX2/RX2 IC
family should let me do this without spending hours following PC
board traces and trying to get part numbers off components.

Wish me luck. I'm hoping that creating this for Someone Else will
be incentive enough to ensure that it at least makes it past the
GedankenRobot stage; I have way too many bits and pieces of "virtual
robots" that never saw a soldering iron lying around here. <grin?>

And if any one out there has any suggestions for a cheap and
reliable People Sensor, please feel free to comment.

Thanks again, Dan.


Frank McKenney, McKenney Associates
Richmond, Virginia / (804) 320-4887
Munged E-mail: frank uscore mckenney ayut minds pring dawt cahm (y'all)
--
"Provide me with ships or proper sails for the celestial atmosphere
and there will be men there, too, who do not fear the appalling
distance" -- Johannes Kepler
--

Posted by Curt Welch on January 9, 2007, 4:49 pm
Please log in for more thread options

> van Dam's description of his "Tom" robot was what really started
> pulling things together for me. The Subsumption approach seems to
> have worked well for van Dam, and I may well adopt it or something
> like it, but before I start coding I need to work out a clear and
> reasonably specific statement of how Caroline's toy will behave when
> she turns it on. I may change it later, but at least I won't be
> "evolving" code as I write. <grin!>

For what you are trying to do, I would strongly suggest that evolving your
code as you write it is the only way to go. Your goal is to make the robot
interesting, and there's just no way possible for you to precisely define
"interesting" before you start coding. You can't even do a good job of. No
one can really.

Doing this type of evolutionary design work is not bad practice - it's the
only way to solve problems that haven't already been solved by someone
else. If there were books written on how to design and build interesting
interactive robot toys, then sure, get the book and read it before you
start (as you are doing). But in the end, hopefully, you will add some
features to your robot that no one has added to any other robot (or never
wrote a book or paper about) - and you come across these ideas by
evolutionary exploring of the design space. Build, play, think, build play
think, continue as long as possible.

> One of my goals is to have the robot respond to humans and pets, and
> be able to distinguish them from (say) radiators and fireplaces
> (especially the latter! <grin>).

Sensory data processing is one of the areas that most robots are extremely
weak in. It's a very hard problem that no one has yet come up with a
simple general answer to. If the sensor doesn't tell you want you want to
know directly, most robots simply don't "know it". In general, it's a
complex problem of statistical analysis that simply doesn't get built into
most hobby robots. It's what keeps complex sensors like video cameras from
being used more on small robots.

I assume you are talking about some type of heat sensor (IR?). It seems to
me that might get confused with various heat sources as you suggest. But,
it might turn out that the confusion makes it all that more interesting as
the robot tries to play with the fireplace, or a heat vent. ("oh look, he
likes the fire!"). And this is where the evolutionary design approach
really works. Instead of worrying about how it might get "confused" just
write some code taking your best guess as to what might produce interesting
behavior and see what behaviors emerge. If one of the behaviors is to
drive itself into a hot fireplace, then evolve the code to make it stop
that. :) You could make it be attracted to a low heat source but run away
from a high heat source for example - which could cause it to move towards
and then away from the fire place until something more interesting grabs
its attention.

I suggest that subsumption/reaction based approaches are most likely to
produce the most life-like and in turn, the most interesting behaviors.
And when interesting and entertaining is what you are shooting for instead
something precise like "vacuum the entire floor without missing any spot",
then you don't have to worry about the complex interaction of the different
behaviors - the more they interact in unpredictable ways the more
interesting it is likely to be. Robots that are predictable quickly become
uninteresting.

--
Curt Welch http://CurtWelch.Com/
curt@kcwc.com http://NewsReader.Com/

Similar ThreadsPosted
Re: Will these turn people into robots? August 14, 2007, 3:11 am
Re: Will these turn people into robots? August 14, 2007, 2:58 am
Treating robots like they have emotions, or treating people like they don't? September 12, 2008, 12:58 am
Re: Did Bruce Lee have any pets? December 27, 2007, 11:19 am
Re: alt.toys.virtual-pets December 21, 2007, 2:58 pm
Re: alt.pets.dogs.boxers December 24, 2007, 4:11 pm
Re: alt.toys.virtual-pets December 24, 2007, 2:22 pm
Re: alt.pets.prairie-dogs December 27, 2007, 1:23 pm
Abu! You'll snap orders. Sometimes, I'll play the membrane. December 19, 2007, 12:22 pm
Re: if you'll bid Mhammed's choir with pets, it'll actively flood the keeper November 17, 2007, 2:26 am

The site map in XML format XML site map
other useful resources:
Official Robosapien Website
Lego Mindstorms Website

Contact Us | Privacy Policy