Team Seven/Journal
From Maslab 2006
| Maslab teams |
|---|
| Team 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 15 |
| Team Seven's Journal · Paper |
CLEAN UP DUTIES:
1/15 **Team 7**
1/30
PM: **Team 7**
2/4 **All Teams **
Contents |
Week 1
Getting started.
1/9/2006
We got our tub with most of the parts we will be using for the robot. We had to solder the orcBoard with all the capacitors, LED's, etc as well as build the pegBot which is the very basic structure of our bot. I set up the CVS repository in my /mit/jaco/maslabcvs2006 folder on Athena so that we can collaborate using CVS. The basic Hello World programs were created and successfully passed the test: we wrote the Eden (this is the name of the computer that will be on the bot) Hello World as well as the orcPad Hello World which actually displayed the message on the LCD panel on the orcBoard. I took a lot of pictures of the sample playfield that was on display in 38-500 so that we have something to work with when testing our code for objecct recognition and color differentiation.
Finally we also wrote a moterTest class that was to see if we could get the motors working using the org.orcboard.orc.* package and we initially thought the bot was too heavy, but realized the batery was actually interfering with the motors so they were not turning at their max speed. With the help of Anders, we got Eclipse and CVS to set the classpath for the maslab.jar file so that it can import from the orcboard.orc package. We simple turned the battery so that it was not touching the motors and it worked just fine. We saw the bot move from one side of the playfield to the other. --Jaco 21:47, 9 January 2006 (EST)
1/10/2006
Today's task was to set up the IR sensor and make our robot stop when it came within 6 inches of hitting an obstacle. Before we could get our robot moving, Miguel and Marcos decided to attach the orc board to the eden and make sure that the battery and the orcpad were also mounted on the pegboard. The IR sensor was also mounted in the front of the robot. At the end of the day the robot was looking pretty good. Working in parallel with the pegbot setup, Jason was busy making the encoders.
The IR sensor was calibrated by measuring the distance to the wall using a yardstick and recording the corresponding output voltage. The data was then fitted using matlab. After Julian played around with the code for a while, we were able to make the robot stop about 6 inches from the wall. Having completed the day's task, we decided to assemble the gyro and then head home.
Tonight we met to discuss some strategy and work on the first checkpoint. Julian finished setting up the code so hopefully things will go smoothly tomorrow in lab. Miguel made some solid models of the different parts and sensors using SolidWorks.
1/11/2006
The goal for today was to get the bot to turn until it saw a red ball and then stop. However, we discovered a more serious problem before we ever got started on this task. Our bot wasn't charging after talking to Finale we got a new power supply and the problem seemed solved so we set out to complete the task. We already had everything mounted and since Julian had already written a red ball recognition code the implementation was relatively straight forward. The only complication we had was that our bot over shot. We determined that this occurred because of the indicator flag we were using wasn't updating fast enough to stop the bot before it made its next turn. We introduced a sleep function and the problem was solved. Unfortunately the power supply problem turned out to not be fixed and soon our bot had cooked its second power supply. We are currently talking with the TAs to see if we can resolve this issue. We took a series of photos to help with tomorrow's bar code reading exercise and we took pictures of red balls placed every 3 inches to see if these photos will be useful for judging distance.
1/12/2006
Today's task was to be able to read the different bar codes on the playing field. Julian and Marcos worked out an algorithm to complete the task and Julian wrote the code to implement the idea and display the barcode pattern on the bot client. The barcode reading works on still images and we were not able to test the code actively on the robot due to our "broken" orcboard. Meanwhile, Jason and Miguel continued to brainstorm on the final designs of our robot and started to build some benchtop experiments to test out different modules of the final design. Thanks to Ed, we got our orcboard back today from the infermary and were told that the problem was the battery. Now we are having trouble with the Eden booting up properly.
1/13/2006
Yesterday our Eden wasn't booting up because we had incorrectly connected the IDE cable to the HDD. Woops. All is better now and we were able to start testing with the actual bot. Today we worked on debugging the code for the barcode recognition and Julian also coded up the Wander and Wall Follow algorithms; we now have two short-range IR sensors, which facilitate obstacle recognition for the Wander and Wall Follow. These two work pretty well, although we should probably test it out a little more. We should really start working on JUnit testing for the code. Today we also got pretty far in terms of the chasis and design for the bot and it's ball acquisition and release mechanisms. We hope to be done with the first functional prototype early next week. Some of the cool features might not be finalized, but at least we'll have the general shape of the bot as well as most of the parts in their rightfull place. Coding is beginning to become a big part: we weren't able to finish checkpoint 2 for today, but are very close to it. The code finds red pixels, but we still haven't found the best way for us to actually go towards the ball. More on this over the weekend. --Jaco 21:45, 13 January 2006 (EST)
FYI: doc.imagetutorial.ImageTutorial.java works with HSV while doc.imagetutorial.src.ImageTutorial.java handles RGB values. Knowing this might have saved us a couple hours of debugging time.
1/14/2006
We finally set up a subversion repository and also scavenged some aluminum bars to make better motor mounts. Julian and Marcos worked on the ball tracking code and we 'll probably test it tomorrow in lab. Miguel and Marcos checked out mcmaster to get ideas for our ball acquisition mechanism. Jason continues to work on his idea for manipulating the camera.
Week 2
Scoring a point, building up code and manufacturing the chassis.
1/17/2006
The Design Review Presentation can be found here in PPT format and here in PDF format.
Today we began implementing multiple threads and came up with a small control model for multiple threads. We worked out some more bugs in our general strategy and wrote up the slides for the Design Review tomorrow. We plan on implementing a rotating camera, so we hope to get as much of the chasis and camera stuff working ASAP. Also, we might have to write a new Servo class because we altered the servo (physically altered) but we're still thinking about it because there might be a much simpler way to solve it. I guess we'll see tomorrow. --Jaco 21:29, 17 January 2006 (EST)
1/18/2006
The design review was held today and the teams shared their ideas for grabbing balls and navigating the playing field. Julian kept working on implementing threading and Marcos worked on multiple feature recognition. Jason worked on a small gearbox for the servo that would allow us to rotate the camera 360 degrees without removing the potentiometer. Miguel built the base plate for the chassis and decided he might want to build some sturdier motor mounts.
1/19/2006
Marcos finished his multi-feature vision code and it's working very well. Julian made some good progress with the multithreaded code but it still needs some work. Jason's rotating camera mount prototype works well but will need some fine tuning to take full advantage of the servo's built-in position control. Mock Contest Zero was held today in 26-100 so we headed down with our extremely modified pegbot and tested our "wander & pick up balls" code. Checkpoint 3 was completed; our robot was able to wander and pick up balls, but our drive motors seemed much slower than usual. Hopefully the motors will run better once we mount them on a sturdier chassis. The three IR sensors where checked for proper calibration and we are considering mounting the side sensors at 45 degree angles to minimize blind spots. Miguel decided to build the conveyor mechanism first and then built the chassis around this critical module. A semi-detailed design has been made and construction will hopefully begin tomorrow.
Week 3
More bot building and coding
1/23/2006
Over the weekend we developed the code for the camera's servo (which is geared up so that the servo rotates 180 degrees, while the camera rotates 360 degrees.) Today we worked on building the chassis and trying to get as much hardware done as possible. On the code side, we are working on goal finding/scoring which has proven to be harder than we expected, but we believe to have a good solution that we need to test out. Over and out. --Jaco 10:44, 24 January 2006 (EST)
1/24/2006
Constructrion of the chassis and the conveyor mechanism continues. Hopefully we will be able to wander and lift a ball by the mock contest on thursday. The encoders are finally tested and we find out that something is wrong with the pcb's. The problem is fixed and Marcos begins to work on a velocity controller. Julian works on scoring code and the main control thread.
1/25/2006
The conveyor works but needs more tension so Jason adds a tensioner which works very well. Julian and Maros continue to work on movement and control code. Miguel somehow squeezes the battery and the eden under the conveyor. No time to build a collector bin. Hopefully something can be stuck on for the mock contest.
1/26/2006
A loose set screw caused our robot to run in circles in the mock contest. The problem was fixed afterwards and the wandering/wall follow code was tested. Looks like the bin and the chute are the only mechanical elements that need to be completed.
1/27/2006
Julian's computer finally died today after a series of blue screens. Time for him to make friends with athena. Marcos realizes that we need to lower the camera but there is no space for it. After spending a few hours trying out different ways to squeeze the camera into the belt housing, the belt tension and camera placement problems are solved with a simple quick fix to one of the rollers. Now the belt can lift about 4 balls at a time without any tensioners or ribs. Sweet. The bin and chute should be completed by tomorrow so we can do some serious testing before mock contest 2.
1/28/2006
The bin and the chute are coming allong a bit slower than expected. Julian and Marcos continue to code. We decide to call our robot "Estebi" but can't agree on a team name.
1/29/2006
The ball pickup code is not working properly due to threading issues with the control and vision code. We suspect there is a problem with our garbage collection. If we can't fix the problem we will probably run our basic non-threaded code in Mock contest 2. The bin is finished and the chute is coming together.
Week 4
Crunch time!!
1/30/2006
Mock contest 2 went better than expected. Our robot wall-followed perfectly along the entire course and came back to its starting point, and then got stuck. In the process, we picked up four balls that just happened to be in our path and got second place! The bot could have captured more balls if it had been able to target them properly so we think we have a decent chance of doing well in the contest.
1/31/2006
After realizing we're the only team without a name, we called an emergency team meeting and, after much debate, agreed on "Make 7UP Yours". We then proceeded to ask people to show us their cans. In other news, Miguel and Jason finished attaching the chute and tested the servo-controlled gate. It is now able to drop one ball at a time and score from about 2 feet away. The mechanical part of the robot is mostly complete and now we only need to make the ball counter and do some minor fixes. It seems like everyone has been seeing their vison code take longer than usual every few frames. The staff came up with a fix and things seem to be running much smoother now. After a surprisingly unsketchy Wendy's break, we work late fixing our ball pickup code. Tomorrow is going to be a loooooong day.
2/1/2006
See 2/2/2006
2/2/2006
We've spent the last 30ish hours tweaking and testing our code. After many bugs, both mechanical and in the code, things seem to be have come together. We are having some issues with switching back to ball searching after scoring and timing out of certain behaviors. Some quick fixes were tested before impounding and we're feeling pretty good about our chances. Now for some much needed sleep.
The Contest
We were the last team to go in the contest so when our turn came we knew Team 3's 8 points was the score to beat. Our round started with a HUGE scare as our robot got stuck right after starting. Our battery was very low so we got a new one. After performing emergency surgery on our robot, we were able to get into its gut and change the battery. We put our eden back in, plugged everything back and were ready for another try. The second time, Estebi navigated through the field like never before. He picked up five balls and it looked like it had a shot at taking the gold. Unfortunatley, the field had an area with two goals right next to each other and, when estebi saw them from afar, he recognized enough yellow pixels to think that there was one goal at a short distance. Because of the large distance, Estebi could never align and got stuck in this behavior until the end of the round. Despite this unexpected outcome, we feel that Estebi's show was truly spectacular and gave the winning team a good scare. Our 5 points put us in second place.
Well that's it for us. Thanks for reading our journal. A few words of advice: - Have your robot completely built by the end of the third week so you can spend the last one testing your code. Its tough but well worth it cause every hour counts. - Keep it simple but not too simple that you limit yourself - Good mechanical design will make your code easier to write - Use those IR sensors well - Read journals like this one and look closely at previous years' pictures to get ideas for good designs and mechanisms. See what worked and how you can improve it.
