See also: TeamSeven, TeamSevenPaper
January 28th, 2005
- Integrated random 360deg turns in the STATE_WALLFOLLOW. Feels good to write lots of code that is complete untestable.
- Competition day! We finished in 5th place of 15 bots, with 6 points. We were in possession of 9 balls, the highest that any team touched during the day, but unfortuantely our computer rebooted itself during the round which left the motors running, sending us crashing into a wall, and costing us the 3 points for not stopping after three minutes. Good thing we didn't buy it... Anyway, we're happy that we got the most nuts in the mouth.
January 27th, 2005
- Fred has been unanimously selected to write our final paper. Thanks, Fred!!
- Integrated stuff. Ray's wall following is enabled.
- Goal docking sucks. Predicting that we'll get a bunch of balls and them dump them over some random wall.
- Relay + MOSFET turns roller on & off. Works, but default is on.
January 26th, 2005
- Ray has been working on some wall-following logic. Will test this later today.
- Ray added code to CollisionAvoidance that uses local mapping data from left and right. (Previously we only had forward-looking data.)
- Mike's motor controller works for controlling the elevator. We built an adapter cable and wrote the Elevator class that takes care of it and automatically reverses every once in a while to clear potential jams.
- Andrew is still working on the small circuit that will allow the robot to control the front roller.
January 25th, 2005
- "Is this a load-bearing zip-tie?"
Shaw's Rewards Card,
Student Advantage, and Fred's
TI-86 pay off! All form key components of our uber-reliable dump mechanism.
- Finished in 2nd place in MockContestTwo, scoring two possession points.
- Got goal detection & docking working! Have been playing a lot in 34-501.
- New team name. Sorry, but "Nuts In Your Mouth" just didn't have the right taste.
- Our team, "The Galactic Patrol," presents its robot, "Mighty Orbots."
- Revealing the secret of our image processing:
ImageJ, a public domain Java image processing toolkit.
January 24th, 2005
- Ray's new encoders work much much much better than the old ones.
- Mike implemented a new FSM, called ContestFSM1. Working fairly well.
- Mike implemented a CollisionAvoidance class, which uses local map data.
- IR sensor connector, at the sensor, tends to get loose and screws up the reading.
- Fred performed a calibration of the IR sensor. Works nicely now.
- Staying late to code in preparation for MockContestTwo
January 22nd and 23rd, 2005
- Ray soldered the new encoders.
- Mike wrote code for an AT90S8535 to be an I2C slave and control PWM out directly to a bunch of FETs. This should allow the drive motors to run on 18 or 24V.
- Decided that our journal should reflect the fact that it's no longer 2004.
January 21st, 2005
- Replaced OrcBoard. Motors now move again.
- Played with Odometry class, etc. Found two math bugs, and also discovered that the encoders sucked.
- Got new encoder kits.
January 20th, 2005
- Sucked at mock contest #1 -- motors still had stalling issues.
- We got "Self-tests failed" upon starting the OrcBoard/OrcPad?, so we swapped boards. A bit of magic blue smoke was also released from one of the motor controllers on the new board. Weird.
- Tested text-to-speech using
festival for a better feedback mechanism.
- Eventually got some tests done -- working fairly well, grabbed a few balls. Have to fix the roller. The elevator works very well. Work on collision avoidance and situations where both ball is found + collision imminent.
January 19th, 2005
- Elevator seems to work... sort of. Sorta gets caught when picking up balls... Also slow. Also requires 18+ volts to drive it.
- New (smaller) motor for front roller.
- OrcBoard motor controllers suck! They are no longer able to drive both motors on full PWM=255 at the same time! WTF happened?
- As a result, played with Mike's motor controllers some more. Now have 1 of 2 working at full 18V drive. MOSFETs like to blow up today.
- Some changes to mapping. Can't test because the bot is dead.
- New wall-following logic implemented. Haven't tested. Will probably be its first test tomorrow during the mock competition. Doh!
January 18th, 2005
- Fixed a bug in the SensorStalk that caused the wrong angle to be reported.
- Mike finished up working on the mapping/odometry. Ray and Mike tested the mapping and the results are... well... "interesting."
- Fred and Andrew worked on their 6th attempt at an elevator mechanism. Failure. They blame the plastic gears for their misery. To be continued...
- Front roller is basically working.
January 17th, 2005
- Mike wrote a Mapper class, along with Odometry. We'll start to play with mapping soon.
- Checkpoint2 code converted to new format.
January 15th and 16th, 2005
- Weekend. Everyone scattered. Little got done.
January 14th, 2005
- Happy birthday to
baines@mit.edu.
- Fred is busy with the
Mystery Hunt for the weekend. Ray's completing his last day of
2.670.
- Baines worked on the elevator mechanism -- might have finally found a solution by using the belts.
- Mike and Baines quickly did some servo calibration and then sketched a quick finite state machine to handle CheckPointTwo. Our collision-avoidance method used a random number generator do decide what direction to turn on encountering a wall.
- Mike coded the FSM, tested and made quick mods, and then we successfully passed CheckPointTwo. We were immediately approached by several scantily-clad women, all of whom were obviously pleased at our success, notes Baines.
January 13th, 2005
- Temporarily mounted servo+IR
- Made cable for and remounted gyro
- Designed local mapping class. Needs to be implemented soon.
- Ray worked on repairing the encoders and trying to get them working again. He's also busy playing with the high-res patterns.
- Fred and Andrew mounted the motor to drive the front roller, but it's way too loose.
- Ray and Mike taught their
Introduction to PHP class.
January 12th, 2005
- Tested Mike's camera calibration code. It's sexy. Basically we just make some computations based on the frames being captured and it greatly increases the contrast of wall (white) vs carpet (light grey-blue).
- Did the design review, without slides.
- Got motors working temporarily without the motor controllers.
- Started building cable for gyro so we can mount it off of the OrcBoard
- Determined that the belts for the elevator are too stiff. Have to find an alternative, hopefully using our same pulleys. Update: found some aquarium tubing that should work.
- Wrote some quick code, RedBallTrack3, which sucked. We're probably going to have to at least quickly implement mapping before Friday!! And Mike and Ray don't have much time tomorrow: they're
teaching.
- The biggest problem in small-scale control seems to be that the drive motors "stick" -- they don't move for low PWM values until the static friction in the gearbox/etc is overcome. Mike implemented a generic PIDControlLoop class, which yielded interesting results when added to the red ball tracking. We still have to tune parameters a bit more.
January 11th, 2005
- Right-angle drives for the big motors arrived. Mike tried making mounts for them, with limited success. But still, the team scrapped the idea and has gone with the standard motors, possibly running at greater than 12 volts. We will forever be doomed to mediocrity.
- Assembled most of the new frame. Looks good! This includes base, casters, drive motors&wheels, front collector element (but not motor), computer, and battery.
- Our fourth day of attempting to fix the motor controllers. Ray burns himself repeatedly on overheating FETs.
- Ray got smacked in the ass.
January 10th, 2005
- Got 1/2"ID bearings for the drive wheels. Spent time sanding down the current oversize 1/2" adapters to work in them. Tried Mike's motors; worked for a bit, but failed. The flexible couplings appear to suck donkey balls and they failed under the maintained torque. Tomorrow we're going to try some right-angle gearboxes, which also include a 6-to-1 reduction, which will 1) allow us to position the motors in a good way, 2) reduce the speed to a manageable range, and 3) produce some kick-ass torque.
- Spoke with Finale and Ed about the nav beacon concept. They gave us a good idea about using the IR sensor for part of it, taking advantage of the quantum-level logic that is almost exactly what we need. Andrew says he's aware of potentiometers that are in essence single-turn but allow for multiple rotations.
- Mike added some code to figure out how many frames we're processing per second, and reduce the number of frames published to BotClient (because it's currently the slowest part of the processing system). Consider moving BotClient publishing activities to a separate thread, or doing by time instead of frameCount % 4 ?
- Mike and Ray played with vision code, particularly the Contour class, which detects the walls/blue line/etc.
- Near-mutiny over the motors: the team is about to punt me, reports Mike.
- Motor controller #2 died. Damn Radio Shack. Since when is 16 ohms within a 10% tolerance of 100 ohms? Ended up with about an amp through a 2N7000, which made a lot of smoke. Proceeded to blow out one power p-FET and one power n-FET. Gave up for the night.
- This was our third day of toying with the prospect of an incredibly powerful drive system. Mike still wants to fight the good fight and try it; the others are ready to give in to mediocrity. That is, they just want to use the motors that come with the kit.
- Mike's continued fight for this motor thing is likely to fail, and will probably make it harder for him to implement his more advanced concepts, such as the nav beacon.
- If our faithful readers haven't noticed that this journal is very Mike-centric, it's because I was trying to be subtle.
January 9th, 2005
- Slept in until 6pm.
- Watched the 2-hour season premier of
24.
- This was our most efficient weekend of working on MASLab yet!
January 8th, 2005
- Played with the servo.
- Andrew and Fred went to the machine shop and made one piece for the lifter. Went to Home Depot and picked up some useful parts.
- Mike wasted the day attempting to debug the motor controllers. They worked fine at DC, but not well with PWM. By 7am on the 9th, Mike had once again saved the team from impending doom. After switching some BJTs to FETs and tuning away some nasty gate capacitances, the motor controllers now work on PWM output.
- Note: if concerned about PWM lag/blurring etc, check the optoisolators first. They contribute the largest "contamination delay," as Ray would put it, in the motor loop.
- These drive motors rock. And they suck 6 amps @ stall. And now we can handle that.
- Hmm... we forgot to work on code today. In fact, I'm pretty sure that the bot computer has been off for 24+ hours.
- Continued discussing possibilities for advanced navigation algorithms.
January 7th, 2005
- Mike stayed up until 6am and made his own version of the BarCodes class. It works based on a concept he designed yesterday that collects data about the location and size of the white walls. We got checked off for the barcode stuff.
- Simple camera mount constructed. Hint: the webcam has a #10-24 threaded hole on the bottom.
- Checkpoint 1 complete. The RedBallTrack2 class spins around, finds a red ball, locks on, approaches, and stops when in range.
- Calibrated the for colors and lighting conditions on the playing field.
- Mike and Andrew discussed code to allow the robot to calibrate itself for varying light levels present on the playing field. Mike began the implementation.
- Ray began work to use encoders to track robot movement.
- We discussed using some sort of active navigational aid. Still not sure how we'd do this.
- Picked up a servo to play with. We'll have to evaluate its potential uses this weekend.
- Parts from
McMaster-Carr arrived. We hope to get working on the mechanical design this weekend.
January 6th, 2005
- Mike came up with a much faster way to push our images to the BotClient. It basically involves blitting the raw RGB bytes to a fresh DataRaster for a new BufferedImage.
- Ray attempted to implement the bar code searching
- Tuned vision, feedback look for RedBallTrack1
January 5th, 2005
- Placed order with
McMaster-Carr. Parts shipped today and hopefully will arrive on Friday.
- We set up Subversion for source code control. The bot has scripts to keep it updated from the repository.
- Tested some motors and high-current motor controllers. We've basically decided to change the drive system to get better speed.
- Ray continued soldering the encoders after discovering an improperly inserted component.
- Modified vision code to not use hard-coded color values, instead using Mike's HSVColor class.
- Created RedBallTrack1 class with feedback loop. Keeps robot pointed at the nearest red ball. Pretty cool! Note to self: if program hangs after any Orc operation, particularly a motor command, check that the "All Stop" button hasn't been hit accidently. That cost me half an hour.
January 4th, 2005
- Tested gyro on the oscilloscope; output looked good. We then asked around and discovered that an updated maslab.jar fixed the gyro issue. Works fine now.
- Fred and Andrew obtained IR sensor, prepared cable, tested & completed sensor worksheet.
- Wrote program to stop bot if obstacle is detected, using IR.
- Got camera code working! Also related to the updated maslab.jar. Regardless, Mike wrote the CaptureThread class and finished up the first iteration of a basic machine vision class. Still left for tomorrow is to integrate this with the bot control code so that we capture frames as we're running and act on them.
- Thought a little bit about the overall software organization, but didn't decide on anything permanent. We're still writing a lot of temporary utilities and that trend will likely continue for the next few days until we decide on an architecture.
- Ray developed the MovementController class, which is a framework for abstract movements. Basically now implements two motions: straight line or turn by x degrees.
- Andrew and Fred made initial CAD sketches of the uber-secret mechanical design and spec-ed out parts on
McMaster-Carr.
- It was agreed that the drive motors provided to us are basically worthless for anything more than fancy lawn ornaments, so the search has begun for a replacement.
- Ray began assembling the motor encoder kit. He's quite sloppy with the SMT components, but only burned himself once.
January 3rd, 2005
- Soldered the Orc Pad, gyro board
- Built the Peg Bot
- Tested Orc Pad -> Orc Board -> motors. Working.
- Hello world program for Orc Pad works.
- Gyro data isn't right. We've swapped gyros and still have the same problem. On Orc Spy, the output appears to peg at either the pos or neg rails when a small rotation is applied. This seems to indicate that the gyro is outputting some sort of data, but there might be some issue with the range of acceptable A/D inputs. Must look at this tomorrow.
- Can't quite get camera working. Discovered that pwc is compiled into kernel, not as a module, so debugging will be much more difficult. Get errors from the JVM when trying to use maslab.Camera. Also tried Mike's V4LCam code, which interfaces to any Video4Linux-compatible device, but this also had problems because of a YUV->RGB issue. Must continue to try tomorrow.
- Possible Linux problem: after some time of testing tonight, a process kswapd0 stole 100% CPU time and the system grinds to a halt. We'll have to look into this one. Suspicious because only about half of RAM was being used, and there isn't even a swap partition! Might be related to this:
http://lists.debian.org/debian-kernel/2004/11/msg00246.html.