For the full article please see the Summer 2007 issue of Robot Magazine.
Tthe “Follow Me” Rover uses body heat to locate and track its human master. At heart of this heat seeking capability is the Devantech TPA81 Thermal Sensor Array. The TPA81 consists of an array of eight detectors mounted horizontally. Each of the detectors is capable of detecting infrared at radiant heat wavelengths. The array also provides the current ambient air temperature. By comparing the detectors to the ambient temperature it is relatively easy to detect the presence of a human body and determine its direction.
This robot uses a Scorpion motor controller to drive the four DC motors. The motors are wired in two pairs with one pair for the right side and the other on the left. The Scorpion does all the processing required to give smooth coordinated turns. Since I did not want to generate the servo signals directly I used a Parallax Servo Controller (PSC). The PSC takes simple serial commands and then does all the work of generating the servo pulses.
Power for the motors is supplied from a single 7.2 volt 2800mah battery. This battery is for the motors only. Power for all the other electronics is supplied from a second smaller 1600mah battery. The batteries are capable of running the robot for over an hour.
For this application the Basic Stamp is the “Mission” processor. All the behaviors for this robot’s mission are controlled by this processor. It takes in sensor information and in turn controls the motion of the robot via the motor system. The Stamp is programmed in a language called PBASIC. Although not the most robust language, it is simple to use and modify. This makes it an ideal language to write the high level mission code.
There are three major sensor systems which connect to the Basic Stamp. Mounted on the upper deck of the robot are the proximity and thermal sensors. The proximity sensor is used to avoid objects. The thermal sensor is used to locate and track a heat source. Mounted on the lower deck is a Parallax Ping ultrasonic sensor. It is used to measure the distance of objects directly in front of the robot. The proximity and thermal sensors have there own microcontroller and pass simple left/right signals back to the Stamp.
Using the “Follow Me” Rover is quite simple. First stand behind the robot and turn on the motors and then the electronics. The robot will not move until it sees a heat source. Once it does it will start to move and steer in that direction. The robot will select one of three speeds based on the distance measured by the Ping. The further the target is from the robot the faster the speed. As it closes in on its target the robot will slow and eventually stop when within 12 inches. If the distance drops below a 12 inches the robot will back up until the distance is again at 12 inches.
Remote control of the robot is a simple matter of body gestures. Walk a way and the robot will follow. Turn while walking and the robot will turn and continue follow. At any time you can glance back and check the LED bar to determine where the robot thinks you are. If you get into a tight spot just walk toward the robot to make it back up. One interesting behavior is triggered when the robot loses track of its target. Since the TPA81 only has a field of view of about 45 degrees it is possible to out turn the robot. The robot compensates for this by stopping and then spins in the direction where it last saw the target. Once it reacquires the target it will continue to follow. If it fails to find the target it simply stops and waits for you to come back.
The technology appears to be robust and scalable enough to create larger and more useful robots. Uses like a “follow me” cart for disabled persons would seem like a worth while application. Other applications could include inspection, search and rescue, and fire fighting to name a few others.
Detailed schematics and all the source code can be downloaded from the links on the right or from http://www.botmag.com/issue7.