Team Seventeen/Journal
From Maslab 2007
| Maslab teams |
|---|
| Team 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 14 · 15 · 16 · 17 · 18 |
| Team Seventeen’s Journal |
Contents |
Day 3
We forgot about keeping a journal, so here's an update from the past two days:
Day 1 Got the kit, orcpad, orcboard, computer and checked to make sure everything was in the kit. We soldered a bunch of components onto the orcpad, after which Ben left for fencing practice. Melodie was not here because of crew winter training in Florida. Ted and Jason built the pegbot, whicih was basically just a peg board with two motors and a castor, and the computer, orcpad, orcboard, and battery were mounted on top. Ted did a fantastic job of figuring out how to SSH onto the bot computer, and they programmed the bot to say "Hello World!" and move forward.
Major issues: -Staff gave us a broken wireless card. -we had to jury rig the usb device to make the card work. -no power supplies to be seen yet.
Day 2 Not present: Melodie, because she is training in Florida. That's okay, Melodie. We began to play aroud with the IR sensors today. Jason soldered some maleheader onto a cable, and Ben filed down the white plastic thing that plugs into the IR sensor. We hooked it up to the pegbot, and then Jason and Ben had to figure out how to load Java programs onto the 'bot (ted, our expert, had to leave to get machine shop training). Jason and Ben figured that out, but the new program that uses the IR sensor didn't work. Then Ben had to leave for fencing, after which everything went to hell (what does this say about the importance of certain individuals on the team?). We got a power supply, but for some reason the polarity was reversed, so when we plugged it into the 'bot, nothing worked. We thought at the time that maybe that had burned out the orcBoard--no way of knowing yet. Then the jury-rigged USB port died, and then the staff told us we had put the IR sensor cable together wrong.
So, Ted and Jason went to work on fixing all of those problems, and they did a great job. Tomorrow we'll find out if all of our fixes worked (so that we can accomplish yesterday's original goal of making sure we know how to use the IR sensor). Also tomorrow we'll decide on a strategy and a design (sketch and then AutoCAD).
Day 3 (for real)
Melodie is back! Ben, Ted, and Jason went to the airport late last night to pick her up--take care of your team members, guys...it's good for team bonding. Today we went through the process of formulating and planning our implementation of our strategy. We began with an hour-long brainstorm session, and chose to pursue the ideas that best accomplished the goals of ball possession, bringing the balls into the goal area, and putting the balls into the goal. Our initial sketches show that our robot will be based around a funnel shaped device leading into two tubes. The funnel device will help the robot acquire the balls and push them into, by driving into the balls, the tubes. Once the robot accumulates a certain number of balls, and we've arrived at a goal, we'll push the balls into the goal through use of a plunger mounted on a threaded rod. We also decided that we'll use four wheels to maximize the robot's ability to drive in a straight line, with one set of wheels connected to the other through use of a bicycle chain.
The software will be based around a finite state machine that (roughly) has states go-to-ball, go-to-goal, seek goal, seek ball, escape wall, and wander. The finite state machine will run in one thread, while the image processing and bump detection will run in separate threads...NOT!(see later for more about threads)
Tomorrow our goal is to make the first checkpoint. Melodie is working on using CAD to draw up the design (we have sketches that would suffice, but the CAD is much more accurate and will be necessary for the machine work), Jason continues to try to fix the multiple problems we've had with our pegbot, and Ted is working on the software (with Ben). Tomorrow, Ben will also draw up a schedule for us to aim for in the coming month (less than a month, actually).
Hint for people who want to use AutoCAD but don't have it: AutoDesk ([1]) lets people download a free 30-day trial of AutoCAD. To view AutoCAD documents on other computers without AutoCAD, AutoDesk also offers a free download of DWG TrueView. Free stuff is good :-)
That is all.
Day 4
Hmmmm. Ben turned out to be a pretty decent journal-writer. But fear not. In the places where Ben sounds more like a girl, it was (probably) Melodie going back to add some more comments. His manliness is still intact, even as he goes off to go play dress-up in tight, white knickers.
Today, Melodie went to lecture while Ben, Jason, and Ted all went to the lab to get a few more hours of working in before the checkpoint.
4:53 PM: Just got back from Checkpoint 1. All is well except Ted still has to figure out threading (one of the TA's was really helpful, he says), and we still need to get the bot to look around until it finds a red ball, drive up to it, stop, and print something on the screen. It works (minus the threading) when we can connect it to our computer with an ethernet cable, since our wireless card is broken, but Ted wants to get the threading to work, so we'll hang around in lab until we actually legitimately pass the checkpoint. According to staff, we are pretty far ahead of lots of other teams--they like our design a lot (we will upload images of it along with pictures of our first late night of working), though they suggested that instead of having four wheels, we use three: two normal wheels on the center axis of the bot and one castor in the back, with the battery in the back to weight the bot down on the castor. They especially like our ball-capturing and releasing mechanism, though they said we might have problems keeping the balls inside the holding area, so Melodie is working on a solution for that problem Also, Ted has done an awesome job writing code, and over break, Ben planned out the design of our code (very important!), including the FSM. Jason is happily tinkering away with all the electrical stuff. He custom-made 4 bump sensors that have a resistor somehow wired up in them to get a good digital value.
Ben has left for fencing (again!), and Jason and Ted are off to Building 9 to get two old printers that they saw on Reuse, so that hopefully we can recycle some of the parts instead of machining everything(They didn't get them, but we think we'll use Jason's old printer).
Melodie is hungry. Here's a tip for future Maslabers: go grocery shopping before the first day, so that you don't have to spend tons of money on food, because there's no time during the week to go shopping. Melodie will update some more after she works out a few mechanical design problems.
Ted and Ben worked on the code today. Ben started writing a method to find yellow goals. Ted worked for ten hours on getting the pegbot ("Little Ahnold") to find red goals and go toward them, which was the checkpoint today. He did not succeed, however, probably because he had no idea what he was doing with threads. Another tip: if you don't really, really, understand threads thoroughly before MASLab, don't uFhkse them. It's not necessary and there's not much of a reason to use them because the processor has only one core. He has decided to try to start over with a new non-threaded FSM with better modularization.
Day 7 (if you don't count the weekend)
Oops, we forgot to write in the journal again for last Friday and yesterday. So...
Day 5 (Friday 1/12)
Today we again attempted to achieve the most important part of yesterday's checkpoint, which is getting the robot to find and go towards red balls. Ted worked on that, while Ben wrote the isYellow() methods and calibrated the robot's yellow sensor constants according to the images in the Maslab picture archive. Jason built a whole heap of bump sensors. Melodie designed the final robot using AutoCAD. In the evening, after Ben got back from fencing, we tested the robot's red ball finding prowess, but it couldn't do it. Then Ted and Ben and Jason got kicked out of the lab by Val, who apparently wanted to do something other than monitor the 6.002 lab on a Friday night. Ben and Ted are having a problem with the ball-finding: Little Ahnold, our pegbot, turns exactly one too many times, losing the ball from its field of view. It sounds like an easy problem to fix by just messing with the loop, but we are stumped. Ben rejects the hack of turning exactly once the other way for good reason. We don't want emergent behavior from Big Ahnold on game day.
Day 5.33 (Saturday and Sunday are days for working too, Ben...) (Saturday 1/13)
Jason, Melodie, and Ben took the T to Home Depot to get supplies (mostly aluminum pieces) today after morning practice, while Ted continued to sleep. Melodie still needs to find the receipt...
Ted then woke up and Ben and Ted kept working on getting Little Ahnold to find red balls, this time in the form of a Ben's red Christmas card. Jason took apart an old printer, so we could use one of the parts (I forget what it's called, but it's the belt and wheels that zooms the cartridges back and forth), and Melodie took the night off and headed over to Random for Mystery Hunt!
Day 5.67 (Sunday 1/14)
Day of sleep for Ted, day of planning for Melodie, day of debugging for Ben, and day of tinkering for Jason.
Day 6 (Monday 1/15)
Last night, Ben and Ted got extremely close to getting the robot to find red balls. Since it was late, and since Ben is a varsity athlete and therefore needs to keep up his strength for training, he went to bed; Ted, however, stayed up all night and got the robot to find red balls (well done, Theodore), thus proving his suspicion that his peak productivity is between 4 and 7 in the morning. Later in the day we finally got checked off for the first checkpoint (HOO-rah!). Then Jason attached the bump sensors, Ben wrote some code to manage the bump sensors, Ted tinkered with the red ball getting, and Melodie left to celebrate MLK Day (ie the Edgerton machine shop was closed so she couldn't start her construction and therefore fell asleep instead). Ted may have done something else, but Ben doesn't know if he did (since Ben had to go to practice) and the next time Ben saw Ted, Ted had been awake for more than 36 hours and seemed to have lost his ability to form intelligible English sentences ;) That's not true, I was fine! :} I had also implemented simple proportional feedback for the goball() function, which looks awesome.
That was about all for Monday, which all in all was probably our most successful day yet.
Day 7
Ted has gotten the ball-finding to be extremely reliable, and now sits excitedly watching little Ahnold run around in circles pushing balls around. The bump sensors fall off whenever they hit a wall, but Ted is sure that the escape() function that Ben wrote will work admirably when we fix this problem. He is now going to work on finding goals, and still has a few tricks up his voluminous sleeves to get the robot to do his bidding. Jason and Melodie played with big machines today while Ted slept for 15 hours to recover from the night before. Ben, tell them what you did!
Melodie is still working out exactly where all the screws will go and is quickly coming to the conclusion that the world is too complicated when you try to plan things. In all, however, she is very pleased with the final design of Big Ahnold, as it's pretty flexible and easily dismantled (in case she needs to fix something). Even if Big Ahnold is being stubborn and refuses to learn things, he'll at least look really pretty on Game Day.
Day 8
Today Ted implemented goal finding and goal going. Jason machined the robot, Melodie machined the robot, Melodie designed more of the robot. Ben actually did some stuff today: he wrote some code for wall following, but he didn't get a chance to test it because we don't have enough IR sensors. The next things we have to do: finish machining. Putting the thing together should take only a half hour or so tomorrow because it just involves bolting precisely aligned pieces together. Tomorrow Jason and Ted also must buy gears for the wheels. Still not completed: scoring mechanism. We'll get that done soon.
Day ??? (It's Wednesday 01/24)
Well, a lot has happened since the last journal entry. Most notably: the physical construction of the robot is ALMOST COMPLETE!!! Right now in the Freiheitskaempfer's secret lair BIG ARNOLD is taking his final (that is, less than two hours till "completion") shape.
We're probably a bit behind schedule, but we were checked off today for checkpoint three. Tomorrow we will be ready for the first mock contest. The software is in place and hopefully it will work. The most major piece of coding that is untested (and as far as this anonymous journalist knows, it may not be written yet) is the specific ball-launching code for the newly built ball-launching mechanism.
Major items that have happened: Ted and Jason have done a tremendous job of modifying the Arnold's special purpose BIG wheels. The wheels are HUGE and will give big ARNOLD great speed. Actually, in real life, Arnold runs ten miles a day...uh...that might not be the same Arnold...anyway. Other things: Melodie and Jason did a great job building the frame. Ted wrote some splendid goal-finding code. Even Ben has contributed a bit: he wrote some wall-following code, soldered a bump sensor together, and assisted Melodie briefly by screwing part of the chasis together. Great job, team.
Monday 01/29
Ted and Melodie are up trying to figure out how to calculate the angle to the normal that the robot would be at with respect to the goal, and their good friend Chris (who is doing 6.270) is having fun helping them too (mainly because he hates his robot right now and just wants it to die). Ted has an awesome strategy: don't try to eliminate error--all that really matters is that we get the robot to where it needs to get. That makes calculating things a lot easier, and we aren't very dependent on accuracy at all. Melodie's design of the robot is flexible enough where it actually plays up this aspect of Ted's strategy--it's actually best if the robot does not hit the ball head-on, because that's the only time that the ball would bounce off of the compartment divider.
Tuesday 01/30
Today was the last mock contest. We were fortunate enough and the staff was kind enough (and few enough teams showed up) to allow us a total of three (3) trial runs.
The first two trials were unsuccessful. In the first trial, the robot spun in circles nearly continuously, stopping only occasionally to jerk back and forth, only to resume spinning again soon. :O In between the first and the second trials, Ted edited the wandering code such that the robot should continuosly move forward, still allowing the robot to check if it was stuck.
Thus, in the second trial, the robot not only spun in circles, but it sometimes drove straight forward. At one point, the robot rammed into a wall, tried to escape, rammmed into the wall, tried to escape....anon.
Then Ben attempted to hack out a small, temporary, and shamefully cheap solution to get the robot to explore enough of the playing field to perhaps get lucky and find a ball. The solution was to have the robot move in random directions for random lenghts of time when trying to escape. With this code in place, the robot successfully began to explore more of the field, and in fact did identify and move towards a ball. However, we were unable to possess the ball because we do not have a successful mechanism to retain the balls in our carrying compartment. (note: this was after trial run 2.5, after which ben discovered, with Ted's help, that he had accidentally written a closed loop in the new code, which really, REALLY made the robot spin continuosly in circles).
Well, in the approximately 29 hours left until impound, our main activity is to write better wander code (that doesn't include randomization), finish our scoring mechanism (backup plan: [if that doesn't work] we'll just have a hinged flap in front that allows balls in and doesn't allow them out), and test the red ball getting code. We also need to spray paint the robot black (I see a red door...), give it some Red Bull (gives you wings), and have it do five sets of dumbbell flies with 200 lbs in each hand, Arnold's favorite exercise.
Stay tuned for a report on how our last day before the contest goes.
Wednesday 01/31
Last night was the most frazzled night for die Freiheitskaempfer. Ted and Melodie remained in the lab, working hard on Arnold. Jason and Ben left lab for other pursuits (not partying). The hours between ten at night on Tuesday and six in the morning on Wednesday were a blur. However, we can be sure of some events. The robot was disassembled (specifically, the top was broken off of the bottom. To our team's credit, however, we cable tied the two pieces back together), and the computer, OrcBoard, and OrcPad were separated. Ted passed out on the couch and was not to be seen from for ten hours or so.
Jason, Ben, and Melodie were not to be deterred in their efforts to finish Arnold. They trekked to lab and began to: 1) build the goal-scoring mechanism 2) build the ball doors 3) reassemble the top and bottom of the robot. Ted then showed up with food and helped finish the assembly. At the end of the day, we had a robot with a working ball-scoring mechanism, and half-built ball doors.
Die Freiheitskaempfer continued to work through the night in the 6.001 lab, although Ben left because he believes that not sleeping eliminates any productivity one might have. But basically the rest of the thing got built. Jason and Melodie quickly put down all the mechanical rebellions we faced, and Ted worked on the code for about twenty or so hours to refine the functions he had written and improve the reliability. Tomorrow will be interesting.
Thursday 02/01
forty minutes to go, Ted is coding furiously, and we'll see what happens. Time to clean up the tools.
