Laws of Pet Robotics

So with my Arduino I'm creating basically a movable platform
with sensors and a bit of smarts. Nothing original. So I'm
wondering what others have done to make their "smart
movable platforms" interesting? The guiding principals I
can think of are:

  1. self preservation - search for charging station. don't go over a ledge.
  2. the robot pet has to be curious - randomized roaming
  3. seek human interaction - infared sensor, knowledge of day/night, lights/sounds, maybe even the EMIC text to speech processor

Obviously self preservation would override everything else.
And, if I could get it to remember where it has been, (build
a bit map of the floor plan maybe?), then curiousity would be next.

What have others done?

How about rule 1.5 -
The robot must not break/damage/shock any kids/cats/toys/furniture in its environment.

Might help as a guideline to design sensors and charging stations.

But whats the point of having a pet robot if it wont shock the neighbor's cats. ;D

Robot pets must not lick power points in search of food.

Robot pets must be aggressive towards strangers and squeek and chirp as loud as possible.

Robot pets must not seek intimate relations with other robot pets.

I'd love to see a robot pet make it's own bitmap floor plan, but I think that might be barking up the wrong micro.

I've been working on a similar project and thinking along the same lines; how do you turn a 'room rover' into something that more closely mimics pet behavior? I think your guiding principles are a good start. I would add to the human interaction component by saying that the robot should be able to play. I think play (whether with other robots/pets or with humans) is an essential part of making it seem that a robot can build a relationship or have personality in the same way that a real pet can. How the robot plays will depend heavily on what kind of hardware it has.

On a related note, have you taken a look at the iRobot Create? It's just like a roomba but without the vacuum and, for me, it was a good way to have a robust platform that can already self-charge and detect ledges. It seemed fairly cheap considering all of the built in sensors and you can control it with an Arduino.