Team Mood: Drunk & happy
Music: la-la-la-la-la-la, boom-boom-boom, la-la-la
Hey, this is Dumi and this will probably be my last entry in this journal. I just wanted to thank Matt and John for being great lab partners; it was fun working with you guys and thanks for raising my morale (or at least trying :)) when I felt like shooting myself and quitting. Also, I'd like to thank all staff members for putting the effort to organize this class/contest and for being helful and friendly on so many occasions (in particular, Chris, Ed and Finale).
WARNING: PEOPLE THAT SUFFERED FROM A HEART ATTACK, ARE IN THEIR 7TH MONTH OF PREGNANCY, GET UPSET EASILY OR DON'T CARE ABOUT MY PERSONAL OPINIONS SHOULD NOT READ THIS.
I realize there were many teams that deserved the engineering award, including the team that won it; still I was a little disappointed we didn't get it -- I thought our robot was pretty complex and well done, even if it was assembled in the last 2 days; and I thought we had good ideas/implementation for our strategy, image processing and robot control, even if we never managed to put everything together. Oh well, better luck/work next time, I guess.
One last thing: there were 2 teams that I liked in particular, not because of their robots/ideas, but because I got a chance to talk to them and they were fun people that didn't treat me with arrogance. That's teams 4 and 13. If you guys are reading this... Team 4: it was nice chatting with you during the all-nighter we all had, and I'm sorry you had to do everything in 2 people (although it should probably be you who should be sorry for us, since you scored more points :)). Team 13: your arm was really nice, and I'm sorry you didn't win the contest.
Have fun in your spring term, and good luck with your future robotics work (if MASLab wasn't enough for you :)).
Team Mood: Hopeful
Music: Quietly waiting for robot judgment hour
We didn't make any big changes to our robot today, as the staff suggested. We realized we might mess up something important if we did. However, there were a few bugs that we previously knew about but that we never had time to correct. We made minor changes to correct these. We also decided to use the exploring round as an exhibition of the work we did with bar code recognition. We won't be able to use that information in the scoring round though.
Team Mood (update): Tired but Excited! (second update): now we're just tired; very little excitement left.
Music: Auditory hallucinations
Our robot stopped moving suddenly. We dont know what happened. Maybe we fried some motors, which would be really bad. Or maybe it just needs to cool down a little bit. Anyway, Matt and I are too tired now to care about it, so we'll try to figure it out tomorrow from 1pm to 4pm.
This is John. I haven't really updated much, but I am sorta worried now, as Matt and Dumi play stupid math puzzles while our valuable testing time dwindles away. One mechanical issue remains: to seal up any holes inside that the ball could roll off the ramp into. At this point, our scoring code is so bad that we might just leave it the holes and hope for the 1 point we would gain. I think if i went with a simpler design, they may have had more time to test these parts of code. I'm not sure if i want to drink first.. then sleep or sleep and then drink, but memories of this need to be erased. The screw was really a surprise that it worked so well, but at this point i'm not even sure i want to shore up some of the crappy hacks left on the robot, like the spring that starts things on the aquaduct being held with electrical tape. I think every sentence i've said in the last hour has been about testing... and Matt just started to listen. Let's see how things go.
What made me care so much about doing well in this contest? I have been up for 32 hours now, of which I have spent approximately 30 (with some breaks) in lab.
I (Matt) am still somewhat optimistic and hoping to pull something together. We got lucky and have a late draw on the impounding, which means that we can try a couple more test runs on the playing field. I particularly want to make sure we don't bump into anything. We'll make an attempt at dropping balls off, but we'd have to get fairly lucky with our alignment to do it properly. John has made the trapdoor work pretty well. We probably won't get to use the barcode graph, but we will try to test it once when some of the teams clear out of here. We'll still run the exploring round in the contest and maybe publish a bunch of images.
We're almost done assembling the robot. Everything works except the mechanism that's supposed to open the gate on the aqueduct. The software doesnt work that well. The exploring round seems to work ok, although we wish we had more time to try different algorithms; the scoring round code apparently can find balls and collect them (and the robot can lift them up), but we didnt have time to test the code that uses the information from the exploring round, so we're not gonna use it for the contests :(; and our mouse hole aligning code doesnt do a good job either -- we think we'll have to be REALLY lucky to drop balls over the mouse hole. Of course, taking into account that we tested our exploring round only ~10 times, and our scoring round ~5 times, and also the fact that yesterday morning we were still using the peg board robot, there's a big chance our robot will just stop at some point on the playing field, not stop after 3 minutes, or do some other crazy s... stuff.
Usually I'm not a pessimist, but the more time passes, the more I feel like we won't be able to make it. We have every single part we need (hardware and software), but somehow, when we put them together, nothing seems to work well from the beginning to the end. And I don't think we have time to test/fix many things before 5pm, which really sucks; i'm pretty sure we'll do much worse than teams that implemented only a random walk, even though our code is so much more complex and interesting, and probably even worse than teams that don't even try to score points over the mouse hole, even though our paddle wheel, Archemedes screw and aqueduct are again so much more complex and neat ideas (in my opinion).
Anyway, I'm glad I took this class, because it made me realize something: I NEVER WANT TO DEAL WITH ROBOTS AGAIN. Having to constantly deal with mechanical errors that always pop up when you think you're finally done, sucks.
I just woke up Dumi and John. They are on their way here. I bought some super glue earlier today but we're running out again. I might eat the rest to help stay awake.
I got the screw to work! It is pretty reliable and can carry 4 balls on it at once.
I'm in lab and I'm freakin' tired. But things are going really well. Our mechanical systems were going to be a leap of faith. So far, they're working better than we should have expected given the amount of testing we'd done (zero). I'm very carefully trying the motors, stopping higher and higher current thresholds. If it goes too high, they will break stuff (they're high torque motors and will kill the glue and plastic gears that they are attached to). The screw can elevate 4 balls at once. It still has trouble initiating balls, but I have some ideas of how to fix that.
The paddle wheel was having a little more trouble. It keeps breaking the bond to it's gear. It also takes a lot of torque to push the balls up the ramp... more than the superglue bond can handle. We're going to try to think of a different way to secure the gear, but the motor is definitely powerful enough to handle lifting the balls up the ramp. They then roll very nicely into the bottom slot of the screw.
A few more tweaks and we'll be handling multiple balls at a time, capturing and lifting. I'd like to secure some of our supports a little more strongly though. One group recommended epoxy. I'll talk to John when he wakes up, because he's the mechanical guy and he knows a lot more about this stuff than me.
Matt doesn't really know the team members of the teams that are currently in lab. He also doesn't know what exactly would be useful right now. He is feeling a little lonely because all of his friends have left. There is glue drying though, which is somewhat interesting. There is caffeine somewhere too, but too much sugar seems to be having bad effects already. Maybe a diet coke (yuck)?
Dumi and John went home for naps. Matt is still in lab because he hates himself. He's not sure if he will take a nap. His productivity level is in the toilet right now, but going to sleep might result in not waking up very long before impounding. There were new issues with the robot driving straight when we went to the new body. He has fixed it, and it now lines up a ball and drives over it pretty well. When Dumi gets back he should be able to continue testing the scoring round.
Some stuff is also getting glued together. Soon, I might try to test the thresholds of the paddle wheel and screw motors.
Holy crap, it's already 3:45? Matt is in lab making some minor corrections to our robot control. We had to use a couple of creative solutions to stop our archimedes support from scraping the ground, but we think it is ok now. We've shut down the bot to let it cool for a while. Dumi went out for a smoke, and John called to say he's coming and bringing food.
A little earlier, we tried the exploring round code. It wasn't pretty, but it came up with a graph of about half of the playing field that was mostly correct. The only problem was that when it saw gaps between walls it often thought that they were barcodes. This shouldn't be a problem in the actual contest. Matt is correcting an issue with turning, and then we will move on to testing some other stuff. We may return to the exploring round eventually and try to clean things up a little bit, but we are fairly happy with how it worked the last time. It is very accurate with barcodes now (except the gaps in walls). We have quite a lot of trouble with hallways still. That is something we might try to work on.
At some point we will have to test our mechanical systems for picking up and elevating balls. We are putting that off though, which may be a bad idea.
Team Mood: Still concerned, but better than yesterday
Music: Motor wheels spinning
Matt discovered that one of our aluminum plates touches the ground. We think this causes problems with driving straight. We'll try to fix this now. Somehow, we're regressing instead of progressing again. Right now, I feel like getting drunk, cutting my veins with the razor and going to bed. Hopefully, the light of the morning will bring more inspiration...
Our team took a break and should soon get back to work. We assembled our robot (everything except the aqueduct, which John should attach in the morning), and we recalibrated some speeds/thresholds. I'm in 34-500 right now, waiting for Matt to come to start testing stuff. Hopefully, the exploring round will work well, and we'll be able to spend most of the remaining time on the scoring round.
Team Mood: We're f^$&ed.
Music: Desperation cries in our minds.
We continue assembling our robot and we have the code for mouse hole alignment (which means we should have the entire code done). The problem is that we tested our code very little or not at all. But hopefully our robot will be assembled in a few hours, and then we'll have the entire night and morning for testing.
Right now, our mouse hole alignment code should be very conservative: it should not drop the balls unless it's VERY sure it aligned properly to the mouse hole and it got to the wall. I think this is the right thing to do, because we don't want to get 0 points, only because we dropped all our balls -- we still hope to be able to pick up balls -- in the wrong spot. However, if we have enough time to play around with the alignment method, we'll try to relax a few constraints and see what happens.
Anyway... John is assembling the robot right now; Matt was helping him, but had to leave for a little while; and I'm done writing the code, so I guess I'll try to help John assemble the robot, or at least entertain him.
We had a VERY frustrating day today. We sucked at the mock contest; we're not done with the robot yet; we haven't ran a single test for the scoring round yet; we're still not sure about our exploring round (because the wheels on the pegbot stick out and they constantly catch a wall when we try to run tests). Obviously, our morale is not very high right now. However, we still have some hope that we'll be able to finish* stuff before the contest: taking into account that the exploring round worked pretty well yesterday, we hope that it won't take us much time to make it work on our final robot once we have it assembled; also, since the scoring round uses code similar to the exploring round, we hope it won't take us long to debug it.
John went to a lab now to cut the last parts of the robot. Matt is moving everything from the peg board to our final robot and will go to bed after that. I'm eating some chili and then I'll go to bed too and enjoy my weird nightmares 'til morning. Hopefully, we'll resume work before noon, which will give us 30 hours until the D-hour**.
* finish == get something working that would allow us to score at least 1 point to pass checkpoint 2.
** D-hour == Dont-care-anymore-because-we-just-handed-in-our-robot-hour
Team Mood: The best we had in the last 10 days (until the mock contest -- then it turned into the worst we had in 10 days)
Music: Who cares?
Our robot sucked at the mock contest. We're not sure yet if it was because of software bugs or the change in robot's mass (we changed our robot this morning). Anyway, the code for our scoring round should be complete now (except the last step, which is aligning to the goal), so I hope we'll be able to test/debug/fix both rounds tonight and have them working by tomorrow. Meanwhile, on the mechanical side, John continues to work on assembling the robot. We still need to assemble the Archemedes screw and the top container and fix camera/compuer/batery/IR sensors more reliably to the robot.
I ran the exploring round a few more times with bar codes in different places, and it worked pretty well (finally!). Everytime the robot detected 8-9 bar codes (out of 9) and more than half of the edges; the graph of bar codes was always connected (now I realize that I should have tested the exploring round on an unconnected graph; will do this tomorrow). Detecting/preventing wall bumping seems to be working pretty well too. The robot never got stuck into a wall when moving forward, and detected very quickly bumps that happened when turning left/right. It even avoided partial walls: when moving to a barcode, the robot encountered a wall that blocked only the "left half" of it; the robot turned a little to the right, avoided the wall, then corrected its direction to the destination barcode.
The only problem seems to be the speed; I'd really like it to move/turn faster. I think the main reason for the slowdown is waiting 0.5s everytime when we set motor voltages to 0. But I might have a solution for that (we'll test it probably tomorrow after the mock contest) and we might be able to hack something up for the scoring round that will not have to deal with stopping motors at all.
Dumi thinks he finally managed to get the exploring round working. He needs to do more tests, however. Matt and John are at Senior House; they continue assembling the robot. It seems like we'll be able to test our exploring round at tomorrow's mock contest, and hopefully test parts of the scoring round too.
Team Mood: We don't know
Music: Rammstein
John has been working on assembling the robot the entire day. Meanwhile, Matt and Dumi have been working on the exploring round. Unfortunately, we haven't gotten a lot of stuff done so far, because we ran into an unexpected motors behavior: they need to be stopped for a while before changing their direction of spinning, or otherwise there's a big spike in the current. First, we thought our thresholds were low, so we tried to increase them. It didn't work. Then we tried to do some other things, which again didn't work. Finally, after figuring out what was wrong, we decided to wait 400ms before every move/rotation, and it seems to work. However, we spent a lot of time on this, and although we were pumped up at the beginning of the day, our morale is pretty low now, because we're tired, we haven't accomplished much (so far), and we're hungry.
Team Mood: Somewhat sleepy
Music: spinning fans in 34-500
There are 4+ robots/people constantly on the playing field, so we can't test anything. We're going home to write more code and hopefully test/fix everything tomorrow.
Problems started cropping up again in things that we had thought were fully tested and operational. We tried for a while to determine the source of the problem, and then realized that the wooden spacer on one of our front wheels had cracked in half. Unfortunately, since the lab is closed and neither Dumi nor Matt carry tools on their person, we cannot continue our tests until we find either some duct tape or a screwdriver.
After a failed attempt to come to the lab yesterday (due to hangovers and such), Matt and Dumi are finally here. The plan for today is to test/debug/finish the exploring round, glue new encoders to the wheels and test/fix the detection of walls when the robot is moving backwards. John will probably have the final robot built by tonight or tomorrow night.
Team Mood: Pumped!
Music: Eye of the Tiger
We have been working hard today. John is building parts for the final structure. He is almost done with them and will begin assembly soon. Dumi has been working on the exploration round code. Problems keep popping up with barcode recognition. It has been tough. Matt has worked on making small angle turns more accurate and making the robot stop before bumping into walls. That has gone well. He is now going to fix the encoders.
The team is ready to rock today. We don't have a real robot, we can't score any points, and we are all somewhat hung over. Doesn't matter! Dumi and Matt have been on a roll for the past couple of days. John was down yesterday but we think he'll be back up today (when he wakes up).
Matt tested the accuracy of the IR sensors and found that they worked well from 4 to 25 inches. This means if we recess them 4 inches into the robot, we'll have an accurate view of about half a meter in front of it.
Dumi is working on the exploring round code and making some changes. We anticipate being able to navigate around obstacles, so we no longer care if paths between barcodes are partially blocked. Also, we would like to record the approximate ball density around barcodes.
Team Mood: Concerned
Music: Smirnoff
Dumi managed to debug his code that determines the distance/angle to an object on the field using only the frames captured from the camera. We ran a few tests and we got some good results: the error for the distance seems to always be at most 5-10cm, even when the distance is about 1.2 meters (which we think is fine, since we're going to use it only as a rough estimate) and the angle seems to be pretty accurate too. So it seems like we won't need to use a long-range IR sensor (which would take up points, and wouldn't probably work for distances >1m).
Dumi and Matt are having another long night in lab. We have gotten a lot done today. We have set up another IR sensor. We calibrated both sensors much more accurately, and mounted them on the sides of the robot. We are still using a highly upgraded version of the pegbot as we await John's construction.
Dumi is trying to correct his methods that gather angle and distance information on objects in an image. Matt is preparing to do some testing on the robot's wall avoidance and bump recognition. The final bot will have it's wheels inside, so the only time that it should bump would be during turning or travelling backwards. We will have short range IR sensors on the front corners of the bot, and they will be facing forward. This should ensure that we see walls coming when moving forward. It also will allow us to recognize and go around obstacles that are partially blocking our forward motion.
Dumi and Matt are hoping to run a few more tests and then head home. It has been a pretty long day, but fairly productive.
The group has continued to work away at various tasks. We didn't manage to get any information from the mock contest. Matt is working on integrating another short range IR sensor into the robot. Dumi is trying to get distances and angles from a picture. It works pretty well with balls, but there are some problems with barcodes and goals. He is trying to fix that now.
John has cut some of the pieces for the bot, and is currently trying to bend part of the aqueduct channel.
Matt and Dumi came to lab shortly after 12 today. We ran a couple of tests and then made an attempt at the mock contest, but we failed to do anything useful. We are now testing and fixing different things related to robot control and the exploring round algorithm.
John has started manufacturing the parts for the final robot.
Team Mood: Somewhat more Optimistic
Music: Green Day for Dumi; wheels spinning for John and Matt
We finally got our robot to do the Checkpoint #2 task. There is no staff member around to check us off, unfortunately. We are still a little worried that it will have problems if it bumps into walls. We'll try to check off tomorrow morning if there is staff present before the mock contest.
We have finished a lot of code for today. Matt modified the driving class to alert the user when walls were hit. Dumi finished writing a class to explore a new playing field. Hopefully we will be able to check off tonight and then have a chance to test our exploring methods on the mock playing field tomorrow. We'd really like to know what their effectiveness will be on a large field, and we won't get another chance to test on such a field.
John has been giving himself carpal tunnel syndrome by cutting little pieces of brass tubing for spokes for our lifter. He has to grip them really hard, and needed a few hand massages to get through all of it.
Matt wrote some code to deal with bumping into walls. Dumi wrote the (untested) code for the exploring round. John made some progress on building the robot. It seems like we're having a productive day.
Team Mood: no comment
Music: no comment
We failed to check off once again, but we are getting closer. Our robot currently has no wall avoidance. We will work on that tomorrow. Other than that, the ball lineup and attack seems to work, and the wandering is adequate to discover new rooms. If we can just avoid bumping into walls, we should be able to grab a ball.
Progress is finally going forward instead of backward again. Dumi and Matt have been tweaking the strategy code to do a little wandering and then try to drive over a ball. It's looking pretty good so far, and they are going to try it with different arrangements of the ball on the course. For the initial arrangement they tried, it worked well (and the ball was obstructed).
Matt is in lab by himself (again). He has tried to fix a few more bugs. He's going to test the Checkpoint #2 code in a little while. He thinks that it should work at this point, except that the wandering algorithm is not very interesting and might not find new rooms. However, it should be good enough to find an obstructed ball that is actually in the same room.
Then again, we have thought that the Checkpoint #2 code was close for quite a while, but it hasn't happened. It seems like barely a step up from Checkpoint #1, but we have had all kinds of problems with it. It has been very frustrating.
Team Mood: Under the weather
Music: Matt's head banging against the desk
We weren't so productive today. We are still working on Checkpoint #2. We fixed some old bugs that kept popping up, but we are still quite far from the checkpoint. We'll continue tomorrow.
Matt has been in lab working on some of the bugs that were mentioned yesterday. In particular, the robot control class had some new stuff pop up. Moving backwards had also never been tested. It has all been fixed now, and should operate properly. This shouldn't cause us any more problems in the future.
John came briefly to measure a few things. He has gone back home to continue modeling the final design on his fancy computer programs. He plans to have it finished tonight, so that he can begin cutting the materials tomorrow. The rest of the team is hoping that the final structure will be finished by the end of the week.
Dumi has attempted to implement some methods to determine distance and angle from a camera capture. He hasn't tested these methods yet though, so we will not use them as we continue to try for the checkpoint.
Team Mood: Depressed
Music: None
Dumi and Matt have been trying for a while to make the robot chase a red ball, but haven't been very successful. Random bugs popped up in different places for no reason (even in code that we tested before). Anyway, we'll continue working on this tomorrow. We wish we didn't show up to the lab at all today.
Team Mood: Interested
Music: Weird french words spoken by the members of the nearby team
Mike is dropping the class, so we thought we should update our team picture:
John: Oh my God, they've killed Mike!
Matt: You bastards!

The Sh*tBot turned out to be a big failure. It was not much of a surprise to any of us. The aluminum runners didn't work at all. We are glad, however, that we learned our lesson and we will definitely make sure that no part of the final bot touches the ground. Consequently, we did not hit the checkpoint today. We think our code was good enough to work, with a little more testing. However, the state of our machinery didn't allow testing without us getting really angry and wanting to stomp on it.
We are thinking we will probably reassemble the pegbot in order to make the checkpoint. John is away for the weekend but plans to start construction of the final structure next week. He said that he wouldn't even work desk for the whole week, just so that he could focus on the bot and on losing more money in poker. Matt and Dumi are going home after a long week full of many highs and even more lows!
Last test of our Sh*tBot v1.0, then we're going home to burn it. After all, it's Friday night. F*$& work on Friday night!
Dumi is unhappy: he realized that the smaller the resolution of a frame is, the crappier his bar code detection code is, and the larger the resolution is, the slower the entire image processing is. :( So we'll probably stick with the 160 x 120 resolution and hope that somehow we'll be able to detect the bar codes correctly (we dont know yet how we're gonna do it).
Matt is in lab doing some odds and ends. John came earlier and made a pair of small aluminum runners for the front of the robot. Our prototype will not have front wheels, but will slide around on aluminum. Yes, it's crappy. But we already knew that. Hopefully the final will look nothing at all like the prototype.
Dumi hasn't gotten here yet, but as soon as he does, we'll start trying to get the robot to capture a ball. I'm fairly confident that we can get that done by a reasonable hour this afternoon.
Team Mood: Lonely
Music: Silence
It has been another fairly productive day. Dumi has been working on his image processing code some more. Matt got the driving to an acceptable level of accuracy. It doesn't drive pretty though. John compared it to the drunk uncle who crashes your car after drinking too much on the holiday family visit.
John has been trying to finish up the prototype. After a little bit of panic by Dumi and Matt earlier today, it does look like we'll have something that will be able to pick up a ball or two by tomorrow.
Matt, Dumi, and John are all in lab now. Matt has finshed testing the encoders and will manually calibrate them when he has a chance. John is trying to complete the prototype chassis so that we have something to use tomorrow. Dumi is still working on the image processing code.
Matt has arrived in lab! The rest of the team is not here yet. Dumi was awake, but is probably coding at home. John is out shopping... for robot parts... maybe.
Team Mood: A little sad
Music: Get well music for John
My new quick hack for detecting the order of squares on the bar codes didnt work very well (we still have a few bar codes that are left out). But I believe I know a way to fix this, and hopefully will do it by tomorrow. Now Matt and I are going home.
Matt and Dumi are going to head home soon. Matt tested some elements of the robot control that required encoders without first testing that the encoders worked. That was pretty silly. He's going to write some test cases to determine how well the encoders actually work tonight, and then go from there.
Dumi has been working hard at fixing the image processing to pick up barcodes. He is giving it one last quick test and then we'll be finished for the day. All in all it was a fairly productive day. However, the team is getting very concerned about the hardware, which is not in good shape right now. The prototype chassis is almost useless right now. The paddle wheel showed potential, but now doesn't work at all. We'll have to really work hard at it to put something together by the end of the week. Some redesign might be necessary, and we might have to ditch the idea of building a complete prototype robot and just start work on the final.
Matt and Dumi have been testing the image processing on the playing field. We put all kinds of objects in the frame, and it worked pretty well. However, there are still some issues with picking barcodes. Sometimes they mysteriously do not show up. We're hoping it's just a problem with the HSV values that we've set for green and black. On the plus side, the image processor is running at a robust 75 milliseconds per frame.
Matt has finished up with the encoders and is ready to test the robot control class. The robot's services are currently required for further image processing testing, but as soon as it becomes available, Matt will take it out for a spin and see how it works. Rotating was fairly accurate yesterday, with accuracy limited only by the enormous drift on the gyro. Still, it was good for 45 and even 90 degrees (not too good for a 360 spin though). Today we'll test whether it can move a requested distance and then stop.
Dumi found a fix for our image processing that has sped it up to less than one tenth of a second. We are going to test it on the playing field to see how it performs with lots of different objects in the frame. We're really excited, because in the past couple of days we have been somewhat worried about the speed of our processing. When we first tried it, it took 3 seconds to process an image. Yesterday Dumi got it down to 4 tenths, and today it's below one tenth.
John isn't feeling too good today. Dumi and Matt are working alone in lab. So far it has been fairly productive despite a late start. We have finally wired together our encoders. For a while we weren't sure whether we'd end up using them, thinking we might use vision to correct our driving. When we realized how long image processing can take, we decided that we at least needed to be able to drive fast in a straight line, and that the encoders could make sure we would be able to do that.
Using the gyro, the team has discovered that turning less than 90 degrees can be fairly accurate. Matt's next task is to finish putting together the encoder systems and then test whether the robot can drive set distances.
Dumi is currently attempting to discover the angle of view of the camera as precisely as possible. This information will help us with many things, such as lining up objects in the center of the screen (without having to do too many visual corrections) and also finding the distance to objects.
Team Mood: Busy!
Music: Keys are crackling, bringing plenty of new code
Dumi finished optimizing the image processing code. It's still somewhat slow (~0.4 seconds to process a frame on the robot), but it seems to be very robust and does a full analysis of the frame. Now the plan is to fully process every 10th frame (or so), and quick-process the other 9 frames, using the information we get from the fully processed frame. Sounds good in theory, doesnt it? :)
The team has been in lab for quite a while, working away at different things. Dumi has been trying to further optimize his image processing code. He is currently working on sampling the image to reduce the amount of processing necessary. Matt is working on robot control, and John has been busy at work on the mechanical prototype.
Things are going pretty well. Team chemistry has hit a new high, as John has been thoughtful about his past bad behavior and is spreading the love. Without Mike the team is never complete, but most team members have been able to bravely work through his absence.
Team Mood: Somber
Music: A horror movie soundtrack would be appropriate
Dumi and Matt are going home! Dumi thinks that the image processing code will be very functional and somewhat optimized by tomorrow morning. Matt has started working on the robot controller. Tonight our team members will lose some more money to card sharks (like Bert)!
Dumi came to the rescue again. John finished the paddle wheel and is going to finish mounting it today. Hopefully we will be able to transfer everything onto the prototype chassis tomorrow. We can then start more rigorous testing of the properties of our mechanical design.
John and Matt are in lab right now after a long night. John is preparing to construct the paddle wheel for ball collection on our prototype. Matt is trying to figure out what the *#%@^ is wrong with the robot computer/camera everything. He's worried that something bad has happened.
Team mood: High spirits
Music: Saws and motors from the Maslab workshop
It has been a frustrating day in the image department. Code that was working yesterday has suddenly stopped working, and we can't really continue until HSV conversion gets fixed. Dumi wrote a converter which should be useful for testing image processing code, but anything that we need to do on the robot while moving won't work because the converter is too slow.
We tried one last time, and we aren't even taking pictures anymore. There seems to be some problem with our camera. Overall a very frustrating day. We'll start over tomorrow.
We are starting cleanup and will leave soon probably.
Dumi wrote a RGB -> HSV conversion function that seems to work (although it's not very fast). He found out that his image processing code is buggy (obviously), but since it's 6pm+ on a Friday night, he feels lazy so he doesnt want to start debugging it now. Maybe he'll do it later tonight (if he's not too wasted) or tomorrow.
The team had a strategy meeting and came up with some ideas for a prototype robot. John is going to start work on building it. It will have a recessed paddle that will push balls into a ground-level storing area. Eventually, the goal is to have a storing area on top of the robot that will be able to easily dump balls down into the goals. We decided that we wanted to avoid using any type of gripper or lifter on the front of the robot because of the accuracy requirements and the amount of time it would take to collect a single ball.
Also, we've talked a bit about our strategy during the exploring round and scoring rounds. We're still not sure what we want to do, but we really like the feedback-based behavior model. We'll do some work and maybe start testing different things when we have a prototype.
Dumi just woke up. It seems like the maslab.jar file hasn't been modified yet so he's angry he can't test his image processing code.
Team Mood: Quiet, with a sprinkle of Thoughtful
Music: John's headphones again
Damn it! Cannot test my code, because of a ClassCastException in maslab.camera.Camera.rgbToHsv(). Hopefully the staff will fix this soon or give me a work around...
I (Dumi) showed up to the lab a few hours ago and added a few more hacks to the Matt's hacky code. We showed a staff member that the robot can find a ball and went home. On our way back, we talked a little bit about what our robot should do in the exploring round.
John has made quite a bit of progress with the prototype. He is building a pair of arms that will sweep balls up a ramp. Matt is still working on chasing a red ball, but he's not that good at it. Dumi has finished a lot of his image processing code and is currently debugging it. Lab was a little bit uneventful today. John is about to leave and Matt is close to giving up for the day.
John and Matt have been hard at work in lab. John has been constructing a prototype base with some sweepers, so that we can test the usefulness of different mechanical systems for grabbing balls. Matt has been working on getting the robot to drive towards red balls. So far, it drives towards them slowly and only if they are directly in front of it.
Dumi is currently at home base (Senior House) writing code for image processing. He is working on locating balls, goals and barcodes in images.
Team Mood: Sleepy
Music: None
Last team member is leaving lab. Tomorrow we'll work on ball recognition and experiment with ultrasound and the gyro. We'll also start getting our robot to drive towards a ball.
Matt and John are still in lab working on various things. We've soldered together an ultrasound sensor for testing. However, we do not think we are likely to use it on the final robot. Also, we are currently finishing assembly on our encoders, so that we can begin testing feedback on robot movement. Matt is coding up some short tests to use for playing around with the different sensors currently on the robot.
We checked out our stuff. I'm happy.
I think we're finally done with this task. I'm still a little pissed off it took us so long (mostly because of that USB port and the inability to hold the bars exactly straight), but I guess I'm mostly happy I'll be able to go home soon and work on image processing... or should I watch more Southpark episodes?
Dumi and Matt took the computer apart and made a bigger space in the box for the USB cables to fit through. John has acquired some sensors to play around with. We have now uploaded the code and will attempt to recognize how many green squares are on a barcode. We'll save the more complicated task of figuring out the order of green and black squares for later.
Matt brought the robot. We have the first version of the program and the robot seems to be running fine, but we cannot test it yet, because one of our USB ports is blocked and we need both of them. :( Hopefully, we'll fix this soon and there's won't be much to debug in the program.
I'm starting working on the bar code recognition. The goal is to finish it before Matt comes. Then we can plug our camera, get everything working and go home. Hopefully, this stuff shouldn't take more than an hour.
Team Mood: Pensive and slightly low energy
Music: Rap overflow from John's headphones
Why not? I know there are signs, but I doubt somebody will complain... people seem too polite here. :)
Anyway, Matt and I finally finished calibrating the IR sensor and we got some decent results. So we're going home now, and we'll resume the work tomorrow. Hopefully I, John and Mike will be as pumped up about it as Matt was today.
John has returned to his desk job, but does not lose sight of the MASLab goal. He is making solid models of the motors, servo, and a possible servo driven rotation device for the IR sensor.
John has also decided to order food... maybe Wing-It or Chicago's. Too bad people in lab can't order out.
John is getting info on our possible motor and servos to evaluate their usefulness
Futaba - S3003 Torq/Spd 4.8V Torq/Spd 6.0V Bearing Size Weight oz. 44/.23 57/.19 Top 1.6 x 0.8 x 1.4 1.30
Couldn't find much other stuff.... units above are probably oz.inches and rpm???
Note: John is a big dork.
The team is currently in stagnation mode. We have been trying to get the IP address out of the computer, but have been unsuccessful. As soon as we have the IP, we'll be able to load up Dumi's code, and hopefully the robot will then perform as specified in the staff's goals for today.
Everyone showed up after a long lunch break. Mike brought Gooseberry's and his laptop. John helped Matt finish the soldering and Dumi is done with the motion code. Should be out of here pretty soon.
Three fourths of Team Five is currently missing. Matt is attempting to solder a short range IR sensor together. He is sad about having to go it alone, but was too pumped up to join the others for coffee.
Team Mood: Equal parts Enthusiasm and Optimism
Music: None, but someone is watching Seinfeld
The team has been hard at work soldering the orcpad and gyro together, continuing work on blue line filtering, and putting together the pegbot and other components. Mike has left lab, which has resulted in a few tears shed by some of the weaker team members. Dumi has gotten the orcpad started up, and the gyro chip is done.
Mike showed up to lab! The rest of the team rejoiced.
Dumi and Matt did some work on the blue line filtering. Matt was rusty at his coding, but Dumi came to the rescue!
John is currently attempting to assemble the small orcpad without a soldering iron. He has not been very successful.