Wednesday, November 14, 2012

Overview: Sensors

A rover without some means of detecting its surrounding environment is just stumbling around blindly and asking for trouble.

From the outset, the roverbot was intended to navigate autonomously between waypoints, so a GPS receiver is a must.  GPS modules have decreased in price and increased immensely in capability and availability in the last few years.  A modern module can determine its location to within just a couple of meters, and update its position several times per second, making navigation much more accurate than before.

The rover will be driving around outside in relatively unstructured environments, so some sort of obstacle detection and avoidance will also be required.  I plan to use at least a couple of sonar units for obstacle detection and ranging, and I also have a pair of IR distance sensors in-hand.  I'm not sure just how useful the IR distance sensors will be in an outdoor environment, where they may get swamped by sunlight, but I'll give it a shot and see how/if they work.

It would be nice to have some idea of what's going on with the drive system too, so I plan to attach temperature sensors to the motor and speed controller.  I've got a fan mounted to the heat sink of the motor's speed control, so I'll be able to turn on a bit of cooling when the temperature starts to rise.

Finally, I have an accelerometer breakout board that I won in the trivia question segment of Adafruit Industries' Ask An Engineer webcast a while back.  I plan to build this into the rover, to give some indication of tilt, perhaps to implement some sort of rollover avoidance, since all of the electronics is probably going to end up making it somewhat top-heavy.

An assortment of sensors
Top row: Accelerometer, sonar, and GPS
Bottom row: IR distance, and thermistor

In robotics, a bumper switch is a sensor whose primary function is to inform you that the rest of your sensors are not up to the task of navigating in a particular environment.  In other words, if an obstacle makes it to the point of triggering the bumper without being detected by any other sensor, you have a hole in your detection array which should probably be fixed.  The Creeper's rock-crawler chassis poses a little bit of a challenge for mounting a bumper.  The whole point of the design is to put the wheels on the far corners for being able to climb and mount obstacles, and keep everything else as far up and out of the way as possible; a bumper would just interfere with the ability to deal with the extreme terrain that it's designed to be driven on, so other than a basic skid plate over the differential, no protection along those lines is provided.  Regardless, I'm sure I'll be able to work something out with a little bit of tweaking.

That's about it for the preliminary overview of the rover's component parts.  The next post will be about the actual build-up of the chassis, with some notes about the Creeper kit, and a couple of very minor modifications to adapt it for use as a robot chassis.