Team Three/Journal

From Maslab 2013
Jump to: navigation, search

Contents

Day 1

Bowler came in with basic red-ball-tracking openCV code that slowed to an unusable crawl (<1 fps) as soon as we tried it on the acer netbook. Need to optimize. At any rate, everything on the software end is all configured now.

Lesman came in with a sexy CAD design, did most of the pegbot assembling, and is working on custom Arduino firmware.

Jorge did most of the wiring and soldering, only blowing out one voltage regulator in the process. (Thanks to this incident, the contest admins now have the correct spec sheet uploaded to the wiki.)

We got through two checkoffs on the first day, so we're making good time so far.

Day 2

Bowler: got vision code running in C++, detecting balls. Wrapped C++ vision code to run in python.

Jorge: Worked on/read up on mapping. Wired up 2 additional IR sensors and began working on wall-following

Lesman: Worked on robot CAD. We've got a general picture of what the robot will look like, need to various mounting and assembly details.

Generally discussed game strategy and robot design. We're largely "done" checkoff 3, and are hoping to hit 4 and 5 and wall following tomorrow.

Day 3

Jorge got safety trained and wrote a wall follower like a boss

Bowler got vision code working and calibrating like a boss

Lesman wrote a PID class, Utils class and Ballfollower like a boss

Team discussed software design and iterated on CAD model like executive board


Day 4

By popular demand (and Will's request), here are instructions for getting OpenCV configured on your Acer netbook:

  1. Install Synaptic Package Manager. (Either "sudo apt-get install synaptic" in a terminal, or find it in the Ubuntu Software Center.) Open it.
  2. Filter-search for "opencv". Mark "python-opencv" for installation. All dependencies will be marked automatically. Hit the "Apply" button.
  3. You're all set.

Bowler continued working on vision code. Implemented multicore processing. Got into minor argument with fellow ginger Will over the merits of different image processing strategies. Might have to significantly change algorithm. Late that night, started writing out our general software framework.

Jorge continued teaching our robot how to follow a wall, helped with the CAD effort, and is reading large volumes of texts about SLAM as he formulates our mapping algorithm.

Lesman created the basic structure of our software framework, helped out with wall-following, and continued CADding.

We got Checkoff 4 and would have gotten 5 if the staff had the right equipment on hand.

Day 5

Completely finished the chassis cad with all mounting holes and spaces for support structures as well as holes for T assembly and tabs.

We finally got access to a laser cutter and laser cut the skeleton of the robot in blue acrylic. The parts were very close to what we had envisioned.

We got started neatly re-wiring the robot and designed the wheel and gear hubs.

Day 6

Jorge began wiring the new robot.

Day 7

Since we don't have access to a waterjet we decided to laser cut the wheels and some gears. Lesman and Jorge spent most of the day in the machine shop finishing the robot for the mock competition.


Day 8

We finished wiring up the robot including the IR sensors. After a bit of hacking, we had some working code so we decided to test it in the lab's field. The robot found and collected multiple balls.

After a successful dry run at the lab, we decided to head down to 26-100 to participate in Mock 1. The laptop sleeps when we close it and we never figured out how to fix it.

Bowler calibrated the vision code.

We ran the robot multiple times in the competition field to debug the code and fixed some mechanical problems. Turns out the field had huge holes and our robot kept getting stuck. We decided to try an official run but the set screw came loose. Without the set screw the robot could not move so we decided to go have lunch. During the night, we ordered some new parts.

Day 9

Day 10

Day 11

We set out the day with a set of goals: Get ultrasonic code working. Fix the persistent frame-rate and lag problem on the vision code Implement Wall Following. Fix Drive issues from mock 1. Wire up all the ultrasonic sensors.

During the day we got many of these things working. Frame rate was improved to about 20fps. Our code only runs for about 15ms which should give about 60fps, we're still having issues with the camera capture lagging and imposing a 33ms delay.

We got one ultrasonic sensor wired up and worked out the arduino firmware and interface code to make it work.

Progress was pretty slow during the day...so we worked into the night

Day 12

When trying to fix our motor we found that the gearbox on one of the drive motors had failed. We decided to mount in our new motors from Pololu. This meant drilling out our wheel hubs to a larger size as well as modifying our acrylic motor mount plate. Despite one wheel coming out very crooked this new drive train worked extremely well.

We also rewired the entire robot. Cable tied everything, put it on a nice big breadboard and color coded everything. We wire up and mounted 2 ultrasonic and 3 IR sensors.

At this point (around 6am?) we started debugging. We worked through our various tests and by noon we had everything seem to work based on logging (without anything running). However when we showed up we ran into problems with network connectivity on the netbook, the ball collection motor and field unevenness. Over the course of the 5 hours of the mock competition we tuned our PID and added as much random motion to our otherwise "rotate looking for ball -> approach ball" algorithm by including add transnational motion to the rotation and rotation to the wall avoidance. This worked out pretty well as we managed to pick up 4 balls and make it halfway around the field in about 45 seconds before getting stuck in a loop of rotating without seeing any balls.

Day 13

We gave up on the netbook, put on a minimal install of debian. Set up SSH and x11 forwarding so we don't run anything directly on the netbook. Also built and installed new wireless drivers and are trying to patch and build a version of opencv to fix the image capture bugs.

...

Personal tools