Building a Robotic Cat

John Hallam, 25 Feb 1994.

One of the proposals which met with some enthusiasm at our recent
meeting was the one that we build a robotic cat.  Cats are highly
autonomous creatures that deal with humans on their own (i.e. the
cats') terms and cannot easily be trained to do any useful task!
Nevertheless, they like to be around people and often interact with
the humans they know, e.g. to demand food. The robot cat would have
the following (similar) specification:

        1) it would live on D or E floor, for a long period (weeks or months);
        2) it would follow people around sometimes;
        3) it would be able to recharge itself when necessary;
        4) it would keep out of the way of the cleaners;
        5) it would ask to be 'fed' if necessary;
        6) it would sometimes play with objects it found;
        7) it would 'enjoy attention';
        8) it would not fall down stairs!

A possible way of approaching this is to build on the ISC Lego
technology.  The cat would be a Lego vehicle, probably with a more
specialised motor drive system than the plastic Lego one so that
mechanical wear in the drive is not a problem.  Sufficient sturdiness
can be achieved by cross-bracing the Lego while the plastic components
mean the robot will be fairly light.  The robot will need a collection
of sensors of greater variety than are available for the ISC vehicles.
These might include:

        Sound detection systems;
        Sound Communication systems;
        Pyroelectric sensors for detecting people;
        Magnetic sensors (flux-gate compass or linear hall-effect);
        A variety of proximity and contact sensors;
        Chemosensors (e.g. gas, smoke, etc.);
        Simple vision sensors (e.g. strip camera);
        Ultrasonic sensing systems (e.g. home made sonar);
        Strain sensors and other force measurement systems;
        Motion detection systems such as shaft encoders;
        Position measurement (potentiometers on rack & pinion gearing);
        Remote-control code communications systems;
        Possibly others.

In addition to the above, the basic sensor systems from the Lego
robots could be used -- switch sensors, light-level sensors, active
infra-red proximity sensors.

Such a robot could be controlled by a conventional ISC Brain Brick,
probably using the C programming environment for code efficiency and
size, and would need a rather more extensive battery power system than
is currently available to permit automatic recharging and sleep-mode
control (cats sleep on average 16 hours per day!).  The mechanical
problems of recharging would also need to be sorted out but these
ought to be fairly straightforward in view of the relatively low
currents involved.

The 'cat' would also need a simple manipulator of some kind so that it
can do more with the world than just push it -- for example it might
shift things around, catch balls, build a nest, or whatever.  Only
some of these can be done without an explicit manipulator and pushing
things on a high friction surface like carpet is energy-inefficient.

This project would be an interesting research exercise since no one
has demonstrated complex autonomous behaviour in an agent with a long
lifespan (as far as I know) and this agent would be fairly complex
with lots of sensors.  It would also be a lot of fun and probably
relatively cheap to do.  Resources available include John's and Gill's
departmental allocation of money (some of it), money from the lab.
projects fund (if we can subvert it for such a purpose) and some of
John's bionics contingency money.  It would also make a very good
demonstration so some publicity money might be available for it too.

Open questions:

        Power -- can we make a sufficiently power-efficient system
that the complete agent stays awake for a fair proportion of its
lifetime (e.g. 25%)?

        Manipulations -- can we make something small enough and light
enough that a Lego chassis can carry it without becoming cumbersome?

        Recharging -- can we design and make a reasonably effective
recharging station?

        Upgrades -- can we arrange to be able to upgrade the 'cat'
while it is running or will we have to put it down in order to change
its brain contents?  Perhaps we could upgrade the brain when it's

        Programming -- what sort of programming strategy and
environment should we go for to make it straightforward to build,
extend and debug?

        Size & Weight -- can we build something that is light enough
not to need too much energy to move around, but which carries enough
sensorium to be interesting?

The largest feasible Lego vehicle is about 50cm long and 30cm wide,
though this is much too big in my view for what we want; the 'cat'
should probably be about 30cm long at most and maybe 20cm wide;
reasonably agile (manoeuvrable); and fairly fast.  Perhaps four Lego
vehicle batteries to provide the power.  No bumpers but bristling with
tactile and non-contact proximity sensors instead.

It would be very nice to have several of these systems -- say three
for definiteness -- to allow for down time and for multi-agent
interaction.  One possible policy is that first year robotics PhD
students (and perhaps MSC/UG project candidates) be required to
implement something interesting on the cats or to build a piece of
hardware for them...