Team Two/Journal
From Maslab 2006
| Maslab teams |
|---|
| Team 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 15 |
| Team Two's Journal · Paper |
Contents |
January 9
FIRST DAY OF MASLAB! Things went pretty smoothly. We assembled our pegboard and successfully printed "Hello World" on the LCD screen of our orcpad. At the end of the day, we ran into a problem in which we were unable to ssh our orcboard using the Athena computer. Thankfully this happened after we had already finished, so it wasn't a huge problem at the moment. Hopefully this won't happen in the future. Back at EC, Ben Bloom Java Guru, gave the rest of our team a 2 hour synopsis on Java. We learned about: declarations, arrays, boolean operators, special forms (if, for, while, do while, switch), method declarations, inheritance and interfaces. The take home message from bbjg is: java = paranoia. Keep everything modular.
January 10
Today's goal was to use the IR sensor to get our pegbot to stop 6in away from an object in front of it. Dennis, Iris and Ben worked on fastening the computer, orcpad/board, camera, and battery onto the pegboard; while, Mike wrote code for operating the motors and ir-sensor. Nuts, bolts, and tape were the primary materials used for fastening our components. At first our ir-sensor was not detecting proximity from objects correctly. We found that the problem was bad wire connections. After solving that problem we tested the pegbot on the ground. We had difficulty getting the motors to go both forward and backward. At first, the motors would only turn backward. This happened as a result of incorrect polarity. We then programmed our robot to go if the ir-sensor was == 0 || >.5 (ie pegbot 6 inches from an obstruction.) Since, it was our day to clean and we had some time to kill, we decided to also program our robot to back up to ir-sensor == .55 then rotate backwards for 2 seconds everytime the peg-bot came within 6 inches of an obstacle. Last, but not least, our team has a name. Team Racing. We even have a mascot...
ps. remember:
using ant: ant upload shutdown computer: sudo shutdown now
January 11
The bot succesfully recognized it's first ball today! We started abstracting our code and making it more modular, which will help with adding sensors and specific behaviors one at a time. Right now we are using a total percentage-wise color image filtering algorithm. Tomorrow we'd like to experiment with other methods. Near the end, however, we noticed some problems with our subversion repository! Hopefully we'll get that fixed tomorrow. We met for dinner tonight and talked about ball catching options for our final design, and I think we've settled on one. Mike is going to be in Washington DC for two days, which means coding might be a tad more difficult, but we will persevere!. Go Team Go!!!
January 12
Today was tough. Our goal today was to make our pegbot capable of detecting a barcode. The barcodes are green and black, and they contain 5 bits of information. Our plan of action was to scan the screen from top to bottom, pixel by pixel, 'til the first green or black pixel was detected. Then a box would be expanded to the right and down of the first pixel, surrounding only the region which has black/green. The dimensions of the box would be recorded. Next, the screen would resume being scanned from left to right from the same x position of the first green/black pixel detected and from a new y position (heighth of last box), until no more green is detected. A new box would be drawn... and so on. Until 1-5 boxes have been drawn and their dimensions have been saved. Dennis worked on designing the chassis and mechanical concept for our final bot. Go TEEEAAAM RACING.
January 13
Success! Barcode reading works! Not only that, right before lab closed we tried our ball centering algorithm. It was just a very simple centering algorithm using the camera and it worked! In was kind of a dirty way to go about it, Ben is going to clean up the threading over the weekend. Unfortunatly we didn't have time to get checked off for the Checkpoint, but it should only take 5 minutes of work on Tuesday and we'll be ready to be checked off.
January 17
Mike and Ben planned out the code and control scheme for the robot today, in sufficient detail that we're starting to write some classes that will definitly be present in our final code. We're using an Emergent solution in the hopes that keeping everything very simple really will work as well for us as it has for most of nature. We're thinking about using a Queueing system for storing behaviors instead on relying on set of boolean flags. Dennis and Iris worked a LOT over the weekend building the robot...we've got a long way to go, but it's looking really good. They're even staying late again tonight in hopes of getting ready for the checkpoint. Hopefully we'll have most of the robot completed by tomorrow in time for the check point.
January 18
The theme of our contruction of the robot is: PRECISION. The size and position of all the elements of our bot are carefully measured and fabricated by hand. The only intense fabrication machine used thus far has been the vacuum form. The vacuum form at the media lab was used to create the clear plastic wall on the back of our bot. Today we accomplished: creating and fastening the walls of the chute which the balls will move through, cutting and filing the second level, testing and choosing which motor will be used for the brush wheel, fastening the clear wall to the bot with velcro, and attaching the first level to the second level with bolts and nuts. Ben and Mike finished coding all the preliminary code that would be used for wandering, and possessing a red ball. At night Dennis and Iris planned where the orcboard, orcpad, battery, camera, brush wheel, and computer would be positioned on the bot.
January 19
Closer and closer we come to finishing the construction of our bot! Today the final level, level three of our bot was made. We fastened the orc pad and orcboard to level two. We began construction of the brush paddles. Level two was attached to level three. Mike added an aluminum tip to the ramp which the balls will be pushed up and into the bot. The ramp eliminates any unsmooth transition from the ground up the ramp. The few things left to do include: fastening the camera to the bot, finishing construction of the brush paddle mechinism, and fastening the computer to level three.
January 20
Today we completed the Chassis of our Robot. It's looking really nice, we constructed the IR sensors and a lot of aesthetic stuff was completed. We attached the ball ramp and constructed the paddle system. Right now we have a few more hours connecting sensors and the paddle motor to the bot and then we're ready to go. The code is coming along great. We've written a lot of high level stuff but we're missing a lot of low level stuff. Next week when the bot is totally built we'll start to implement a lot of the specific sensor methods and parameters.
January 23
Dennis and Iris returned from Albany with some lego gears and a belt, a drill press, drill bits, a pipe cutter, and a screwdriver. Today we started making brackets for the gear and motor axles. We also lengthened the wires for the long range and short range ir sensors. The wires were previously too short to reach the orcboard. There is some controversy over how to position the paddle wheel motor. Either we will position the motor parallel to the wheel axle, or we will position it perpendicular to the wheel axle. The pro to positioning the motor parallel is that we would then use a belt and gear system which is more reliable and stable then using a purely gears system. The pro to positioning the motor perpendicularly is that the motor and gear system would fit much more nicely in the chassis. Tomorrow we need to make a decision on our motor orientation, cut out a deeper slot in the chassis to fit our paddle wheel, and finish the motor brackets. Ben and Mike worked on the code architecture; they discussed abstraction layers and thread organization.
January 24
Today we tested the bot in lab playing field. Currently we have two sets of code: (1) our old code for the pegbot, (2) our new code for our final bot. We ran the old code on our final robot to see if it would successfully find red balls and move toward them like our pegbot could. The old code did not run as smoothly as we had expected. There were some bugs as far as recognizing red balls when they weren't there, and not effectively moving toward a red ball even though the bot identified one. We are unsure about the source of these bugs. Some attempts to switch the polarity/ports for the motors was tried. We are hoping that our new code will not exhibit the same sort of unanswerable issues. New code for the gyroscope and recognizing yellow goals was added today. The paddle wheel and motor was also finished today! Yay team RACING!
January 25
We decided that the paintbrush paddle wheel would not be as effective as a wooden paddle wheel. As testing showed, the brush paddle wheel promoted trapping of balls against the ground, which caused the paddle wheel to get stuck. Dennis finished constructing the paddle wheel early this morning. I decided now that the robot's name is Norby. This will make it easier to dictate his activities in the wiki. Norby tried his luck in the lab arena this morning with his new wooden appendage. His wooden paddle spun flawlessly. Some problems, however, he encountered, inclucded: balls getting stuck in his container, and becoming confused after he lost sight of the ball. The balls were getting stuck in his container because of the orientation of the paddles on the paddle wheel coupled with the length of the chute holding the balls single file. We discovered that lengthening the chute by half a ball length eleviates the problem. We postulated a few solutions to Norby losing sight of the ball. Either the camera needs to be positioned closer to the ground or the ball obtaining behavior needs to assume that the ball will go in if Norby moves toward it for x amount of time.
January 26
Today was Mock Contest 1! We discovered moments before the contest that whenever our ir sensors were tripped, too many AvoidWallBehavior statements were being put into our behavior queue. We realized that this problem would occur with the FindRedBallBehavior as well. We solved these problems by setting a specific boolean constant to be tripped as soon as a red ball was found or an ir sensor was tripped. This would cause only one AvoidWallBehavior or FindRedBallBehavior to be added to the queue whenever either behavior was tripped. Norby was able to wander and find red balls effectively during the mock contest; however, he was unable to center on and obtain the red balls, nor score goals. Later in the evening we decided that a PD controller would be necessary to help Norby be able to center on balls more effectively.
January 27
Its a coding kind of day. We implemented the PD controller! Woot!
January 28
Ben, Iris, and Dennis worked hard to tweak the AvoidWallBehavior with the newly implemented PD controller in place. For unknown reasons, Norby chooses to spin erratically when trying to slow down during a turn. With much frustration and little success... the group called it a day and decided to resume work tomorrow.
January 29
OMG! Everything we've written for the last two days works!!! Apparently the gyro was not working properly yesterday. After josteling it around today, Norby can successfully avoid walls! When the left short ir sensor is tripped, Norby backs up and spins right, and vice versa. With Norby's new found abilities to turn in a controlled manner; we tested his ball centering capabilities. With much success Norby ate his first red ball today. He went on to eat many many more. There was some panic later in the evening when the team discovered that Norby's camera position seemed much to high for him to detect balls within a 1 ft radius. After much brainstorming, we decided that a customized camera mount might be good enough to improve his range of sight.
January 30
Mock Contest Two!!! Before the contest, Ben, Iris, and Dennis tweaked the code so that Norby would be able to get out of trapezoids. There is now list which stores a history of Norby's behaviors such that if Norby's left ir sensor is tripped, Norby checks to see if his right sensor was tripped only moments earlier. If so, Norby spins 100 degrees. We also changed his degree of turning when any ir sensor is tripped from 30 to 25 degrees. This will promote Norby to wall follow more. This evening Iris and Dennis worked on building a new camera mount, while ben and mike worked on goal scoring code.
January 31
Today's big challenge was figuring out how to eject balls from our robot in order to score goals. We discovered that our paddle wheel almost invariably gets jammed when it rotates in reverse. Mike suggested attaching a wedge to each face of the paddle in order to separate balls as the paddle comes down on them, to prevent it from jamming. We made four large wedges out of metal and attached them to the paddle, and discovered that this idea works.
Februrary 1 and 2 Day Before Impounding
Today's big challenge was to: finish the robot. There were a number of things we had left to consider: (1) calibration, (2) castor problems, (3) balls not removed from goals, (3)
