Team Seven/Journal

From Maslab 2013
(Difference between revisions)
Jump to: navigation, search
Line 71: Line 71:
  
 
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.
 
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.

Revision as of 15:15, 18 January 2013

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.