Firefighting Module
for the
Trinity FireFighting Competition

David P. Anderson

LegoBot with Firefighting Module Lego Firefighter, front view

Click on images to enlarge.

The Dallas Personal Robotics Group (DPRG) have built a very nice robotic firefighting course patterned after the Trinity Firefighting Competition.  In this contest, a robot must find and extinguish a candle placed randomly in a sort of miniature house.  The floor plan and dimensions of the house are known in advance, and consist essentially of four rooms separated by hallways.  The specific dimensions, along with the rules of the competition, can be found on the Trinity college website

DPRG Warehouse Firefighting Course

    Navigating the Maze

The DPRG has setup their firefighting course at the DPRG World Headquarters ("the warehouse")  where the club meets for Robot Builder's Night Out (RBNO) on Tuesday evenings.  On a series of Tuesdays I've been playing around with LegoBot on the contest course, and determined that LegoBot is able to navigate the course, that is, visit all four rooms, simply by doing a right-hand wall following behavior.   The course is ostensibly designed to make this difficult, by situating one of the four rooms surrounded by hallways, thereby serving as a "trap" for simple wall following robots.  However, a subtlety of LegoBot's wall following behavior allows it to handle the course without modification of its algorithm, with a simple adjustment of the gain of the IR obstacle avoidance sensors.  This behavior is easily observed in the videos referenced below.  For more detail on the LegoBot wall-following behavior, see the LegoBot webpage.

    Extinguishing the Candle

TYCHO R/C Hovercraft
The common wisdom seems to be that the quickest and safest way to extinguish the candle is just to blow it out with a fan.   I "liberated" one of the two steering fan assemblies from an old TYCO R/C hovercraft toy.   The assembly consists of a powerful 9.6 volt DC motor and an attached three-bladed propeller, all contained in a nice nylon fan-cage (to protect young and not-so-young fingers).   The fan is powered from the robot's 12 volt motor battery, and can extinguish a candle flame or match from about 5 feet away!    (However, the rules require close proximity to the candle before blowing it out.)

The fan motor, as driven from LegoBot's 12 volt battery pack, draws about 4 amps, which is far too much current for the SGS L293D H-Bridge on the robot's expansion board that I had been planning to use to control the fan.  Instead, I found a suitable 5 amp relay among the electronic detritus on my workbench, and arranged to drive the 5 volt relay coil from a transistor LED driver on the robot's  expansion board.  The relay can be seen in the photographs as the small, blue box that is attached with a cable-tie to the plastic horizontal support member, next to the fan motor.  It has six wires connected to it;  a pair (power and ground) for 12 volts from the battery, a pair for 12 volts to the fan, and a pair for control of the relay.  The other wires consist of a 4-wire ribbon cable for a pair of CdS cells, and a 3-wire ribbon cable for the ultraviolet flame sensor.

Closeuo of fan motor and 12 volt relay

The blue plastic horizontal structural member was a piece of scrap plastic I had in the junk box.  It was drilled for a mounting hole to mate with the hovercraft fan motor unit, and attached to two Lego uprights using cable ties at either end.   In this way, the firefighting "module" can be added/removed from the LegoBot by just connecting the two uprights and plugging in the fan and sensor wires.  This is a trade off, because the firefighting module is not protected by LegoBot's full coverage front bumper, so the robot cannot be allowed to wander around outside of the firefighting course with the module attached, lest it get torn off.   The module is only attached while the robot runs the competition.  

The firefighting module    The firefighting module, reversed

    Sensing the Candle

With the LegoBot able to successfully navigate the maze and visit every room without touching the walls (well... hardly ever!),  and the hovercraft fan module under control of the microprocessor, the next challenge is to know when to turn the fan on and off.   After some experimentation, it became apparent that the candle flame, at least to a first approximation, is the brightest thing in the maze.  A pair of left and right facing CdS photocells were added to the fan module, and a simple photo-attract behavior was added to LegoBot's repertoire.  The photo behavior is divided into three variable segments, based on absolute detected brightness, that, 1) acquire the flame, 2) suppress the wall following behavior, and 3) activate the fan, respectively.

Flame sensors package

The image shows the CdS cells mounted directly to the fan, underneath a black cardboard hood. The hood prevents the CdS cells from "seeing" over the walls of the contest course, ceiling lights, etc. This method for sensing the candle works robustly about 75% of the time.  The other 25%, it is fooled by bright ambient lighting conditions in the room.   For example, it would attempt to "blow out" a bright beam of sunlight striking the course wall.  

After a few weeks of experiments, a Hamamatsu UVTron flame sensor package ordered from Acroname was fitted to the blower module.  This device and it's driver board produce a 10 ms pulse about three times per second in the presence of a flame, and it really works remarkably well.  The UVTron tube is enclosed in a modified black plastic film canister to restrict its field of view, and attached directly to the top of the hovercraft blower motor housing.

    Module and Hamamatsu, front view    Module and Hamamatsu UVtron, side view

The photo behavior does a logical AND of the Hamamatsu flame sensor and the fan activation signal generated by the CdS cell readings, so that the fan can only be triggered in the presence of a "real" flame.   The robot still triggers on bright reflections on the wall in the presence of the candle, from time to time, but the robot continues to search for the candle as long as the flame sensor indicates its presence.   Only by blowing on the real flame will the detection go away, as the candle is actually extinguished.  The third video shows this behavior, as the robot is briefly fooled by a bright reflection from the wall as it enters the room with the candle.

   Videos from  21 March 2004

The robot is supposed to begin the contest on detection of a smoke alarm signal.  LegoBot currently does not have this capability, and so I just start it manually by pushing a button, as shown in the following videos.  The robot can also garner extra points for returning to the point of origin after finding and extinguishing the candle, which LegoBot is able to accomplish.  It keeps track of its position using wheel odometry, and turns itself off once it gets back to [0,0] after a flame has been exinguished.

But drift in the odometry makes the robot sometimes not able to come to a stop. Gary Teachout from the SRS group told me that he resets his odometry after the flame is extinguised, by measuring the distance to the local walls using proximity detectors. I do something similar with sonar on the SR04 robot, to square up to the walls and reset odometry. I may need to do something similar for the firefighting course.

Of the runs that I have recorded on video, LegoBot failed during the return to origin, in some manner, on each of the attempts. Also touched the walls on each attempt (probably bright reflections from the beautifully painted contest course), but did successfully locate and extinguish the candle on each attempt.

More to come...
First run

firefight 01 - full res mpeg (13 Mb)
firefight 01 - low res mpeg (6 Mb)
firefight 01 - windows wmv (3 Mb)
firefight 01 - real media (1.5 Mb)

Fifth run

firefight 05 - full res mpeg (17 Mb)
firefight 05 - low res mpeg (7 Mb)
firefight 05 - widows wmv (3,5 Mb)
firefight 05 - real media (2 Mb)

Second run

firefight 02 - full res mpeg (20 Mb)
firefight 02 - low res mpeg (8 Mb)
firefight 02 - widows wmv (4 Mb)
firefight 02 - real media (2 Mb)

Sixth run

firefight 06 - full res mpeg (16 Mb)
firefight 06 - low res mpeg (6.8 Mb)
firefight 06 - widows wmv (3,3 Mb)
firefight 06 - real media (2 Mb)

Return to LegoBot's Homepage

Return to My Robot's Homepage

27 Mar 2004