Team Ten/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 Ten’s Journal |
Day 1: Monday, January 8
We completed the tasks for Day 1: getting kit, assembling OrcPad, motor and bracelets, and pegboard with wheels and caster.
we had a problem with the left motor, which we fixed later on, and we got our robot to take its first steps.
Day 2: Tuesday, January 9
Working.............. We got the IR sensors to work and recognize obstacles 6" in front of it. We got the code working so that the robot would stop when the IR sensor detected an object at that distance. We also came up with some potential mechanical designs. Right now we're going with the archimedes screw to elevate the balls from a compartment below and onto a tilted platform. A gate will release and let the balls roll into the goal.
Day 3: Wednesday, January 10
The struggle continues! Why won't the compiler compile the program correctly? It doesn't like the class I created. It won't find it and keeps throwing an error...Now the program won't compile
Team met to discuss more ideas about ball collecting and the overall flow/design of the software.
Day 4: Thursday, January 11
Design Checkpoint 1:
Robot Body:
We have designed our robot to have a round chasse which will help in preventing our robot from getting stuck around edges. We want to have two motorized wheels at the sides near the back and then two castor wheels near the front for balance. The chasse will allow enough room underneath for ball collecting and on top to hold the hardware as well as the platform and screw for ball collecting.
Ball Collecting:
For the ball collecting system, we plan to use a funneled compartment with a one-way gate at the front underneath the body and an Archimedes screw to elevate the balls to a raised and tilted platform. The balls will roll down the platform and stop at gate that will release using a solenoid when the robot is positioned facing a goal. Because the screw idea could prove to screw us over in the way of not guaranteeing that the ball will actually get into the screw in the first place, we made several back-up plans, each easier to build and implement than the one before. Our Plan B is to use some sort of paddle wheel, either a water wheel with four paddles that will scoop them up, rotate them 180 degrees, and let them go onto the slanted platform. Plan C is to have a paddle wheel that is really just one paddle, that opens when the robot sees a ball, then closes to keep the balls in the compartment underneath. When the robot gets to a goal, the paddle just spins in the opposite direction to throw them into the goal. Plan D is to have a hot-wheels time thing where you let the balls into the compartment with a one-way gate and when robot reaches a goal, it turns on the wheel and drives away from the goal facing away from it so the balls can be shot out the other end. Plan E is just using a rack and pinion and having a wall that pushes the balls into the goal.
New idea from Checkpoint meeting:
We can create a ball elevator consisting of a tread or rubber belt with the width of two balls and the height of 1 ball opposite a wall with a curved lip at the bottom. As the robot moves forward, one or two balls will be grabbed by the traction on the rubber belt and pulled up the elevator. The back wall that the ball rolls up can have a curved lip at the bottom to help the ball roll under the rolling belt. Then, once the ball reaches the top of the elevator, it will just roll down a tilted platform and collect at a gate that can be released by a solenoid.
Sensor placement:
To navigate most efficiently, we plan to place an infrared sensor near the ground to aid in detecting balls and obstacles. A rotating ultrasound sensor will be mounted and turning with the screw, geared to spin faster, to map out the area and identify walls. Bump sensors will be placed around the four outermost corners of the chassis to make sure robot knows when it is stuck and when to escape. We plan to also use a gyro to help in navigation.
More on code for finding red ball
We were having a lot of issues trying to get our code working and then trying to get the compiler to recognize the classes that we were writing. But we just now got it working and we're getting live feed from the robot camera to the Botclient which is a very good thing. The bad news is that the camera is refreshing at 1.5 framers per second, which means our camera is now useless. It's just a glitch in the information processing code, but we reboot anyway to see if that fixes things.
Day 5: Friday, January 12, 2007
EE
Today we had to switch computers because ours somehow got toasted. Yesterday, we just chose the reboot option on the OrcPad and it never booted up again. Something happened incorrectly because the CPU got really hot. But now we have our old hard drive on the new computer and the OrcPad is booting up fine. The wireless card is now considered toasted so we had to replace that too. Moral of this story: never, ever choose the reboot option on the OrcPad! We won't. Never, ever, ever again.
Mech
Aaron is almost finished with the screw and I (Eletha) began making the ball elevator. I have the bottom and top rollers done. I grabbed an old rubber glove to cut up and make my tread. Now all I need is a motor and a gear to connect said motor to the top roller.
Hopefully we won't have as many set-backs in the future and we can make up for the time we have already lost, which is probably an entire day considering all the bugs we've been having to work out.
Future plans
We're now thinking of mounting our camera on a ~6 ft high tower to see the entire field at once to direct the robot to collect balls.
Day 6: January 13, 2007
We are continuing to work through the code to improve the ball-finding and moving toward ball abilities of the camera and motors.
SNAFU
Also, more broken stuff. List of things received from MASlab that have broken, not worked, or otherwise caused us grief thus far:
- SMD components (FUBAR!)
- sketchy USB cable (replaced by staff)
- computer (replaced by staff)
- IR sensor (replaced by staff)
- ultrasound sensor missing 2 10k resistors (toasted)
- another computer (crashed)
Ratio of time spent working to time spent fixing or being confused about broken stuff:
1:2
[edit by Aaron on Eletha's computer]
Day 7: January 14, 2007
Haven't begun working yet.
Day 8: January 15, 2007
Good news: our computer that crashed on Saturday is working now. Today we're working on multiple red-ball finding and getting the ultrasound sensor working. Turns out the US sensors we were given were wired incorrectly giving us a constant reading. We had to look up the part number to get the correct wiring since the documentation on the OrcManual was incorrect.
Day 9: January 16, 2007
Today we are working on getting a moving average from the ultrasound sensor so that our readings are more accurate. But the readings are pretty much inaccurate and well, we're not too happy about that.
A new idea for getting the balls up a ramp is having one large roller, encased in foam
Subversion Repository Access
Instructions:
Making your own/checking out files from the repository:
add svn svn checkout (space) svn+ssh://ayman@athena.dialup.mit.edu/afs/athena.mit.edu/user/e/j/ejflores/svn-repos/maslab (space)team10code
Adding files to repository:
svn add *.java
Updating:
svn up
Opening a file:
1.) cd team10code
2.) emacs filename.java Make changes to code, save, close
3.) svn diff filename.java to look at differences before committing
4.) svn ci -m "Comment describing what changes were made" filename.java
5.)svn up if you get bored
Day 10: January 17, 2007
SOlidWorks designing of robot continues and image processing and ultrasound sensor code also continues. Preparing for Checkpoint 2 tomorrow.
Day 11: January 18, 2006
Checkpoint 2
We presented our new ideas for our primary scoring mechanism. We will have pictures up soon.
[Notes from Aaron] We haven't done much actual design of our final robot; instead, we've been prototyping and benchmarking possible scoring mechanisms. The screw and ball elevator were tried but didn't come to full fruition within our 5-day experimentation period. We decided on a design that is reliable and well, actually works. It's simply a roller that draws in and elevates the ball to a platform. We are experimenting with a belt to transform it into a conveyor belt. The balls will then roll onto a tilted platform and collect in front of a gate that will be released by a solenoid.
Day 12: January 19, 2006
Today we made great strides on the overall architecture of our finite state machine code. We made a flow chart describing the progression of states we want our robot to follow, along with some expected interruptions and escapes.
We'll have that flow chart up soon as well as some pictures of our benchmarks.
Aaron is coming a long way with the SolidWorks image of our pseudo robot which will be coming into fruition by next Checkpoint.
Day 13: January 20, 2007
Today we scrounged for raw materials for our chassis and got some caster wheels for our tub. We also found a very bright halogen bulb to make up for the pitiful lighting conditions in 26-100, or just to make them more similar to the practice fields in the 001 and 002 labs. We also decided to use optical encoders to measure theta during robot revolutions instead of the gyro since it takes a long time to get information from it. So we assembled the encoder pcbs and we're going to print out an encoder wheel at CopyTech.
The SolidWorks designing is coming along. So far we have most of the components and one deck. This isn't the final drawing but what we've been working on so far. Actual robot construction will start on Monday.
Day 14: January 21, 2007
Today we are continuing with the SolidWorks drawing and the wander code.
Day 15: January 22, 2007
Today, our wireless card got fried. Yay. And what's better, there are no more...
Also today, wander code in the finite state machine form is coming along.
Ha, preliminary Ball Recognition code is complete...now we can find the largest mass and approach it...
Some pictures of benchmark & early design pieces:
The Archimedes Screw to elevate balls:
The Pegbot: The very sad, sad, peg bot. Why do we still carry around this piece of junk?!?
The Ball Elevator:
Day 16: January 23, 2007
Today we put the CAD on hiatus and made a chassis out of plywood in preparation for Checkpoint 3.
We got a new wireless card.
Day 18: January 25, 2007
[Aaron] Some notes on our mechanical progress; being the only grunt able to work pretty much whenever, it's been stressful trying to get this thing together. My original idea was to CAD all the components up, then virtually build the robot, then waterjet a chassis and whatever else. After getting our chassis and plates, we would bolt or rivet our components together and a good time would be had by all. However, I'm the only one CADing anything, and there's a lot to CAD. It's a lot of work to take accurate measurements and create good CAD models. The only exceptions were the gearmotor and IR sensor; datasheets (with dimensions!) were availabe for those two, along with screw size and TPI info.
So, two days ago, I just started building, to hell with the CAD drawing. We've got a mobile robot, but that's about it. Decent camera mount, too. Well, back to work.
Day 19: January 26, 2007
[Aaron - Mechanical]
No sugar-coating. This is getting ridiculous. I've spent the past few days in machine shops doing nothing but working on the chassis, alone. The team has pretty much fallen apart. I am exhausted. However, I expected MASlab to be a huge time sink, I knew what I was getting myself into, and I will see this through to the end. If only I could say the same for elements of the rest of the team. Enough of my whining. On to the pictures.
This picture above doesn't have the ball holder thing. Actually, it's missing a lot of things. I can only do so much.
This image has the ball repository. An opportunity to use the waterjet (for free!) arose, and using the sheet metal features on Solidworks I was able to make this doo-hickey - I also tested out how well the waterjet did text, with good results.
The belt mechanism works almost fine. There isn't enough clearance between the belt and the chassis, so every now and then the belt bunches up and gets jammed in that space. Some quality time with the rasp should fix that. A lot of work needs to be done, and there isn't much time left.
Day 20 January 27,2007
To do list for 9:37 pm- whenever stuff works:
-find row in image that we need to start scanning the image for relevant information
-wall following
-goal finding
-bump sensors
-forward ultrasound needs to be mounted
Sensor/actuator ports:
-R IR sensor: 15
-L IR sensor: 14
-F IR sensor: 12
-Gyro: 13
-Front US:22,23
-Left US:18,19
-Right US:16,17
-Left Motor: Motor 2
-Right Motor: Motor 3
-360 Servo: Motor port 1
-Gate Servo: Port 3
-Bump sensors:
FRbump: 9
FLbump: 10
BRbump: 16
BLbump:18
-Top Transistor: 7
-Top LED: 6 (high)
-Bottom Transistor: 5
-Bottom LED: 4
Today our team has been working together pretty well probably for the first time ever. We're actually being productive on the robot that we will be bringing to competition, not a virtual robot that exists only in our minds. The main code is coming along nicely too. We're testing and just moving on toward completing this project. :)
Day 21: January 28, 2007
Tasks for today:
-switch to IR sensors
-ball collector (gate and backing and storage)
-test gyro
-mount light
-
Day 22: January 29, 2007
Today we have made pretty good progress. I (Eletha) wrote up a new wall following code using the gyro and ultrasound sensors. We got a new IR sensor that may/may not work so we have to test that.
Tasks completed today:
-right IR sensor mounted
-ball collector backing and repositioning
-servo working as motor
-ball collecting belt not jamming anymore
-skirts underneath bot mounted to prevent balls from slipping out
-Pizza box cut-outs mounted as additional skirting
-new wall-following code written
-goal recognition code completed
-purchased stranded wire, light mount(solder coil), 2 light bulbs,
Tasks yet to be done:
- 4 bump sensors made
-code testing
-goal aligner code
-goal approacher code
-ball dumping code
-turning away from goal and re-entering ball search state code once balls are dumped
-battery and computer mount
-ball storage permanently mounted
-team name finalized
-gate and linkage for ball storage unit
-servo mount for gate and linkage
-new IR sensor tested, if it works, then extend it's wires, if not, then get a new one and solder that one
-left IR sensor mounted
-Oh yeah, and we still haven't passed Checkpoint three, which means we can't pass Checkpoint 4
-final paper 5-10 pages
Yay!!!! We passed checkpoints 3 and 4!!!!! We won't be failing!!!!!!
Day 23: January 30, 2007
Calculating Han's tab
Our team has been ordering delivery from various places around boston/cambridge. Foe example, Hsin Hsin's (2), Bertucci's (2), Jade Restaurant, Sicilia's, and others I don't remember.
Hans has paid 6 dollars toward Sicilia's, from which he ordered a small stuffed pizza w/ cheese 20 dollars towards the Jade Restaurant, from which he ordered chicken low mein and scallion pancakes (2.50 + ?) 2 dollars for Bertucci's.
He currently owes me, Eletha, chicken alfredo (12.50) and chicken parma (13.99), the rest of sicillia's(9.75-6= 3.75),
He owes Aaron for today's Hsin Hsin's (chicken w/ broccoli and scallion pancakes which is 6.25 + 3.5 =9.75 ).
12.5
13.99
3.75
9.75
2.5
? -20
Total: ?
I want your knees!
Aaron's mechE tasks for tonight
-batt, comp,pad, board mount
-IR sensor mounts/wired
-gate
-overhauled chassis, reinforced
-moved wheels in to eliminate need for bump sensors in front of wheels and to fit 14" foot print
My coding task list for tonight
-wall avoiding/exlpore code for Wander (main) (done)
-make bump reactions (behaviors) in bump class (done)
-add bump to wall avoiding (done)
-fix escape class (state 8)
-put escapes in all states and timeouts using System.currentTimeMillis()
-test ball eater with new trip sensors and servo triggering
Day 24: January 31, 2007
Spent all day finishing chassis and wrapping up the finite state machine. We had to throw out the ultrasound sensors and code we made for that. The robot is looking pretty good and I've got timeouts in the code to protect against the bot getting stuck in a loop.
We're planning to spend all night in the .001 lab tonight to get done before impounding.
Day 25: February 1, 2007
Hey! Donuts! -Thanks Aaron. We're finally testing the main code (finite state machine) but it keeps crashing... for some reason it needs to keep reconnecting. I think it's something wrong with the state switching classes that makes one pointer point to different state objects and runs the state from that temporary reference. We have to throw it out entirely and just go for a quick and dirty wall-avoiding while searching for balls and then a goal searching state that kicks in after 4 minutes.
Day 26: February 2, 2007
Competition day! Wait, I'm a nervous wreck. Yesterday we had to change the motors at the last minute and we really didn't have very much time to test the algorithms and find all the bugs before impounding. When we finished, the motors were not making the robot turn and it wasn't backing up for some reason.
Good news: it's painted a sweet chrome/aluminum shade and looks mad hot. At least we'll go out in style.
We inspired some elementary school kids to get into robotics and to apply to MIT by letting them play with our super-sexy ball elevator and answering their questions about how robots work and how to get into a place like MIT. Awww... we made a difference with our creation. I'm satisfied.
The End.





