Exploring new tools to add to my toolbox

Sawppy the Backyard Rover

The Google AIY Vision box installed atop the camera mast is mostly for looks and, once powered up, will run its own “Joy Detector” demo independently of the rest of the rover. Once physical mounting and electrical power for the box was done, attention returned to the webcam.

As a first step, the easiest thing to do is to attach it to the Raspberry Pi 3 sitting in the rover chassis via USB. This is never going to be the long-term solution. For remote operation, a Raspberry Pi 3 doesn’t have the grunt to do a good job at real-time video compression and streaming. For autonomous operation, a Raspberry Pi 3 doesn’t have the grunt to do a good job at image recognition and analysis. We hope the AIY Vision box can handle the latter role in the future, but that’s not where things are now. At the moment Sawppy is strictly a real-time remotely operated rover and what we want is live video.

One solution is to use a webcam that has onboard h.264 video compression hardware. Such cameras exist, but they are pricy, and getting the video stream out of the camera without its dedicated Windows software can get tricky.

The alternative is to sacrifice bandwidth efficiency to get a quick solution. It is relatively straightforward to pull individual frames out of a webcam in the form of JPEG still images, and it is computationally trivial to send them one after another in rapid succession to create a Motion-JPEG video stream.

It took less than an hour to get basic camera operation up and running on mjpg-streamer thanks to these instructions. We have a video stream that is crystal clear and we are not straining the Raspberry Pi 3 processor to do it. We are, however, putting a load on the wireless network because the 1280×720 Motion-JPEG video stream takes up about 30 megabits per second (mbps) of bandwidth. This is a tremendous bandwidth hog when considering Netflix can deliver full 1920×1080 high-definition video in less than 5 mbps.

But that’s something to be addressed later. In the meantime, it’s time for Sawppy to roam the backyard!