Our robot is to enter a “home” and seek out a spot where there is extreme heat possibly due to a fire. This home has two rooms and can be seen in the video section. The doors of the rooms are fluorescent green or orange so that the color camera can determine the location of the door and enter the room to see if there are flames. The locations of the doors are initially unknown to the robot. Upon entering the room, the robot will once again use the color camera to pinpoint a spot where there is a large concentration of light. Once the robot has driven up to the light source, the heat sensor is activated to check and see if there is a large amount of heat being generated. If there is an excessive amount of heat generated, the fan is turned on and rotated quickly with a servo motor to put out the flame. If the flame is not put out the fan will turn on again and continue to blow on the flame. Once the flame is extinguished, the robot leaves the home. If the heat sensor does not find excessive heat (in the case of just a light being present) it will leave the room and enter the second room. Once the robot has entered the second room it will search out the fire and extinguish it using the fan. Finally, after the fire has been extinguished the robot will leave the home.
As mentioned previously, the color camera was used to find the doors and the light sources. The camera is programmed to find a color based on a range of hue and saturation. When the amount of pixels of that color exceeded a certain number, we were confident that the camera had found what we were looking for and then the robot was programmed to drive to it. This code was called anytime we needed to search out a door or a light source. We are only looking for the biggest object of that color.
The heat sensor was used to distinguish a light from a flame. This was done by determining the largest value in the 8x32 array. The heat sensor is on a servo motor and it records values at 32 positions throughout the 180rotation. The heat seeking code will traverse the array to find only the temperature that is above a certain threshold. If the temperature is below this threshold it gets set back to 0, and if it is above the threshold it gets set to 100. These values are set so that it is easier to debug using the VB code. Once this largest value was determined, the program decided whether or not the max temperature was high enough to be a flame. The temperature for the flame is around 215. If this temperature exceeded the decided temperature, the fan was activated and the flame was extinguished. If not, the fan was not activated and the robot continued to search for the flame. The data sheet for the heat sensor can be found at http://www.robot-electronics.co.uk/htm/tpa81tech.htm.
The IR sensors are used to avoid obstacles and to wall follow throughout the search process.
The fan used is a 24V PC cooling fan. It is mounted on a servo motor because the oscillating fan extinguishes the flame better than a stationary fan does.
The following pictures show the front of the robot, which contains all of the equipment that was used.
Click on pictures for a bigger image.