Team Eleven/Journal
From Maslab 2006
| Maslab teams |
|---|
| Team 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 15 |
| Team Eleven's Journal · Paper |
January 9, 2006
Today we did Stuff. It was great.
We also started discussing the strategies for ball collection that we might want to use.
The "Stuff" we did, of course, was essentially the same as everybody else. The first day of the maslab project does not allow much room for originality - solder this, assemble that, write that incredibly complex program known as "Hello World"... On the whole, it's been fairly interesting. Putting stuff together always makes you feel like you've accomplished something in a way that staring at a computer program for a couple hours does not.
January 10, 2006
Today we got our IR sensor working. We wrote a toy program that drives the robot forward if the IR sensor reads a distance above a settable threshold, and stops it when the sensor reads a distance below that threshold.
We had a few problems with our wheels, but we fixed them mostly by un-wedging the battery from between them and tightening a screw. We had a little scare when the battery fell off of the pegbot, but everything turned out OK, and the battery is taped down now.
January 11, 2006
I realized that I think of the pegbot we're working on as "our robot", even though most of the physical components will be replaced or re-arranged to make our real robot, and I think of them as the same thing. This i s probably because the computer and the code we write for it are the things that define it the most; the rest are just peripheral things.
We've already gotten Checkpoint One taken care of--we have a simple program that turns the robot around until a red ball is near the middle third of the image. Our goal is to make as much progress as possible towards Checkpoint Two (wandering to find balls) today.
January 12, 2006
We've plotted on a physical/mechanical design for our robot - how to pick up balls, size, stuff, blah. We've pretty much settled on a horizontally spinning cylindrical ball collector thing that will enable us to just run over balls, and will make it easy to keep the ball trapped inside. It's a method that appears to have been used with some success before. Advantages of this are simplicity - the collector can be constantly running, we don't have to worry about when and where exactly the ball is. Dropping of the balls involves just reversing the motor running the cylinder... That's the theory so far, anyhow. We've looked a little bit at materials and so on for the collection mechanism. We've also started building the prototype of the final bot, aka KludgeBotII. Unfortunately, all the shops closed up before we finished, so we had to reassemble KludgeBotI so that we could work on Checkpoint 2.
Nelson has continued being more clever than the rest of us at programming by actually working on today's barcode recognition check-off, which we got done after a bit of debugging.
So...We've pretty much finished most the parts for the chasse of LessKludgyBot2, which will hopefully have a similar design to our final robot - Although our final robot will hopefully be slicker and nicer and stuff. :) We are still hoping to maybe get a robot functional for checkpoint two before we leave lab today. Mystery hunt, and all, you know. :)
The big problem right now is the robot getting physically stuck at odd corners -- we will eventually look at current from the motors to make our un-sticking mechanism smarter -- and with the robot not having good behavior once it has found a ball and started moving toward it. Also, we were occasionally crashing the camera feed and so running off of the same camera image but still running the motors and IR sensors.
January 13, 2006
Mystery hunt is shiny! Did you know that Today is Friday the Thirteenth? spooooky!
January 14, 2006
Mystery hunt is still shiny! ...wait, what's this maslab thing again?
January 15, 2006
Mystery hunt made me sleep deprived... me no want thinky thinky *thunk* ...
January 16, 2006
Back at lab again. Wow...it's empty.... dobedobedo....
Oh look, it's slightly less empty. Today was a bit of a slow start, but we've gotten some things done. We've constructed more of KludgeBotII's body, including much of the collection mechanism and some of the frame. Currently, we're stalled on different labs being closed and the scroll saw in the MASLab lab being broken. We got some bump sensors put together (from old Nintendo Controlers, so there is now extra mad power on the robot). The sensors are pretty sensitive. We're going to maybe make their area bigger by gluing some curved plastic onto them.
Nelson got the robot to look at current from the wheels, so now we know a bit better when the robot is stuck. We also installed the gyro we'd put together last week. It is very tempermental, and seems to only work correctly when it hasn't registered any rotation. Not Useful. We're still working on debugging this.
Oh, and we got Checkpoint 2 checked off using the code from last Thursday. We improved some of the random-wander and get-destuck code since, so it should work better now.
January 17, 2006
Today there was lecture for the first time since Thursday. It was a bit bizarre because I had already gotten out of the habit of having lecture. Also, the lecture room magically moved due to double-bookings and stuff, which was silly.
We're hoping to have Kludgebot 2 completely built soon (by the end of the day). In the meantime progress is slow - our whole team has been busy with other obligations today and sleep deprivation seems to be the norm. In the words of Nelson (more or less) "In a few weeks it will be term, and then I will be able to sleep".
We need to make a few slides about our progress for the presentation thing tomorrow. ... yeah... That should get done today too... also sleep...
Dude!!! So we finished the botbot and it picks up balls and moves around and lets them go!!! It's very exciting! and that is all.
January 18, 2006
This morning was the design review. User:Kaia/Design Review notes has some notes up about other teams' designs; our design didn't seem to go over so poorly. The goals for today include getting Checkpoint Three done (picking up a ball and driving it to a mousehole) and starting to flesh out more of the code. We'll start the final incarnation of the bot after we've had a chance to see how this design works out; I'm sure we'll make some changes.
Later (17 o'clock): hm. Our battery was mysteriosuly discharged, so we've let it spend a while connected to the Special Doesn't Destroy the Power Supply charger and sat around talking about the overall plan for the code for the robot. We now have notes and things. No code yet, but it should make the implementation much cleaner.
Much later: After a serious fliration with scrapping this "Java" thing and using Kawa/Scheme, we buckled down and started to implement code. We didn't get the Checkpoint done today; we hope to get it checked off during the mock contest.
January 19, 2006
So, we didn't get Checkpoint Three finished. We did make a number of hardware tweaks to the robot, and "participate" in Mock Contest Zero. Our participation was fairly typical of most of the teams, in that it consisted of having the bot roll around and take lots and lots of pictures. (Our participation was atypical in that it involved some prolonged painful wrangling with wireless and X and other things, but I digress.) We'll definitely have to change our image thresholds, as colors in the 26-100 lighting are very different. Sometimes we thought blue lines were red, or red balls were yellow or white. Also, the balls are distressingly shiny and prone to looking like two colored blobs separated by a very white blob in the middle. This may have to be fixed with algorithmic tweaking rather than simple threshold tweaking; we should know better whenever we get around to determining what the 26-100 thresholds ought to be.
Later, we took a break to go to the mandatory-but-fun ITA Software dinner.
Then, we all piled back to Random Hall for a coding marathon. Updates to ensue.
January 20, 2006
So, Nelson is in California. Luckily, last night he gave riv and kaia (and a sleeping andrea) a braindump on the code he's written. So, theoretically, we can write code for our robot anyway!
I say theoretically because tabbott pointed out today that our robot's body had some problems. Namely, that the way we were keeping the battery strapped down by compressing it with the next level that had the computer was bad, and that the way we put the computer directly onto the board meant that the spacers weren't working. In fact, they were actively being bad by sticking in bad places and physically bending the board they were supposed to be supporting. At this point, kaia and andrea were both elsewhere as well (hopefully they'll be back soon?) so I put together a less-bad version. Now I just need to reconnect everything and see if it still works.
hmm...so I wonder how/when our Journal layout got shinier...huh... Anyhow...The robot is hopefully happier, and we are theoretically writing code. Kaia still hasn't shown up, but I finally did after finally getting back from my other event (grumble mutter doom). So...code...yeah...As you can see, I'm currently punting by writing this instead.
January 23, 2006
Nelson is back! Our code is sort of broken. But Nelson fixed it! Now we just need to get things like being smart about goals working properly.
We're putting together optical encoders, as well.
January 24, 2006
We've been poking at more code today. We also need to figure out strategies for approaching the goals as accurately as possible and for exploring new areas. GetRedBall is mostly working.
We just finished installing optical encoders, which was fun. We hope to use them mostly for calibration--as a (hopefully) more reliable way to tell how far we've gone than setting the motor at a particular voltage for a particular time. We haven't actually looked at the data from them yet, though, and it sounds like a lot of other teams are having problems with their encoders. Instead of the higher-resolution version with lots of black and white stripes, we're using the lower-resolution version--maybe that will help to some extent.
Goals before the mock contest:
- Be able to score points
- We can recognize goals now, so this shouldn't be so hard
- We just need to write line-up-with-the-goal code
- Improve wandering code and ball-finding code
- Eventually (maybe later), including figuring out what are new good areas to explore
- Pull out 26-100 color paramaters from the sample images we took the other week
- Figure out and writing the macro-strategy
- We aren't going to bother with the powerball for Thursday, I think, but we still need appropriate ways of dealing with multiple balls
- Test the stuffing out of the robot, improving code as we go
January 25, 2006
Lots of code-writing and debugging. Our state machine framework and most associated code is pretty much debugged, which is shiny, and we figured out which motors are connected on which ports, so that spinRight actually spins to the right. Andrea finished and did a lot of debugging on a pretty simple but so far fairly effective Wander behavior that gets us more or less around most boards.
January 26, 2006
There was a Mock Contest One today. Exciting! After many false starts (involving sadness with the OrcPad, buggy startup code, and even a wheel falling off!), we let our robot drive around with a set of simple and moderately complex behaviors that Nelson chained together last night, only to realize that the ball-seeking code didn't have a way to deal with getting stuck or hitting a wall in the process. Once the practice course comes back, we can see if my quick fix works. We should set up things like keeping track of how many balls we think we have, work on recognizing corners (hopefully via blue line discontinuities), and make a scoring behavior that actually works. Physical things to make sure we fix include adding some sort of rails around the collection basin to keep the balls orderly and making a way to fix the OrcPad onto the robot (we hadn't initially realized that we were required to have it on the robot in the final design). There may be additional issues with our collection basin, but hopefully they won't be too hard to fix with some duct tape or something.
January 27, 2006
Today we worked on fixing code we worked on previously, properly placing the camera fixedly on the robot, and figured out how to successfully graduate. Really, we haven't done all that much exciting. The general concensus is "I think it's time for the week to be over". sigh.
January 29, 2006
There's a Mock Contest 2 tomorrow. This is the first day we've actually come into lab on a weekend to work on code. Nelson and I (riv) have been working on refining code to see if we can run some approximation of a collect/score routine. We're not quite happy with the wandering stuff, but it will work until we have blue line/corner recognition working to discover new areas. I added a little routine to GetRedBall that deals with running into a corner while going for a red ball; however, it's not quite as simple because you have to care about whether you're hitting the wall that the goal is on (in which case you can't and shouldn't try to go around it) or hitting something on the way to the goal (in which case you should go around it). We'll see if I can figure out how to outsmart the edge cases.
January 30, 2006
This morning, we stumbled into lab at the early hour of 11am and wrote DestroySomeHumans, which alternates between ball-gathering and scoring. In the mock contest, it took a long time to get out of a small, mostly-enclosed area, but once it got out, it picked up three balls. Its roller got stuck, and it had some problems with thinking it needed to pick up more balls when it could see many but not actually pick up any. In spite of this comical lack of scoring capabilities, we somehow managed to come in third place. Probably because only two other teams had nonzero scores by the end of the contest.
We're currently debugging problems with the botclient, writing wall-following and refining goal approaching, and finishing wall-opening-finding.
January 31, 2006
Our robots camera has gone b0rkz0red (yes, that's a technical term) leaving us very, very sad. Hopefully it will get fixed soon?!? In the meantime, we are stuck being unable to test most code (anything that requires vision), and, realistically, unable to make any progress on the robot as all attention is devoted to evil camera issues of doom. mrr...
So, the camera issues seem mostly fixed now. However our goal docking code is seriously issueful. On the plus side wall following code seems to be pretty much working now. :)
...And now the goal-scoring code seems mostly fixed. I want Nelson to sanity-check it in the morning, but it seems to work. And I think his blue-line-interesting-places code works too. So tomorrow, we'll get to put it all together. It'll be great.
February 1, 2006
Oh man. We totally have a robot. Wall-following works great, we have a decent blue-line-gap finder, and we seem to be doing well on the practice courses in the configurations we've tried so far-- getting to all the areas and successfully depositing balls. We've had a few issues with our roller not always depositing the balls fully through the mouseholes, so we're playing with dropping them and running into them. We're thinking of adding back current sensing to see if we're stuck, since it seems like a good thing to have and we've got time. I'd like to see a few more tests of blue line gap identifying and goal-scoring as well.
The plan right now for current sensing is to average the current values over slices of a second or so, and look for spikes in those averages. This is because switching directions can cause current spikes as well as truly being stuck.
The plan for tomorrow morning is: no more major changes! Only running our code as many times as possible in as many playing field configurations as we can arrange for, debugging any catastrophic failure modes. Maybe decorating too?
February 2, 2006
First, I noticed that we thought it was 2005 in this journal. So I fixed it.
Our robot does stuff. Yay. We spent a few hours sort of panicking about our scoring routine, but I think we managed to fix it sufficiently. I feel like it's not quite as cool or as clever as many robots, but it's fairly solid at driving around, getting balls, and often getting them into the mouseholes. I'm curious to see how we do at the competition. A lot depends on how adversarial the playing field is...
