Team Seven/Journal

From Maslab 2013
Revision as of 15:58, 24 January 2013 by Hoseasiu (Talk | contribs)
Jump to: navigation, search

Contents

Day 1

January 7

We went to lecture and discussed the game, parts, lab rules, etc. After the first lecture, we discussed our overall scoring strategy, and the robot functions that would be required to implement this strategy. Whiteboard sketches were drawn, erased, drawn, erased, etc. Parts were tallied, and it seems we'll be well within the number of sensor points allotted. We talked about an arm design we wanted to use and how it would handle trying to score in different towers and over the wall. We'll try to CAD something up tonight to finalize the configuration of components. For our software, we'll be sketching out our state machine to help us figure out what modules need to be written.

Lab:

We put together the Pegbot, and coded up some basic control code for the Arduino. Then we found out there were different voltage regulators, and we had neglected to check the specs... costing us one melted voltage regulator. We couldn't figure out why the motors weren't working at all.

Post-Lab:

As it turns out, two of the pins on the Arduino Mega weren't working at all, so we switched up the pins we used, and now the robot moves! Hooray for movement! We've also set up the GitHub repo, and are now working on the second checkpoint and planning our state transitions.


Day 2

January 8

Lecture today was about robot behaviors and sensors. We found that while Hans is able to code up some pretty nice localization software, localizing himself in MIT is an issue. A clipboard with an algorithm written down to localize oneself on campus was suggested. Results of this experiment will be noted at the end of MASLab.

In lab, we tested sensors and webcam inputs, and refined our wall avoidance code a bit before getting the second checkpoint. We also finished the high level software planning, with all the state transitions and more or less listed the functions that needed to be implemented. Some parts of the robot were also drawn up in CAD.

Day 3

January 9

Today's morning lecture was about vision, and afternoon lab time was about beating our heads against the computer trying to get vision to work. Victor spent 2 hours trying to recognize quadrilaterals. Hosea spent 3 hours trying to point at corners. We also realized that pentagons are strange, and sometimes, they are actually quadrilaterals in disguise. On the mechanical side of things, we found that the little laptop isn't really so little. It's actually rather large. We shall have to be clever about housing it properly. We should probably get to machining things soon.

Along the way, we also got our first design review checkoff done by demonstrating that we can draw, use calendars, twiddle with threads, and think about playing games. We also got the encoder software working, and tested it by waving things in front if it. It should probably work when used with actual wheels. For this bit, we decided to have encoder plates with holes in them and use a photosensor instead of messing around with coupling rotary encoders to our wheels. These should work better.

And there was CADing, and coding long into the night. And there was evening, and there was morning- the third day.

Day 4

January 10

Lots and lots of CADing today. We more or less finalized a design, and decided to be ambitious and try to separate the balls we collected based on color so we can put only our balls in the tower, and throw only enemy balls over the scoring wall. This added two more systems to the robot- one to recognize the balls and divert enemy balls, and one to bring enemy balls from their own hopper back to the normal release point towards the end of the game. Strategically, this would help quite a bit. Hopefully, it's worth the extra effort. We might have two modes for opponents that are aggressive about scoring on the wall, and opponents who are primarily trying to score in their own tower.

Day 5

January 11

Turns out the new ball separation design needed quite a bit of work, so we spent a lot of time going through a couple different ways of doing this today, and did a whole bunch of CADing. On the software side, we're trying to simplify the code the staff provided because it seemed like that code had very wordy communications methods that would take way longer than is really necessary to actually talk to the Arduino. We tried for a long time to sweet-talk the Arduino into doing our bidding using Python. For a while, it was not swayed. Turns out at the end of the day that at least part of the issue was that Victor's COM ports were messed up, so the Arduino wasn't getting any data from the computer. By something like 2AM, we finally managed to make contact with the Arduino. We said hi, and it said "D;" back. Great success! Tomorrow will be a lot of machining. Hopefully, we'll be working much more on the actual robot soon rather than the pegbot.

Day 6

January 12

Today was a great day. We machined some things. They turned out very machine-like. Success!

Victor is very happy. So happy, he's rethinking his life as a course 6 major

We did a bit of testing on the Pegbot, which is getting frustrating, since the wiring is very messy, and it probably isn't worth it to fix it too much since we won't be using this for much longer anyway. Still, having to reconnect a bunch of things after every time we move the robot from lab is annoying. The vision code is more or less working now, so the robot can track balls. We continued messing with the communications protocol, and it seems to be more or less set by now. The only problem is that we can't test PID stuff well on the Pegbot because we don't have encoders on it. That will have to come when the actual robot is done.

Day 7

January 13

Today we decided we're going to win. WIN I TELL YA. The python code now has Arduino interfacing. Also it has an eye. ONE EYE- we named it cyclop (the eye, not the robot).


Day 8

January 14

Most of the CAD stuff under the top layer of the robot was finalized today. Matt spent most of the day machining stuff for the drive system. After dinner, we managed to get access to the CSAIL machine shop and cut out our bottom and middle bases and some of the supports and mounts for them. Lasers are very useful. We now have most of our acrylic pieces done, though one of bases might have to be redone due to a crack on one corner.

Day 9

January 15

