We are attempting to make a robot which seeks out a candle in a maze and blows out said candle once it is found. The robot is being designed in LEGO pieces with the Handy Board as a controller. Overall, the goal is to create an autonomous vehicle capable of finding and blowing out a candle in a maze. This project will teach us the fundamentals of robotics and autonomous control.


This problem is fairly difficult because the candle is in a random location in the maze. The robot needs to be able to navigate the maze, going to all locations and then locate the candle and blow it out.

The candle has been put out in a few different ways. In the past, fans have been used to blow out the candle. The candle has also been snuffed by a candle snuffer and had water sprayed on it.

The robot will have to use multiple layers of control in order to navigate the maze. This is something that Rodney Brooks describes in his paper. Our robot will have two layers. It will have obstacle avoidance based on bump sensory input. The robot will have a higher level of control which is a wander behavior. Once the candle has been seen, the wander behaviour will be replaced by a "go to candle" behavoir.

Since the robot will not have a vision sensor, it will be unable to do a corridor following behavior like Polly. Instead, the robot will follow corridors based only on bump sensor input.


We decided to make our robot with rear wheel drive. We geared the motors down a signifigant amount based on our testing. Through testing we also determined that adding powered front wheels was a bad idea because when turning they ripped themselves off the robot. This is bad. We wound up using skids in the front instead of wheels.

We added bump sensors to the front of the robot so that the robot can have bump detection. Two bump sensors were used rather than one to allow for sensing left and right bumps. These bump sensors extend beyond the width of of the robot to allow for detection of objects near the sides of the robot to avoid accidental collision.

Instead of using a fan to blow out the candle, we decided that the fans were too weak. We instead designed our robot to run into the candle and decapitating it, causing it to fall on the floor and go out. This also simplifies the code because the robot does not need to know when to turn on and off a fan, it just needs to drive into the candle.

Our robot also has a driver. We designed a chair for him keeping comfort in mind. He has a left and right steering sticks in his hand so that he can control the vehicle. He is the brains of our operation. His chair unfortunately does not have an ejector seat, so if the candle falls into the car, he is toast.

Progress and Performance

Above is a picture of the final robot. The robot extinguishes the candle by running into it and knocking it over.

We also have a movie of our robot in action, getting stuck in a corner and then getting out of it.


Our system performs well at navigating a maze. It is able to get itself out of corners and other such issues which can arise when navigating through a maze. Our system is not wonderful at locating and putting out the candle, however. This is mostly due to the fact that the photosensors are not very good. It is hard to get an accurate reading out of them and they tend not to locate the candle except when very close. The fans were also less-than-adequite at blowing out the candles.

The driver is obviously a a key factor in the success of the navigation of the robot. As mentioned above, the key failures come from the hardware -- specifically the photo sensors and the fan. The key success in the programming comes from the code which detects a corner. A corner is assumed when a bump sequence of left-right-left or right-left-right is detected.

Better fans and better light sensors would make our system more accurate at detecting the candle. If the light sensors were more consistant with each other, we would be able to mount two of them and use the two light sensors to help center on the candle. As it is, the light sensors are not consistant enough with each other to do this.

Future work could be done on mapping the maze and/or better algorithms for maze navigation. As it is right now the robot basically does a random walk through the maze, knowing that eventually it will get to every location in the maze. With a better algorithm this process could be sped up. Further research could be also be done into determining other ways to blow out the candle.