From Maslab 2011
(L)eighton, (D)an, (S)tan, (C)athy
Day 1, Monday January 3
Today we attended lecture and then assembled our pegbot and got it driving. Trying to get a jump on the work ahead of us, we took pictures of the field and of the balls with our webcam for vision testing and started to wire up several IR sensors and a gyro.
Dan finalized 4-bar synthesis for the mechanism that raises the ball hopper up over the wall. He also figured out how everything will fit inside the robot's circular footprint.
Day 2, Tuesday January 4
Dan got the majority of the detailed mechanical design finished.
Cathy tried to fix a problem with the v4l4j library by setting up a VM with Ubuntu 10,10 and a whole new dev environment on her machine, since certain camera functionality didn't work without v4l4j and v4l4j didn't work with her version of Ubuntu.
Cathy helped Stan and Leighton set up eclipse projects and git working directories.
Cathy, Stan and Leighton discussed software design.
Cathy went to get shop-trained.
Leighton rigged up some sensors.
Day 3, Wednesday January 5
D - did more detailed CAD, set up files for rapid cutting, and created an assembly plan so we can start building this weekend.
L, C - attended lecture, troubleshooted and tested sensors (IR, gyro), worked through checkpoint 3
L - assembled encoders, planning to put them on pegbot tomorrow
S - worked on setting up software framework
C - got camera working with personal machine (thanks, staff!), configured ant, set up convenient routine for running robot remotely
Day 4, Thursday January 6
L, S, C - attended lecture
L - mounted encoders, wired up LED for debugging, helped debug checkpoint 4
S - continued working with software framework: main loop, state machine, sensor abstraction
C - wrote and tested a basic PID controller, worked on checkpoint 4, wrote some edge detection code
Day 5, Friday January 7
D, L, S, C - D got in last night, so we met to get him up to speed
D - measured components to make sure that they fit the mechanical design, made a prototype roller to test out functionality
L - wired up a controller for powering the roller's motor, helped C debug checkpoint 5
S - helped C debug checkpoint 5, worked on wall following code
C - worked on checkpoint 5, eventually got a PD controller running that tracks and approaches a red ball
Day 6, Saturday January 8
D battled with obstreperous machines and got everything cut.
L built a controller for our fourth motor, did other random electronics stuff, and built our very own field.
C started writing sensor classes and finished checkpoints 4 and 5.
S attacked wall-following.
Day 7, Sunday January 9
D machined hubs and didn't cut the hopper because he didn't have 1/16" Al.
D and L did post-processing on the cut materials and assembled the majority of the robot. Left to do is mounting the hopper.
C finished up sensor classes and wrote and tested color calibration code.
Day 8, Monday January 10
C wrote the checkpoint 6 code (button start, timing, color calibration) and wrote the ball picking up code in preparation for the mock competition.
S finished some classes for velocity control and wall following (still untested).
L mounted the buttons to start the robot for the mock competitions.
C, L and S debugged the robot at the mock competition. Then we won the mock competition!
C, S divided up the rest of the software areas.
Day 9, Tuesday January 11
L wired up limit switches and bump sensors and prototyped the break-beam sensor.
D cut and installed the hopper and worked on the ball intake ramp.
S debugged wall-following control.
C wrote software to optimize image processing.
Day 10, Wednesday January 12
C got most of the rest of the vision work done, including smoothing, down-sampling, and worked on blue-line filtering.
S managed to get real-time parameter updating working! and succeeded with wall-following.
L did lots of wiring, installed break beam sensor, defined I/O ports, got the roller motor PWM circuit going.
D installed curved ball guide, wired up the new battery pack, and tweaked various things on the robot.
Day 11, Thursday January 13
C ported code from mock 1 into state machine framework.
S finished writing wall following.
D, L, S, C tested wall following on a simple field.
C wrote scoring code.
D, L, S, C tested wall following and scoring.
Day 12, Friday January 14
L, S, C tested, tweaked our code from the first mock competition ported over to a state machine framework.
L, C tested, tweaked our scoring mechanism and code
S, C made a state machine that incorporates wall following, mock competition 1, and scoring.
S debugged wall following
C added timeouts in code, wrote better color calibration utility
L, D, S, C tested, tweaked, tested, broke the robot (oops), tested, tested, tested, won mock 2, got a lot of sleep
D, L repaired the robot
Day 13, Saturday January 15
A slow day for us. We recovered from mock comp 2 and the all nighter that came before.
D- Fabbed robust "whiskers" for the bump sensors. Made a pack of A123 lithium polymer batteries that the bot could use.
L- Prototyped replacing encoders with geartooth break beam sensors. Attempted to acquire a static IP on MIT's wireless. Started rewiring.
S- Started to revise the wall-following code after mock 2.
C- Started improving vision code w/ down-sampling and reduced the number of stills sent to botclient.
Day 14, Sunday January 16
S coderodered all night and day and made a stronger, faster, smoother, better wall following state.
L got break beam encoders working!
D made more battery options.
C added a better vision calibration test, and made vision processing faster.
Day 15, Monday January 17
L, S fixed wall following - now it's a lot smoother.
S Started working on a wheel velocity controller. Tabled it -- encoders aren't good enough, and motion is fine for now.
C Started fixing synchronization issues in the vision code. Before, the robot was acting on incomplete vision data. Goal is to only pull complete (but slightly old) vision data.
Day 16, Tuesday January 18
D, S, L, C tested and tweaked robot, modified gains, broke the robot, fixed the robot, test test test
C fixed concurrent programming issues, worked in stuck handling, bump detection, added more SM logic, added some random behavior
C, S worked on stuck detection
Day 17, Wednesday January 19
Day 18, Thursday January 20
Day 19, Friday January 21
Day 20, Saturday January 22
Day 21, Thursday January 23
Day 22, Friday January 24
Day 23, Saturday January 25
Day 24, Sunday January 26