Team Sixteen/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 Sixteen’s Journal |
Today is Day One January 8, 2007
Currently Sarang is soldering away and inhaling those lovely lead fumes. Andrew is studying the red-finding code from the tutorial, and I am typing today's progress thus far. In lecture today we heard about a few types of sensors, and we decided we should be using at least IR and bump sensors. CHeckpoint 1 is due THursday, so after assembling the pegbot today we will stay after and discuss design features. 3:42 pm
Please remember to crimp Mr. Battery!!
Finished Peggyboard, with code to run around itself. Checkpoint. Java. Sarang and ANdrew know how to code. I'm glad. (Sarang's edit: Andrew knows how to code. I don't. Heck, at least one of us knows.)
18:11p Discussed mechanisms, came up with a good list of ideas. Will choose one tomorrow. Lost good sentences.
21:51 (Sarang) Made my home server sshable from the maslab labs. Hopefully the next dhcp renewal will grant it the same ip. Setup a subversion repo on the said server. Brushed up svn knowledge by reading some of the documentation here.
I am wondering if I should read the line integrals stuff I missed in today's 18.02A lecture that I skipped for maslab before going for recitation tomorrow.
Now that our team has an extra long journal entry, does it look like it is full of clueless freshmen? Well, it is.
Deux. 01/09/07
Implemented IR sensors today. CAbles were all wrong, but somehow one wrong one worked and the other didnt. Fixed them, so both long-range and short-range now work. Also got camera up and running. Ideas thought up for redball stuff and bluee line filtering. Double decked our pegbot. Andrew likes to code. I went to Edgerton hobby today to do training stuff. Andrew loves to code, especially when he doesn't feel like killing himself.
Andrew (Offering crackers): Grub! Sarang: Lilo
Steph: CRIMP THE BATTERY! Andrew & Sarang: We just did. Steph: Oh really? Andrew: Oh yeah, you can tug on it... (tugs)
Wire comes off. Sigh
(Sarang's edit: We swear we did crimp the battery)
17:43 (Sarang) We had to remount our computer on the pegboard because it was in a vertical position and some of the internal wires were coming lose - leading to whiny noises from inside the computer which scared me a lot. They were like the noises overheated power transistors make.
And Then There Were Three - 1.10.07
Today we got the design for our final robot hashed out. (Sarang's edit: We also figured out the best way to draw circles by hand.) Sarang soldered things. Stephanie typed things up. I coded. The usual.
18:30 The header for the wireless card came off the computer's motherboard. We got a staff member to put it back on. When we turned the computer back on...the card graciously filled my face with its sunshine-scented magical black smoke. I told Sarang to turn of the computer. He told me to wait. I asked him to turn off the computer again. He told me to wait until it grabbed an IP address. I asked him if he could smell the rainbows and lucky charms. He could. He turned the computer off. (Sarang: Well, I had no idea why he was asking me to turn it off and I was hesitant because I wanted to shut it down cleanly. I am stupid.)
Now we need a new WiFi card. *Note: NOT our fault* Very frustrating.
As an aside, Beauty and the Geek is an incredible show--but not in the good way. Check it out
Sarang: I also saw people preparing CAD designs and I suddenly realized that I had never really seen that stuff before... It looked a bit like 3DSMax scenes, but that was about it. Hopefully our evaluators tomorrow will be forgiving enough to consider pencil sketches on sort-of-scratch-paper as good enough. And hopefully I will be able to figure CAD out. Sigh.
Heck, what if I have never seen CAD... I am geeky enough to realize that CAD is 3245. Not really, I am not. But I can ask Anand (Team 6) and he will tell me that CAD is 3245. Math majors are awesome. Not because they can change bases, but because if you give them a choice ;-) they will unanimously say that THE anagram of Banach-Tarski is Banach-Tarski Banach-Tarski. [1]
Really, today was somewhat bad. That's why all my attempted humor kinda sucks today. You see that too, don't you?
Quatre Software Quatre Quatre Quatre
BolD!!
^^
\_/ Today, we went skiing in Quebec. Not really, but Andrew will be Friday "thru" MOnday, so me and Sarang ned to step it up and do productive stuff. We will be getting our wireless card in the next "half" hour. (alewine) TOday, alewine and sarang coded.
Today, I cut circles. They were pretty, we all agreed. Our robot will be gold and clear themed, like Beauty and the Beast. But seriously, we had our second checkpoint today and passed, but we didn't actually get to test it since sine cosine the wireless was smokin hott.
Sarang's turn: As promised, we got a new wireless card - thanks a lot staff, especially Val. I don't know what else to write - I am feeling guilty for not doing much today. All credit for coding goes to Andrew, regardless of what Steph says.
Friday the 12th of January
Aujourd'hui nous avons travailles en les mechaniques aspects de le robotte. We drilled lots of holes, mounted the wheels and castor and secured the second story. We had some problems with the wheel axles, since they weren't flush but then they were too flush so that the set screw wouldn't fit in, so we had to unflush it. After that bump, Sarang and I worked pretty efficiently to assemble the non-pegbot real final robot. We discussed how to mount the gate and are in the process of trying to get the servo to work. Also! A girl gave us some really good advice to keep the motor wires in their white pocket holders
SAVEEEEE
(D)
We're tired. It's Friday night, we will be Mystery hunting soon. I'm out. Sarang's in. I'm an ABC.
(Sarang): Today was a busy day - we stayed in the lab for much longer today - it was the longest both of us had ever stayed. Since Andrew-our chief coder is away, the idea is to finish up all the mechanical parts before he comes back so that we can start testing and improving our code.
I sort of punished myself for not backing up Andrew's code yesterday. Checked in the new code into our svn repo today.
I am wondering if it is okay to put in hot glue on the motor headers. The wires keep coming off... I think that should be fine, but Steph disagrees. "What if some of the glue seeps through and blocks the holes on the header?"
Steph and I both agreed that a hand-drill was a better tool to use than the drill press which officially requires clamping and which cannot reach some places. Val didn't seem too happy with our choice but I think that is because the drill press is considered safer, maybe?
For other hand-drill fans who are avid readers of our journal: Thanks for your patronage ;-) Afaik, maslab has 3 hand-drills. 2 of them are really wimpy and can be quite frustrating to use if you are not drilling um.. cardboard. The third one is macho- makes a nice roaring noise and drills well. Go macho!
On a side note, I indulged (literally) into lots of food today!
That's enough for today's entry. Imho, its length sufficiently exhibits our freshmanliness. (Or should I say freshpersonliness, to be politically correct?)
Happy mystery hunting!
Saturday in the lab.
12:30pm-5:00pm
Almost nothing, "" Sarang, but really we did some debuging. I worked a lot-tle on the gate mechanism. Ended up cutting three wooden wheels fitted to the servo (which we almost blew, but luckily didn't plug in when we were just guessing anyhow), then at the very last minute I saw a problem which Sarang had seen all along: The gate doesn't fall by itself unless there is a weight. So next day I want to experiment more with the rod technique, with and without the wheeled servo. Need to notch the front and find a home for the gate end of the rod. Sarang tried reallly hard to debug stuff, I tried to help by saying things I remembered from the Java tutorial.
WIth love, Stephanie J. Chin
Sarang: The gate might just fall, if we can get hinges that are smooth enough. That's why I had asked Val for graphite lubricant or WD-40 or oil or something like that. But attaching a weight might turn out to be a better idea, since that will make it harder for balls to misbehave and open it at undesirable times. Let's see.
Sunday January 14, 2007
The world's an inn; and I her guest.
I eat; I drink; I take my rest.
My hostess, nature,does deny me
Nothing, wherewith she can supply me;
Where, having stayed a while, I pay
Her lavish bills, and go my way.
--Francis Quarles
For the non poetic types: Today was rest day.
OMG the weekend's already over - Monday January 15, 2007
Sarang: Lot's of things happened today - one of our motors stopped working - due to bad connections. In genral, stuff started coming apart. We were advised to tie things up a little bit, possibly with zip-ties and so that's a priority now, before more things stop working.
And yes, I wish to express my complements to Team 11, especially their coders. Their neural networks based findRed seems awesome.
An aside: Bayo from Team 11 showed me the Mac OSX that he was running on his Intel based Toshiba laptop - using grub and darwin. It was pretty cool - and fast too!
Dienstag Januar 16, 2007
Today we were lectured by James McLurkin and it was a really good lecture. We saw robots swarming, and it was really cool to have that kind of technology working right in front of us. When we went back to lab, we requested Darthur to fix our wheel axle for us, which he did and which we are grateful for. Now with a motor and axle working again, alewine and sarang coded.
Sarang: Coded a lot.
Andrew: Triple heat shrunk and solder to gyro cable. Coded a lot.
Steph: finished the gate mechanism. Ditched the wheel idea entirely for the rod idea. Servo hooked up and working.
19:52 (Sarang): More problems. Our computer has started to reboot itself randomly and sometimes goes into a loop and repeatedly reboots itself. There is a chance that this might be an overheating issue, so we will attach a 12V fan tomorrow and see if things improve. We could not do that today because of the lack of proper power connectors (the standard molex types which computer power-supplies have) which are apparently too expensive. I will probably be getting them from cruft.
I personally do not think it is an overheating issue - it looks more like flash/OS corruption to me, but it is always better to check simple things first. And yes, we have also had a blown up fuse today.
In the near future, we plan to work more on our strategy(ies) and also on making our code more efficient and structured. Personally, I am working on improving my coding skills. (Java is not my mother-tongue, so it takes forever for me to write error-free code. Steph's 'Sarang: Coded a lot.' line above should actually read 'Sarang: Only coded for a lot of time and did not help us.')
It has been a while since I have had free food... hmm... Thank you for sponsoring Maslab, ITA.
Midweekday: The Day Formerly Known as Wednesday - 1.17.07
Short and sweet:
1. Gate mechanism functionality was verified
2. HSV colorspace was dropped in favor of RGB -- it's much more reliable and doesn't eat CPU cycles for breakfast (as the conversion from RGB to HSV does)
3. Formal program architecture is finalized -- two data-collecting threads and an FSM arbiter
4. Mounted 12V fan inside computer case; our rebooting problem as gone away--hooray for passive cooling (pause, pause, pause) NOT!
5. Dinner was tasty; I learned a new game: Chopsticks
Today was a very good day. R/1.18.07/
I feel that today was very productive. We finally got checkpoint 1 out of the way, and we had the checkpoint 2 meeting as well. AL/SK worked super efficiently to experimentally collect alignment data. Our peggyBot.nowFinds(yellow_goals) AND red balls!. So our code is well on its way, and even though I thought I would be useless as a mechE/ non-coder after yesterday I can still find things to build. Our next priorty is mounting the camera permanently, and we also need to mount the servo. I also want to finnish the orcBoard's special plastic casing (hinges founded at central machine). We have the rotating behavior implemented; next we should add wandering wall_following behavior after a certain amount o' rotations. Sarang and I have an 18.02A test tomorrow, Andrew will take advantage of the mock contest to calibrate stuff.
I Believe In a Thing Called Love - 19-1-07
Mock contest today. Beforehand, we replaced one of our non-working motors with one of it's high-speed brethren. Not a good idea. Now the motors turn at completely different speeds. We decide we need to get matched motors. OK, let's ditch our other high-torque motor. Halfway through replacing our second high-torque motor with another high-speed one, we decided to stick to high-torque, and end up replacing both motors. Now we having working, matched motors. Horray! Went to 26-100. Got SSH on WinXP working (as well as BotClient). Our alignBot() method was misbehaving--err, it wasn't behaving; that is, it wasn't doing anything at all. Stupid me forgot to ever set the motor speed in the method. Didn't realize until Sarang pointed it out hours later. "Hey Andrew...I just want to check with you, but in this method do we ever actually set the motor speed?" I simply put my head on the desk in defeat. However, we do have properly working image processing and sensor data capturing threads (the former gives a rock-solid 6 frames/second). My personal goal for tomorrow is wall-following and accurate ball and goal alignment. That is all for now.
Good night, and good luck.
Sarang: Yeah, the set motor speed thing was pretty interesting. During the transition fron a single thread to a multiple thread FSM, our code got flumoxxed (well, sort of). It turns out that our ball acquiring code was updating a certain variable for controlling turn speed etc. but the actual left_wheel.set() and right_wheel.set() lines had mysteriously vanished. Interesting.
2006 年1 月20 日 - 土曜日
Today, Andrew got some nice IR wandering code to work. It feels different to imagine that our robot can actually move around and look for balls rather than just drive up to them. Steph worked on our servo mount. She also built a pretty looking case for our orcboard. I got rid of my proportional controller in favour something else that seems to be more efficient. All my calculations for the original one were based on the assumption that motors accelerate uniformly - which is not true at least in our case. We also adjusted some thresholds so that our robot does not consider exposed wood as red.
Other noteworthy achievements include changing motd to display 'Your wish is my command' instead of the standard 'Ubuntu comes with no warranty blahblahblah' stuff and also adding the CLASSPATH= thingy to bash's startup config so that we don't ever get those irritating classpath errors again. And yes, after man -k write, Andrew and I started communicating with each other via write.
Our thanks are due to the maslab staff for getting us WD40 and velcro.
Things on our 'To Do' list: Code merging and integration, testing wandering code, goal aligning, bump sensors, trying to convert part of our code into a daemon, testing, testing and more testing.
That's all for today. Have a nice weekend!
Sayonara,
Sarang
Oh Man, we just had dinner: third Monday of Maslab, thee 22nd
Andrew and Sarang coded all day. That's all I ever write about them because their universe of code looks all the same to me. I finished the servo mount for real this time, and went down to Central to get some nice brass sheet metal. Made the sheet metal into walls, and now that's mounted. Later we will spraypaint the wheels. Soon shall test the code. I don't have anything more to say.
The Tuesday of Thine Heart - 1.23.07
Many things got done today. When I got to the lab, the wheels had been spray painted. The two-tone bronze/copper look is starting to grow on me. I suspect it will look significantly better when we finally take off the blue protective coating from the lexan. Until then, our robot is bronze, copper, and blue.
We also made significant progress on the code. For the first time, our robot wandered the course and retrieved balls. To our great satisfaction, we can hold six balls comfortably; seven balls is a stretch, but doable. We've decided on our mechanism for aligning with the goal and our hope for tomorrow is that we can actually score some goals.
Overall, I'm very glad we decided to keep our design simple; many other teams are at the critical point in which they suddenly realize that their eight-degrees-of-freedom articulating robot arm with vacuum suction and laser guided sight is simply too complex for the amount of time we have. High-fives all around for working frontal lobes and a little bit of forethought.
Miercoles - 1.24.07
Today, for the first time, I could really feel the desperation in the lab--everybody is suiting up for crunch time. Our robot got a makeover: velcro for the battery, computer, and camera; wires were tidied up, and several unnecessary cables were removed from the computer.
For most of the day, I worked on tweaking the wall-following and ball-catching code (we are now using two forward-facing short-range IR sensors in addition to our angled wall-following short-range IR sensors). Right now it's fairly reliable, but new bugs are showing up during each trial run. Hopefully the mock contest will go well--not that we collect all the balls without incident (as this will tell us absolutely nothing about what we need to fix), but that we collect useful information on what we need to improve. Am I preemptively justifying a catastrophic failure? Yes. So what. Admit it, though, the justification sounded good, right?
17:08 - Our OrcPad seems to have died. No one knows why. However, before it died, it did get plugged into one of last year's OrcBoards to see if that OrcBoard was working (as a favor to the staff). We can't remember if it worked in between that and now. We are weary to blame the staff, but it would sure feel good to have someone to blame. I'm continuing to test while Sarang solders another OrcPad.
18:23 - The OrcPad that Sarang just finished soldering doesn't work either. I must admit, I had a sentence in here that contained a few expletives, but decided to remove it in consideration of some of our younger readers--we wouldn't want to ruin those virgin ears of theirs.
18:38 - We just realized that the OrcPad needs to be "programmed" before it will work. None of the staff in the lab right now knows how to do that. We'll cross our fingers and wait until tomorrow.
Waiting Thursday
We are waiting for the mock contest. Supposed to have started at 12:00pm, it is now 1:39pm. But luckily (or unfortunately for team 1, whose orcBoard is broken) for us, we are now second in the team order list. Tis indeed cold in here. Andrew's eating lunch. Sarang is...buying perfume in Kansas City? I really like that team's upside down camera--looks like an eye. THey're all so cute ! ! !
13:43
Our robot looks clean, we just observed. I haven't showered yet. Andrew needs to shower before the BSO concert he says. Sarang needs to shower as well?
13:44
It's almost time. We're up first.
Friday - 1.26.05
Today we scored our first goal...and our second, our third, and our fourth. During the mock contest yesterday, our robot turned and drove into the wall as soon as the round started. A little disappointing, but it's something we can fix. A lot of progress has been made since then. Now our robot can wander, find and capture red balls, and score them. With one week left to work out some of the kinks, we feel pretty comfortable (*knocks on wood*).
Saturday - 1.27.07
Sarang and I worked on a few bugs in the lab today for about an hour and a half, until the DHCP server serving the lab went down (!). At that point, I had to leave in less than an hour, so we called it quits for the day. Monday is our final checkpoint before the competition. Our robot can do everything it's supposed to.
The Final Monday - 1.29.07
We worked on some new code that should help us detect if our robot is stuck. Andrew worked on the code and I helped him test it. The code seems to work. (Fingers crossed.) We also tried to find out if the VIA processor we use supports instruction sets like SSE2 and some others as well - it seems that our image processing could be optimized more if it does.
Stephanie came with a big box of doughnuts and announced "We are three and there are twelve of these, which means four per person." Totally unexpected. Apparently, that was because she had other work on Saturday and did not come and was feeling guilty or whatever. Hmm. I am not complaining.
Tuesday - January 30, 2007
We had a few runs on the mock contest. Andrew had to adjust some thresholds. We also discovered that yesterday's isStuck() had introduced a few bugs, one of them being particularly serious - it would cause our robot to belch out balls after it 'unstuck' itself. We are working on that and some other hopefully minor glitches.
We also epoxied our camera mount and velcroed (or is it velcrowed?) some other stuff.
With some help from Chris, we also got our robot to start from the orcpad.
This entry is noticeably terse, perhaps because Steph and I have a pset due tomorrow morning and we both haven't started working on it yet.
TUESDAY
Sarang only slept 2 hours last day. Me got 5 hours. Neither of us showered. But today, we tested more and wrote some final paper material. Tested more.
Wednesday - The last day of January, 2007
Today was a blur. We had some classpath issues which resulted in all my code tweaks (nearly six hours worth of work) not taking effect. Once I realized the problem, we were golden. Our follow wall routine is MUCH faster now, and we also scan for balls at critical points which could prove to increase efficiency, or could slow us down. No way to know until we see the final playing field. Time for bed.
Thursday - Impounding
Most importantly, PICTURES!
Also, WE ARE DONE. This feels good. Time to goof off for a while.
Friday - Contest Day
Our robot did everything we had programmed it to do. We came second with 12 points. Teams 1 and 14 tied for 1st place with 19 points each.
Our robot did not do anything unexpected. It had been taught to deal with all the situations that we saw on the playing field today during our run. We are happy. Our idea of having a simple but functional mechanical design and extensively tested code was a good one. (We had only been testing for about ten days.)
We might participate again in maslab during our senior year. I suppose we will then be nostalgic about this great experience and fun we have had as freshmen.
Some facts:
Our robot has:
2 Drive Motors, of the high-torque-low-speed kind.
1 Servo, for raising and lowering our ball capture gate.
4 Short-range IR sensors
1 Camera
No gyro, optical encoders, ultrasound etc.
3 simultaneously running java threads.
Sensors thread: 1 page of source code.
Visuals thread: 5 pages of source code.
Finite State Machine thread: 16 pages of source code.
Money spent: $215, excluding food and soda.
18.02A Math lectures skipped by Stephanie and Sarang: about 8
18.02A psets started after 12:30 AM on the day they were due at 1145: 4
Hours spent arguing whether our robot was a 'he', a 'she' or an 'it': around 2, over the month.
Hours spent reading everybody else's journal: about 30
The overall experience: Priceless! ;-)
