PDA

View Full Version : [Contest Entry] Firefighting Robonova



kemsulli
08-20-2007, 01:16 AM
The first goal I had for my Robonova-1, dubbed Big Foot, was to compete in the walking division of the Trinity College Home Robot Firefighting Contest: in this contest, the robots know the layout of a small "house", and have to autonmously find a candle and extinguish it. To get my RN ready, I made serval hardware mods. The first was to add a 400 Mhz Gumstix computer running microLinux and a Robostix microcontroller to the front, under the chest plate. Next, I added four Sharp IR range sensor, pointing left, right, front and back. Some aluminum brackets hold the left, right and front sensors, while some hot melt glue and two slots in the backback hold the rear sensor. I also added a 3-axis accelerameter, and 2-axis gyros in the shoulders. Next, I added an analog servo for a neck, and mounted a CMUCam3 for a head. Finally, I added the grippers from Matt Bauer. I am currently using the stock battery.

The Gumstix is the brains of the operation, performing high-level reasoning and controlling the entire robot. The Gumstix sends individual bytes over serial to the MR-C3024, which then executes the default moves from Hitec (well, not quite default, I tweaked them to compesate for the changed center of gravity, and slowed some down to improve balance). After issuing a command, the Gumstix blocks until the move is completed. The Gumstix also communicates with the CMUCam3 via serial. Communication with the Robostix is via I2C. Code on the MR-C3024 is in RoboBasic, while the Gumstix, Robostix, and CMUCam3 are all programmed in C. The accelerometer is connected to the MR-C3024. The Sharp IRs and the camera are connected to the Robostix.

As for communication, a friend and I wrote a Linux driver to handle I2C communication between the Gumstix and Robostix, so now the code can operate on file handles (pointing to say, /dev/robostix). All the gory details of master/slave and send/receive are in the kernel driver. Communication with the MR-C3024 is via standard serial. On the Gumstix, I use standard file I/O, and use ERX and ETX on the MR-C3024. I send a single byte which is then mapped to the appropriate action; a single byte was chosen to reduce latency. Communication between the Gumstix and CMUCam was slightly more difficult since the Robostix only exposes one serial port from the Gumstix. So, I wrote some bridge code for the Robobstix that performs file I/O on the Robstix serial port, and then transfers information on the I2C bus to the Gumstix.

In the Trinity contest, I found that carthwheels were the most effective method of locomotion, both in terms of speed and stability. Big Foot drew large crowds and lots of interest due to its ability to recover from falls and the cartwheels. Of the seven robots in the walking division, Big Foot finished first.

Future work will focus on software, particularly added localization ability (maybe using occupancy grids and a Monte Carlo approach). Also, I want to add path planning and partial order planning for determining move sequences to achieve a given pose.

Photos: http://cs.gmu.edu/~ksulliv/robonova
Viedos: http://www.youtube.com/watch?v=dKbBnltDHm4
Trinity Results: http://www.trincoll.edu/events/robot/Prizes/default.asp

Complete Big Foot
http://cs.gmu.edu/~ksulliv/robonova/pictures/picture-1.jpg


Gumstix/Robostix Combination
http://cs.gmu.edu/~ksulliv/robonova/pictures/picture-2.jpg


Neck Servo, Accolemeter, and Gyro
http://cs.gmu.edu/~ksulliv/robonova/pictures/picture-3.jpg

Side facing Sharp IR Sensor
http://cs.gmu.edu/~ksulliv/robonova/pictures/picture-4.jpg


Back facing Sharp IR Sensor
http://cs.gmu.edu/~ksulliv/robonova/pictures/picture-5.jpg


Front facing Sharp IR Sensor
http://cs.gmu.edu/~ksulliv/robonova/pictures/picture-6.jpg

Vaughn
08-20-2007, 03:29 PM
I love robonova and wish I could play with one. Can't wait to read your entry tonight.

Vaughn

Alex
08-28-2007, 03:44 PM
Incredible Kemsulli!! Thanks for the submission:)