Team Two/Journal

From Maslab 2007

Jump to: navigation, search
Maslab teams
Team 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 14 · 15 · 16 · 17 · 18
Team Two’s Journal

Contents

Calendar

Checkpoint 1

  • Complete Day 1 and Day 2 activities.
  • Mechanical:
    • Solidify plan for robot design.
  • Software:
    • Be able to find red ball in camera images.
    • Be able to find and drive up to a red ball.

Checkpoint 2

  • Mechanical:
    • Have robot base built, minus front gate and ball discharge mechanism.
    • Have camera, sensors, and computer mounted onto the base.
  • Software:
    • Be able to identify goals in camera images.
    • Be able to turn a specified number of degrees.
    • Be able to drive in a straight line.

Checkpoint 3

  • Mechanical:
    • Have front gate installed.
    • Have discharge mechanism built and installed.
  • Software:
    • Have FSM programmed.
    • Be able to wander, find, and pick up balls.
    • Be able to identify and read barcodes in camera images.
    • Be able to approach goals and discharge balls.
    • Be able to create crude goal-visibility graph.

Week 1

January 8

  • Setup SVN repository.
  • Assembled Pegbot.
  • Made OrcPad.
  • Displayed Hello World 20 times on OrcPad.
  • Made Pegbot move.
  • Made Pegbot see: Image:ourFirstImage.jpg.

January 9

  • Partial success in getting Eclipse to work with SVN.
  • Pegbot detects if it is 6 inches or closer to an obstacle, and backs up and turns if so.
  • Decided on Sharara's design: U-shape to catch balls, a curtain to prevent balls from flowing back out, and a plunger-type mechanism to push balls into goals.
  • Soldered gyro.
  • Planned out code to find red balls: subsample bottom-up to find a red pixel and then find its bounding box.

January 10

  • Gyroscope detects direction and angle of change. Exact scaling constant still needs to be found.
  • Laid out Finite State Machine code.
  • Red ball detection works.
  • Pegbot sort of knows what direction to turn in to go towards a red ball (still need to adjust by a constant).
  • Got robot to rotate until finding a ball, and then wiggle its way to the ball.
  • Then tried to improve this red ball seeking, and ended by messing up IR sensor (now it says there's something 0.02cm in front of it when there's not) and the gyro's approximate scaling constant.
  • So need to fix IR sensor, gyro, and improve angle finding.

January 11

  • Gyroscope still needs fixing, but it's much easier now that we know it should be mounted flat. If it's not flat, the scaling factor should be the cosine of the vertical displacement. This means something less than 1, which isn't the case with ours...
  • Actually, gyroscope is really sad... thinks it's going the other direction when it really isn't. Maybe we should get a new one...
  • Design updated: Plunger mechanism will actually have its own motor and wheel to drive forwards and backwards.
  • Design approved at checkpoint.
  • Pegbot can see red balls but for some reason ignores them, need to fix.
  • Discussed software design: how to find balls using camera data, log positions rather than map.

January 12

  • Got a new gyroscope, whose output makes sense!! Now we wait until we have Sharara's chassis done and the gyro mounted before trying to find the exact scaling factor.
  • 3 short-range IR sensors working.
  • Obtained aluminum and wood for Sharara's chassis so we can probably machine her tomorrow.
  • Fixed a few things so we could be successfully checked off for Checkpoint 1
  • New idea for plunger: could actually make it out of K'nex, using K'nex motor, parts, guides. Prototype successfully built remotely tonight, but not sure that we'll get permission to actually use this idea. Things looks grim.

January 13

  • Plunger design: scrapped K'nex idea for a new one. Cut slots in the sides of the ball-holding area and line it with a slick material (we tried cable ties, which seem to work pretty well in our prototype). Use sewing machine bobbins with a small amount of thread wound on them (for added slickness), stick a dowel between them to form a bar. Using two sets of this bobbin/dowel mechanism to hold a servo modded to be a motor that turns a rubbery wheel that touches the ceiling. We can then drive this entire piece forwards and backwards with the wheel on the ceiling.
  • We realized that driving the plunger with a wheel on the ground would not work very well because the wheel would be turned while the robot was moving, which is bad for the motor. Hence the ceiling driving idea.
  • The slots in the main wall of Sharara has been machined! Thanks Ilan!!!
  • Image processing: We can now find yellow goals!
  • Code: Set up threading so that image processing occurs in a different thread than image capture/navigation processes.
  • Pegbot seems to have trouble communicating with its OrcPad. The computer turns on, but the OrcPad stays blank except for the strip up top which normally displays voltage, which now reads 0.00 Volts...

January 14

  • Brought Pegbot in for help with OrcPad issue. Turns out battery probably was just too low. Got a new battery and a new charger as well, and Pegbot running smoothly again.
  • Reworked red ball finding and goal detection.
  • Investigated methods other than HSV conversion.

Week 2

January 15

  • Tried to benchmark image processing, but Pegbot is losing it: seg-faults, won't turn on/off, general hard drive problems, makes loud beeps.
  • Crafted prototype for Sharara. Good thing too, since some holes drilled in the wrong places. Realized also that front wheel bracketing design needed to be different. Will make changes to prototype, reevaluate, and go ahead with real one.

