View Full Version : [Contest Entry] MISHAP The FireFighting Robot

04-15-2008, 03:12 PM
This project is my latest entry into the annual autonomous robot fire fighting contest held at trinity college. For most of you who have never heard of this contest the robots must navigate a four roomed 8 foot by 8 foot maze, then find and extinguish a candle in one of the rooms. The contest is designed to simulate a robot that monitors a warehouse for fires and automatically puts a fire out. Because the rough maze dimensions are known beforehand the contest becomes very much a contest of speed. The robot that puts out the most candles in the least time wins.

My entry, MISHAP (minimal intelligence so hope and pray) VI, won the world champion prize at the contest last weekend, somehow beating out the very capable robots from Israel and China...


Here are some videos of the robot in operation:



Since I've been doing this for a while this robot is built around speed. It's motors can hit speeds of 1m/s and the code is good enough to keep the robot in control at those speeds. The key development this year was taking the time to write a formula for linearizing the range values from the sharp D12 IR range finders. With exact distances I could then develop trig formulas to calculate the robots angle and distance from the wall, allowing for very accurate aligning and wall following.

The drive system consists of Lynxmotion 12V gearmotors connected to inline roller blading wheels, which provide amazing grip, especially when angled as we have done on this robot. The chassis is made of red tinted acrylic, which I use as much because it looks cool as because of it's strength and light weight.

All of the robots electronics are housed on one central circuit board which I designed and had manufactured. This includes the central processor, a ZBasic ZX-24a from Elba Corp. This processor was a easy choice for it's speed and capabilities, combined with it's simplicity and small footprint. The board also contains a Motor Mind C for controlling the motors and a PAK-X co-processor for additional Analog inputs.

The robot navigates with 6 Sharp GP2D12 IR range finders, and 2 similar but longer range IR range finders. The robot has side looking sensors on the front and back of each side for calculating the robots angle and distance from the wall. It also has D12's facing sideways but angled forward 30 degrees to provide some foresight on when the mazes wall will end. The longer range sensors look straight forward to see walls in front of the robot.

The robot has two types of sensors for finding the flame. It has one UV-Tron sensor so it can detect a candle in a room without ever entering it. It also has a Devatech Thermal array for homing in on the candle once it knows what rooms it's in.

Hoping to add more about how the code works soon,


04-15-2008, 03:22 PM
>> won the world champion prize

Insanely cool! Congrats!

MISHAP is crazy fast! I'm stunned by how fast it's navigating.

Did it compute the optimal path for the return home from its trip out?

Again - GRATS!!!

04-16-2008, 02:31 AM
I love the acronym. Very clever!

04-17-2008, 02:56 PM
Congratulations. That bot is real fast. I am impressed. Are you doing any sort of speed control/PID loop on the motors? Or just using the sharp to stay in the middle of the hallway?

I am interested in what formula and constants you finally got to linearize the Sharp outputs. I have been working on the same for my GP2D12 sensors.

04-17-2008, 03:02 PM
That is a really slick design Shrimpy! I got you entered in this contest round:)

04-17-2008, 09:43 PM
The project looks great, by far the best fire fighting robot I have seen. Since the floor plan is available from the contest website are you using the dimension in your program at all? You said it is basically a matter of speed (I agree with that). All of the other videos that i have seen show very slow robots. I was just wondering if the floor plan has any bearing on your robots performance, could it do that good in another house? I am working on one now with some friends from college, andI was toying with the idea of throwing a map of the house into the main program. Anyway the project looks great. I would be happy if ours did half as good as yours.

04-18-2008, 11:41 AM
The navigation code is essentially just a bunch of subroutines in a linear program that walk the robot through the maze. For example the robot can follow a wall until some trigger (such as the wall it is following disappearing) brings it out of that routine. It then preforms a right arc until it re-acquires a new wall and then follows that wall until some new trigger. In this way the robot doesn't really use the dimensions of the maze, but it does take advantage of the knowledge of the overall layout. The robot doesn't use any encoders but the range sensors give it a good idea where it is in the maze.

The linearization is a pretty normal procedure (I think). Using a table of Distance and Range values, you can linearize the data by reshaping the x axis with the formula "Linearized = 1/(d+k)" where d is the distance used for that reading and k is the constant of linearization. I've found that the k needed to get this line as linear as possible varies considerably from sensor to sensor, but play with k until your data is as linear as possible (start around 1.3). You can then solve for the slope (m) and the y intercept (b) of this line. Your final linearization formula is as simple as "Actual Range = (1/(m*V+b))-k" where V is the raw voltage reading of the sensor. Here (http://www.mishap.jcf129.com/D12.zip) is the excel spreadsheet I use for this process, enter in your data into the first two columns and and then tweak the constant of linearization until the RMS (basically the average error) is as small as possible, excel does the rest.

04-18-2008, 01:00 PM
Hahaha what a great name! Congrats on a fantastic robot!

What did you use for the metal bumpers surrounding it? Those look really useful.

04-18-2008, 08:47 PM
The metal strips are hardware used to attach carrier bags and stuff to bikes,
If you have friends (who have friends) who work at a bike repair shop you should be able to track some of it down, it's nice and lightweight, strong, and easy to work with.

05-01-2008, 11:08 PM
I know this thread died a week ago, but I thought this might be interesting information for anyone using the Sharp IR sensors.

Acroname, a while back, put up a good article on linearizing these sensors:

They also had a spreadsheet, with nice graphs and all, but I can no longer find it on their site, so I attached a copy I saved a while back to this post.


05-02-2008, 09:08 AM
Thanks Mike! Care to put this up in our downloads section (http://forums.trossenrobotics.com/downloads.php)?

05-02-2008, 11:15 AM
Love this bot! You know, I just started laughing when I heard the fan kick on because I recognized the sound immediately. Those fans are crazy strong and I thought, "Well, these guys aren't messing around." LOL

05-02-2008, 02:08 PM
Yeah I've had some trouble with fans being underpowered in the past but the moment I saw the current draw on these motors I was sold. Their powerful to the point that it doesn't matter which way you polarize it because the suction can put the candle out, although when you hook one into the robot your pretty much consigning the voltage regulators to a slow death by roasting.

05-02-2008, 03:59 PM
We ran ours all day long with the banebots controllers. I don't know if that helps any.

07-07-2008, 08:04 AM

This is like the coolest robot I have seen yet! I love it! Did you originally start out with the Stinger Robot Kit? Anyway, awesome job! You should be really proud of yoruself!


07-07-2008, 11:02 AM

This is like the coolest robot I have seen yet! I love it! Did you originally start out with the Stinger Robot Kit? Anyway, awesome job! You should be really proud of yoruself!


No - it's a scratch-built platform. But there's no reason this couldn't be done with the Stinger - although the Stinger might have trouble keeping up with the grip on those rollerblade wheels and the respose of that omnidirectional wheel in front.