April 1998:

April was our most productive month. Needless to say, the competition coming up was motivation to get us working faster. The OS was completed and ran great (Thanks to our Comp-Sci majors) There were, of course, a few bugs that needed to be fixed and there is no end to optimization. We got the cards built and working (for the most part). One card used relays which caused too much interference on the bus. So we rebuilt the card using power transistors. That had problems of it's own, but worked enough to get Marvin Jr. moving. The sensors worked great, except the card would just shut off from time to time. Our best guess was a loose solder connection, but we never had time to locate it. It worked great while it was operating.
On the 16th Muff and Calan pulled an all-nighter to work on it and get it flawless. We found that the motor card would reset for some reason very quickly after we wrote to it. Our two best ideas would be either interference on the bus or propagation delays. Either way, we got it to work by puting a delay after the motor card was written to so that the motors would be on most of the time. This was a quick fix using software to compensate for hardware, and we don't like doing this but we had to for the deadline. We got Marvin to move ahead two spaces, but we had not written the code to track a line yet. Marvin first tracked a line the next morning, but had a probeln with the motors. They were not giving enough torque. We ended up going to the competition that day, with the robot still not completely coded. We wrote code in the car on the way up. When we got there, we tested the code and it worked wonderfully. A few changes were made to the hardware, (moved sensors around, added a few button sensors, basically tweaking everything.) We oiled the wheel assemblies. New problem: now they were too fast to read the lines. That's ok, we just put a pause in after every space forward. It worked great, until...
MARVIN STOPPED WORKING
for no apparent reason. We could not get it to read or write, to anything. Calan pulled his second all-nighter in a row and Muff and Havoc fell asleep on the floor with nothing to test their new software on. Finally as the sun came up, Daddoo forced Calan to go to bed for a few hours. With great resistance, they went to the hotel and we all took a nap for a few hours.
We woke up the next morning, hoping to get the thing working even enough to move. Calan worked as fast as he could, and for some reason it becan to work again. (no one knows why it failed) Drmrboy soldered up the backup motor card that was going to be used to raise the tray up to dump the balls in the bin while Havoc and Muff diligently coded the program for the arena. Suddenly... (oh no) the motor card failed on bit 3. This means that one wheel would short out when it tried to back up and would go forward when we tried to stop it. Calan quickly realized that the way Havoc and Muff had coded the software, bit 7 would work in place of bit 3. So he changed the card to work on bit 7 instead of bit 3.

Round one:
We placed the robot in the arena and prayed. The sensor to tell the TI92 that it was time to go was not in place yet, so Havoc reprogrammed the TI92 on the fly to start after a time instead of waiting for sensor input. (Great thinking, and that is why we used a TI92. So we could reprogram it very quickly...) We pushed the button after the hands-off period (5 point penalty) and waited for the clock to count down. It counted down, reached 0, then began the countdown for the round. 10 seconds passed and nothing happened. We checked the TI92, and it had crashed. Havoc had just compiled a new version of the OS that supported dumping the balls, and it had failed. (this is why you test your software first... No blame to Havoc, that just was a result of NO TIME.) Our robot did not move, but that was alright because no one else's did either. :)
The next round, we did move. We picked up several balls, but never made it to the bin to dump them off. Still, that was better than the other robot and we made it to the next round.
The next round was good, but bad. The robot made it out of the box right on time. However, our sensor card failed (remember that I mentioned that earlier) and we plowed into the wall. We did get a few balls before we hit, but now Marvin was running his motors at full against the wall. They just sat there. With all the amperage those motors were pulling just sitting there, our transistors on our motor card heated up and unsoldered themselves. They fell on some hot glue and made quite a mess. We stil won that round because the other robot never moved.
We were now in the final match, only because we had used the TI92 which made reprogramming very easy and quick. Daddoo and Calan were arguing as the time grew close for the match to begin whether or not we needed to reprogram the way it was operating. The sensor card was not reliable, so Calan wanted to run it off of timing instead of the optical grid. There was no way we were going to get balls in the bin, because Daddoo had not let Calan rewire the tray so that it would lift up when they got to the bin. Daddoo had a point though, at least now the robot was moving and we needed it to at least get out of it's square. After convincing Daddoo that the whole design of using the TI92 was so that it could be reprogrammed on the fly, Havoc punched in the new code. Calan pluged the TI92 into the robot, and noticed an error in the code. He quickly tried to fix it, but since he is stupid, he erased the user input file instead of fix it. (Oops.) He frantically tried to rewrite it, and got a code written just in time. The robot moved into the arena right on time, but Calan had accidently put an extra space in the user input file, which offset the whole thing. Every command after that did not work, and Marvin again crashed into the wall. Still, this was the final and we got second place. :)
We all learned a lot from this robot, even though the external hardware was not running at 100%. We remember that this was our first "practice" robot and the prototype. We are convinced that our next robot that will compete will absolutely rock the competition, simply because of the way we can reprogram it on the fly and because of the expandibility of our system. Not even the host college's robot will stand a chance against the TI92 robot.

Back to main page

This page hosted by
Get your own Free Home Page