January 16

  • Tried to blog.
  • Worked on base of robot.
  • Designed wander and non-wander strategies.
  • Benchmarked image processing.

January 17

  • Nearly finished base of robot, just need to cut two small parts and drill 4 more holes.
  • Tested PID controller for turning and driving in a straight line. Failed.
  • New (and supposedly faster) way of accessing pixels in camera images. Doesn't seem faster on our own laptops, will have to try on the actual robot computer to see how fast it is.

January 18

  • Finished base of robot.
  • Created and tested prototype of marking mechanism.
  • Been having a lot of trouble with wireless losing connection every time we move the robot.
  • Made improved cable for wireless card.

January 19

  • Robot turns pretty well, needs a little calibration
  • Designed and built most of the front door
  • Worked on making the robot drive straight
  • Took over 300 reconnaissance photos of the playing field at the mock contest
  • *Finally* got a new harddrive for our computer that has been suffering for a while
  • Installed fan in computer

January 20

  • Created RGB-lookup table..
  • Wrote higher-lever navigation and robot action code.
  • Worked on gate.
  • Having lots of trouble figuring out how to use Servo class.

January 21

  • Figured out how to calibrate the servo for the gate!!!
  • Mounted gate.
  • Changed FSM a little and worked on higher level design
  • Implemented (most of) a graph and graph search algorithm (Dijkstra)

Week 3

January 22

  • Robot can travel in a straight line using gyro headings, with dynamic small adjustments as needed.
  • Battery, computer, and camera mounted on robot.

January 23

  • Made eat ball kind of work
  • Pondered wander and goal codes
  • Empirical tests with driving straight and rotating, including training PID
  • Calibrated IR Sensors
  • Made a rendition of goal docking kind of work around 7 AM

January 24

  • Built almost all of ball plunger that gets the balls out of the robot. Only one gluing remains after other parts dry, and then in theory hopefully it will work
  • Pieced together exploring, image capture, and ball chasing codes
  • Lots of empirical experimentation and issue finding and debugging

January 25

  • Performed rough performance test on plunger with pieces clamped together. Seems to work really well, we just need to insert a thin piece of plastic or wood (we used a ruler for the test) to give more pressure between the wheel and the ceiling.
  • Glued together final piece of the plunger after good prototype results.

January 26

  • Celebrated success in mock contest.

January 27

  • Plunger glue is dry, attached extra plastic insert, tested plunger. Not as powerful as we had in mind, but still good. Workable with slightly more intricate goal-scoring dance.
  • Have basic left-wall following done.
  • Separated drive code to a separate thread. Now there is a drive thread, a picture taking and analyzing thread, and a control thread
  • Progressed with improving the control code.

January 28

  • Recalibrated side IRs. Center one seems fine.

Week 4

January 29

  • Worked with goal finding. It seems to work when we're head on, but we spend forever correcting on turns.
  • Tried to have the robot deal with not being head on, but we're having trouble differentiating how much of an angle is between us and the goal.
  • Ball fetching works soso.
  • Plunger works non-ideally, can't get it to go all the way back after pushing balls out.

January 30

  • More time sunk to goal finding and ball getting and putting everything together.
  • Wall following wandering technique gets us stuck in cycles at the mock contest. Problem is we can only ever follow the same wall, and there we can't deal with pillars or acute angle corners. Perhaps would be better to go back to random bouncing around wall avoiding method used for the previous mock contest.
  • Robot has trouble climbing over carpet bumps and hills, so tried sandpaper. Seemed to make robot go really slow though. Ended up removing it.

January 31

  • Reverted wandering code back to simple wall avoidance. Experimented with using all three sensors to avoid walls, but this didn't work very well. Just ended up bouncing around in one place especially in narrow passages. Then tried to use side IR's to determine direction of turn when the front IR gets toop close, but this didn't work either.
  • Spent a lot of time trying to figure out IR noisiness, even removed and repositioned side IR's to point forward. Still no real luck trying to use them. The front IR seems very consistent and reliable, but the left and right ones occasionally spit out readings of zero :(
  • Discovered that our wheels seem to stop spinning at random times, and restart again, resulting in our robot turning in place instead of driving forwards or backwards.
  • Plunger is still mechanically not working very well, getting stuck while trying to go backwards.

February 1

  • Reverted wandering code even more to simply detecting when the front is too close to an obstacle and turning right or left randomly 90 degrees.
  • Finally got ball discharging to work. It now opens gate, pushes with plunger, backs up and closes gate, and charges forward flicking the balls with the gate.
  • Implemented a timeout method so we don't drive into a wall and get stuck there forever.
  • Fixed goal-approaching.
  • Put all the pieces together, so our robot can actually do a full run.
  • Realized that we don't check for time often enough for the robot to end at exactly 5 minutes. So we make yet another thread that simply sleeps for 4:55 and then exits.
  • We find out that our wheels are completely not attached to the motor shaft. We tighten them, but within an hour, they're falling off again. We finally give up on the set screws and find normal machine screws that fit. They seem to work well, wheels solid.
  • Found really easy fix for the plunger... add a second layer of smooth track material!!!! Can't believe it took us this long to figure it out.