Our robot kind of has a body now! We started putting together the acrylic parts, and are dealing with mounting some of the drive system stuff. We also managed to get our wheels waterjetted. We misjudged how big a sheet of metal would be needed to waterjet the wheels, so instead of using two 1/8 sheets, we combined two 1/16 sheets per wheel. We also redesigned our guide rail system for the top hopper. Instead of tilting the entire hopper to one side, we're bending the entire top hopper slightly so that the balls will roll towards the center instead, allowing us to use a straight set of guide rails instead of the curved set we were originally planning. We also thought to put in something of a counter-weight to the guide rails. This will ensure that the center of mass of the rails is near the servo, which stops the arm from oscillating as much when the robot is moving, and help the servo move the rails without as much torque.

Day 10

January 16

Lots of machining! Metal flying everywhere! We have carved the likeness of many robot parts from the scraps and not-scraps of material we scavenged and/or asked for and/or bought from lands far away. The drive system is nearly complete, and the bottom intake roller of our Lovely Machine has been constructed. The helical lift system is also partially installed now, though without the top hopper, it remains rather precarious. Hans has made and tested the ball differentiation system, so now our robot can sort balls using the power of Math!

In the evening, we refined our game strategy, which has changed somewhat since the beginning of the month. We realized that the new way we are having the robot handle the game removes the need for it to change "modes" depending on what the opponent does, since that would already be taken into account by how many and what kind of balls it is able to collect. The fact that we can sort balls now actually simplifies our strategy a lot, so the robot can be going after all the balls rather than just our balls or opponent balls at any given time. Simplicity is good.

Day 11

January 17

Lots of random little things to be fixed today. We made a bunch of mounts, trimmed off some of our metal bottom hopper, fixed up some of the hubs and axles that were giving us issues, and put the robot together. Edgerton was super-busy today, so machining was a bit slower than usual. After we put most of the first layer of the robot together, we realized that our roller rod was actually mounted too low, and balls couldn't pass through, so we will need to fix the holes on that.

During some late-night testing, we managed to get the robot to recognize green balls as well (it had previously only recognized red balls) and generally got the robot talking happily with Arduino and Python. Some mechanical issues came up during this testing though, and one of the wheels is still very wobbly- something we will have to fix in the morning. Because of these problems, we weren't able to fully test to robot's ball capture protocols beyond observing wheel movements while the robot was lifted up, and the rudimentary collision avoidance and wandering methods have only been observed as part of serial communication commands rather than full testing.

Day 12

January 18

Day 13

January 19

Day 14

January 21

Days 15 and 16

January 22 and 23

So Hosea is filling in this log two days after the fact, and admittedly, the last two days were kind of a very long blur, which is why this is one giant entry. A bunch of us were gone over the weekend, leaving poor Hans working on the robot for the most part. On Tuesday, we got the helix system up and running, which took a bit of extra machining along with a touch of tape to keep it sturdy. Actually, the tape helped a lot, and stabilized an otherwise unreliable system into something that could actually deliver balls to both of our hoppers. We are very thankful for tape. We also got the middle hopper cut out, and the supports for the top hopper in place. A bit of extra work around midnight of Tuesday/Wednesday saw the rubber band roller for the middle hopper completed. There was a bit of worry that it was too high to effectively trap the balls, but sometime in the wee hours of Wednesday morning, we put in a layer of bumpy foam stuff towards the front of the hopper, making it easier for balls to stay in until the roller turned on.

Lots and lots of soldering and electronics happened around this time too. We finally got rid of the pesky breadboard that kept on dropping wires, and now have things on a protoboard, which helps a lot when you don't want to rewire half the stuff at least twice a day. A state machine was also finished, which implemented the game strategy we came up with days ago, though communications between the state machine and the Arduino need to be worked out a bit. Turns out we missed an update to the staff code that would've made our lives easier, but Victor had put in some code a while ago that will probably work better anyway. And then at maybe 6 AM or thereabouts, something fizzed and smoked on our motor control board. And we were very sad because our robot couldn't move now.

Ah... the mock competition. Most of us were dead tired by this time, having gotten far fewer than however many number of hours doctors recommend. We found out that MASLab is not good for one's health. Anyway, though most of the mechanical systems and software probably worked, we didn't have any way to be sure until we got a new motor control board during the competition period. By then, we had put in a stripped-down version of the software, hoping to get the robot at least moving and maybe chasing balls on the field. But of course the motor wiring was now messed up, requiring us to re-test all the connections. You try wiring up a robot after sleeping two hours in two days. You and Hans could then bond over that experience while drinking the caffeinated beverage of your choice next to your semi-working robots.

Seems like we weren't as far behind as we thought though- at least relative to the other teams. Quite a few teams weren't able to compete, which is kind of sad when you look at the score boards and then glance back at the initial schedule we had planned for IAP. The sponsor dinner was amusing. Having the people paying for this whole thing see students dropping off from exhaustion right in the middle of their recruitment pitches may not have been the best idea (*** MASLAB STAFF TAKE NOTE***). I wonder what the Oracle guy thought when two people right in the front just gave up and put their heads down to sleep.

After the dinner, Matt and Kojo (who weren't among those of us who didn't sleep the previous night and were therefore still conscious and able to not kill themselves in a machine shop) got into CSAIL and fixed up the intake roller's positioning, making it much easier for it to grab balls. (At some point here, midnight passes and I'm actually writing into the next entry.) They also bent and mounted the top hopper, so now all three levels of the robot are in place! The robot now looks like a tipsy three-tiered creature of technological wonderfulness and trailing rainbows (of wires)! The fact that it looks tipped over, by the way, is intentional, in case you were concerned.