With Watchdog for Sphero, you can position your phone for surveillance of an area of your home, and whenever the camera detects any motion in that area, Sphero will roll towards the intruder with a challenge.
I love playing around with robots, and I wanted to teach myself some computer vision techniques. I started out with Sphero in a small contained area of uniform background color, with the Android phone mounted overhead, parallel to the floor. That was a simple testbed, but even getting that constrained setup working smoothly was a big learning experience (both on the OpenCV side and the Sphero control side).
Once I was happy with that, I got ambitious and decided to go for "free range Sphero". The big challenges here were:
- recognizing Sphero in an arbitrary scene
- dealing with the camera perspective transform when mapping Sphero's location from the image plane to its real-world position on the floor
- dealing with edge cases, e.g. when a command is sent which accidentally rolls Sphero out of view
Both of these are still work-in-progress, but it's at the point where it might even work for someone other than myself, so the Android app is available for testing on the Google Play Store.