Robot That Follows Me Around - Optical Mouse Sensor

I want to build a robot that follows me around and tracks my movements, like a little pet, very similar to the last post on this topic: a robot that follows me - Project Guidance - Arduino Forum

I plan to use an optical mouse attached to my body, with the laser sensor facing downward toward the ground. The optical mouse will read my movements and then send them to the robot to duplicate them. I'll turn off the mouse sensor when I need to reach out and scoop up the robot.

Surely someone has anyone already done this? Any ideas on resources to search for or links to follow?

I could place the sensor facing downward in front of the heel on the sole of my shoe but I will need to massage the data from the optical mouse to make it work. I have no idea how to do this. Any ideas?

MarlyManning:
I plan to use an optical mouse attached to my body, with the laser sensor facing downward toward the ground. The optical mouse will read my movements and then send them to the robot to duplicate them.

I don't really see how that enables the 'bot to follow you. Surely it needs some way to know where you are in relation to it, and your proposed optical mouse doesn't give it the information it needs to do that, even assuming you managed to get it working (which would be quite a challenge in itself).

MarlyManning:
I plan to use an optical mouse attached to my body, with the laser sensor facing downward toward the ground. The optical mouse will read my movements and then send them to the robot to duplicate them. I'll turn off the mouse sensor when I need to reach out and scoop up the robot.

For starters, the optical mouse light and image chip are optimized for a specific distance from the surface. You will have a VERY tough job of getting it to work at any other height than right at the surface.

To test this statement, grip your mouse by the edges, and while moving it around, slowly raise it off the surface. At about 1 or 2 cm, it will stop working.

Here's another thought. The mouse uses successive images to tell which way and how far it has moved. But you can fool it easily.

First, move the mouse forward, and while keeping it oriented the same way, also move it to the left. Your poiter will move accordingly.

Now, move it forward again, but while you move ir to the left, turn the mouse so that it always points in the direction it's movnig, as if you were following the arc of a circle, keeping the center of the leading edg and the center of the trailing adge on the arc. What happens to the pointer? Well, look at that, it just moves straight up the screen.

It is possible you could overcome these difficulties, but it's a tougher problem than you imagine.

Option "A" would be to tie a leash to your 'bot and drag the little sucker around behind you. No?

Okay, option "B" would be to get a GPS receiver and a transmitter for your body. Read the GPS, and transmit your position to the robot. Have a GPS receiver on the robot do the math and figure out where you are heading. Not all that useful if you plan on doing this inside a building.

Option "C" would be to get some of these:

Attach them to your shoes. One on the left side and one on the rear of your left shoe, and one on the right side and on the rear of your right shoe (and I would use infared LEDs to keep the snickering down). Better yet, attach the LEDs to your cat, and upload the video to Youtube...

Vary the flash rate of the LEDs to help prevent the robot from mistaking the drive lights on your PC from you.

Use multiple IR detectors to pick up the pulses and figure out the direction from which detector is lit up the highest.

What might be more practical would be attaching some sort of beacon to you which can be detected by a directional sensor on the bot. Perhaps a modulated IR LED, or something like that. That wouldn't (easily) give you any indication of range, but perhaps the bot could use an ultrasonic range sensor to determine how far away you were so it could know whether to move towards or away from you.

Doesn't one of the more recent Bluetooths have distance and maybe direction to the device?

The Arducopter project sold a mouse sensor with a lens attached that would work for something like this. Unfortunately I think that part might be unobtanium now.

PeterH:
What might be more practical would be attaching some sort of beacon to you which can be detected by a directional sensor on the bot. Perhaps a modulated IR LED, or something like that.

Vishay TSSP58P38 puts out an analog voltage when it detects a 38KHz signal.

WOW! Many, MANY THANKS for all the speedy replies. You are wonderful !!!
Sorry to be slow to respond, I've been offline with a family issue.
The rationale was that if I could track my movements, the data could easily be sent to a robot to make the same movements.
It might mean fooling with the optics of a standard mouse, perhaps by adding a lens and a brighter light. I imagine there are expensive industrial robot systems that can do this. I want to bring an inexpensive approach to the Arduino community.
A number of sources describe similar approaches:

  1. Make Magazine: Using an optical mouse for robotic position sensing - Make:
  2. Life Hacker - Convert a Cheap Optical Mouse Into a Robot Odometer
  3. Academic: http://pagilla.ceat.okstate.edu/pubs_journal/cimino-pagilla-automatica11.pdf and
    http://chrome.ws.dei.polimi.it/images/5/56/Bonarini_2004_ICINCO.pdf
    If no one has documented how to do it yet, it looks like this will be a long term project. I'm going to follow up on ALL of your suggestions and keep you posted. I'll also check with the mouse hackers who know how optical mouse innards function. Any other thoughts or ideas, PLEASE POST THEM. Again, MANY THANKS!!!

The orientation problems could be reduced or resolved by using two optical sensors rather than one - this would give you a means to detection rotation as well as translation. Getting the optical sensors to work at all will be hard, but if you manage it this still leaves the problem that no matter how well it works there will be some sensor inaccuracy, and this will tend to compound over time. I suspect that in fact the sensor inaccuracy will be quite substantial and the calculated position will diverge so rapidly that it will become effectively useless after quite a short time, but the only question is how long it will take before it becomes unusable. If you have any other sensing technology you could combine to compensate for that inaccuracy, you might be able to work around that problem. This would be analogous to combining a gyro and a compass, which are of limited use separately but work very well together.