The Story of 2.007

hi google

I see that my little tale of robotic mayhem in 2.007 has somehow made it to the #1 search hit on Google for the subject at hand. Well, if you want more information on 2.007, there’s the MIT Stellar site that has information on the course . Alternatively, it is also housed on OpenCourseWare.

“Hey, I finally get to build robots for class.”

Sophomores in \m/echanical engineering at \m/it may elect to take 2.007, Design and Manufacturing I, or ‘that robot class’. While I have personal gripes about the “elect” part – you know, the ability of an undergraduate to fly through a Mechanical Engineering degree without really building anything – I, of course, being academically unmotivated, chose to take the path of least resistance, or that which lets me build as much as possible.

The challenge this year was thus: Build a remotely operate/autonomous machine that fits in and can exit a ramped starting box, have the ability to manipulate 4″ cubes into a scoring zone and stack them for extra points, be able to manipulate pre-crushed aluminum cans into a 2″-wide scoring slot, and for the truly insane, be able to crush your own aluminum cans and fit them into the same slot for epic points. Additionally, tug on a rope connected a pulley that moves a score multiplier object towards your side, which can multiply your points by up to twice.

In other words, everything under the sun.

The course is designed to give students a chance to apply principles of engineerings, design, and fabrication. Along with this, students are supposed to document their design and fabrication process, similar to how records and documents are kept in industry. Conveniently enough, I happen to have a venue where I keep meticulous details on pretty much everything I build.

Okay, so I have a design notebook too, but nobody has to see that.

Let’s begin.

It all starts with the kit of materials and parts. This changes from year to year, but is invariably some delightful combination of wood, metals, and plastics of various shapes and sizes. Also included are important mechanical and electronic components. For this year, a few sheets of 1/16″ aluminum, 1/32″ steel, 1/4″ ABS, plywood, and a gaggle of aluminum angles, tubes, and hex rods rounded (ahem) out the materials.

Along with the materials were servos, small and large, pre-hacked and unhacked. The class moved towards hobby R/C equipment this year, which to me was advantageous. A few wheels and casters rounded out the basic supplies.

There are, of course, many more parts that are not included in the kit that are made available, and can be used freely.

What’s next, after getting your materials? Build servo ants.

As a first exercise, everyone was to build a simple servo-operated platform. In other words, a servo antweight. Remember back in the day, when I built a servo ant?

You know, the day when servo ants could actually win something.

I elected to sleep through this lab session and instead help classmates with the design of their cardboard robots. Meanwhile, being a spoiled laser-cutter-and-waterjet brat, I began to prototype an idea for a can-crushing module.

Cool method of quick-building #1: plates and standoffs. Here’s the structure for a can shredder. The idea is that two spaced but counterrotating blade assemblies will tear and cut up the sides of the aluminum cans such that they have little in the way of structural integrity. The robot can then either smash the cans further before depositing it into the scoring area, or just score by virtue of cramming it in.

Machined parts for this test assembly (“Protoshredder“) include some bearing blocks to hold little nylon bushings, the blades themselves (waterjet-cut from the 1/32” steel), and shafts made from hex stock. The hexagonal bore made for a convenient medium of power transmission without resorting to, say, clamping, keyways, set screws, welding, etc.

Finished and assembled. The nylon gears were crosspinned to their respective axles, except for the center idler gear. This use of even-numbered gear stages allowed the two blade stacks to “pull” something between them.

How did it work? Well enough to make it into production. The blades were actually stacked too close together to cut the can up, but did do a good job of reducing the width to about 2.1 inches. Still too wide, however, since the scoring slot is 2 inches wide. The problem was that the ends of the can are much (much) thicker than the sides, and the blades could not drive through them – mostly an issue of them

1. not being sharp

2. driven by a servo, not very heavily geared

3. extremely close together.

I decided that the final version will have fewer but sharper teeth that are more widely spaced vertically, driven by a servo with substantial additional gearing. That ought to take care of things.

Also, it would obviously have to be made of something that wasn’t acrylic – not only because 1/8″ acrylic wasn’t a regulation material, but the whole thing split in half longitudinally on the first can because the separation force was so great between the blades, and cracks quickly propagated from axle holes. I have a strong distaste for acrylic because it sucks, but it was convenient and fast on the laser cutter.

I was determined to make this method work until it was clear that i would never work, because building a robot without pointy things is just completely against my philosophy of living.

Here’s the structure of the slimmer and sexier aluminum version.  I made the frame significantly more lightweight, volumewise, compared to the acrylic prototype simply because aluminum is that much stronger. I made extensive use of standoffs again, as well as  tabs and slots (Cool method of Quick-building #2) which was used to build Nuclear Kitten. 1/16″ didn’t make for a very good tab or a very precise slot (the waterjet nozzle leaves a .015 radius), so material was doubled up in places for both rigidity and stability.

Some more blades. The pointy ones remain, and are the largest in diameter. Their job is primarily capturing and pulling the can in initially, since the smoother blades would have trouble with grabbing a smooth can. The job of the rest of the blades is to perform a shearing type action.

I assembled them onto the shafts in alternating configuration (pointy-shear-pointy-shear, etc), spaced about 3/8″ apart. After assembly, the whole blade assembly was sharpened around the edges using a bench grinder and careful selective handheld twirling, which isn’t advisable undergraduate shop practice.

With can shredder structurally assembled, only missing some gears that I would need to fetch in lab the next day, I started designing the next parts of the bot. And by this, I mean “The entire robot is due in a week and I have zilch, so I’ll just build whatever I design the night before”.

This is an incredibly bad idea. Do not ever do this. Do not let five weeks pass with no progress because you were too busy attending to other distractions.

Where would my life be without the abrasive waterjet cutter? I blew through a sheet of ABS and an aluminum sheet to make the frame pieces and the mount for the (eventual, not designed yet) can manipulator arm. Here’s where I got to use Cool method of Quick-building #3, T-nuts. The idea is that you make a T-shaped slot the width of a machine screw and associated nut of your choice, situated next to a tab. The part mates perpendicularly with a part that has a matching slot and through-holes where the T-slots are. Insert a nut and screw and tighten to taste.

It’s kind of like end-tapping a solid bar, but a cheap shot if you can live with metal plate and discrete fasteners. It also saves you from the grief of having your drill bit fly out the side of your part that is being end-drilled because you did not perfectly align the hand drill you’re using for the task since inevitably the part is too weird or large to fit in a mill or drill press.

After popping my robot puzzle pieces out from the sheet stock, here’s the shoved-together drive modules. No machined parts – wheels, hubs, axles, motor mounts – yet.

Early stage pretend-o-bot to give me an idea of what the layout might be like. In the empty space in front of can shredder would rest the still vapour manipulator arm.

Let’s actually fill the drive modules with something worthwhile.

I have a new appreciation for Delrin. For the longest time, I’ve known it as “that brittle-ass white plastic that shatters if you use it for anything except little bearings and even then it sucks because sliding friction is far greater than rolling friction”, but it turns out in non-combat robots the stuff works just damn fine. In fact, it works so great that I didn’t bother with popping in any teflon bushings in the wheel bores.

It also machines like a dream – almost as well as UHMW, but is stiffer (consequently more brittle, but hey). I machined all the wheels out of the same piece of 2″ kit Delrin using only the parting tool.

Okay, so it’s a slightly special parting tool

I’d exploded my last carbide tip the week before by being a bit too leadscrew-happy with a steel tube. While the MITERS lathe does have a parting blade holder (by yours truly), using it would mean ditching any coordinate system i might have set for the normal tool holder.

Luckily, I was able to find a 1/8″ HSS blank kicking around in the bin of inherited old machine tooling. Some Dremel and bench grinder work later and I had a HSS pseudo-insert.

Lame, I know, since using a HSS tip in a holder designed for carbide is kind of like drinking zero-calorie sugar-free soda.

But I took the opportunity to grind a side relief into the HSS bit so it could also turn at light depths of cut. Except in Delrin, that means “bury the entire tip and just crank as hard as you can”.

Here’s some finished wheel hubs. After falling off the lathe, I lined them up in the mill and dragged a 3/32″ cutter through the centerline to make a trench that will engage with a pin through the drive motor shaft.

The blue surface coating is Poor Man’s Layout Dye, or “Sharpie”.  With the spindle running, a light poke with calipers will mark a very clear line that you can run the tool against and hold tolerances down to maybe +/-.005 inches.

Assembled drive modules. Here’s a good picture of the T-nuts in action.

The outside of the robot is rounded purely for aesthetics. I could have made square edge plates, but figured as long as the waterjet will be handling the actual making of the rounded edge, it was okay. A while ago, when I would only have had hand and simple power tools to build with, I was glad if something came out actually square.

The edge plates are there to stiffen up the whole drive module. Otherwise, the 1/16″ side plates would be a bit floppy, even with the plastic spacer in the middle.

Pretend-o-bot again. I still haven’t thought about the arm and grabber. Note that now “one week” has turned into “four days”. Things are getting a little worrisome.

But what’s possibly worse than not being able to score the cans you crunched? Not being able to crunch them. Extensive testing of can shredder found that even with the 3:1 additional gearing of the big HS-805 servo (260 oz-in of stall torque!), the bottom of the can was still far too thick to squeeze through. This was bad – the can would make it almost all the way through, but would immediately jam as soon as the blades hit the thicker bottom.

It worked fine when I powered the geartrain with a cordless drill.

Problem: I do not get to power the robot with a cordless drill.

With the clock running down fast, I had to figure something out really quickly. So can shredder was officially deprecated. Such a shame – maybe my robot won’t feature anything pointy after all.

It was time to break out the Jolt and prepare for an intense night of CADing.

The day after. One advantage of day access to the waterjet is that you can cut the next day what you design the night before. This, in concert with quick-building, is the only reason I was able to scrap anything together at all.

Okay, so what is all this crap? I decided that it was better to try and combine the manipulator  (which should be able to  score blocks and pre-crushed cans) with some semblance of an ability to crush, or at least damage to the point of scoring, the uncrushed cans.

Naturally, I had to retain something pointy, so I settled on a pair of giant pincer jaws!

Here’s one half of the jaws. Each jaw is actually 4 stacked sheets of 1/32″ steel, for a total thickness of 1/8″. They will be mounted offset by the total thickness so they may overlap. This essentially turns the jaws into a large pair of poorly-designed scissors.

I left holes in critical locasions so I could rivet the jaws plates together for rigidity.

Note the protruding bayonet tip thing on the end of the rounded profile. When the jaws are in the designed “neutral” position, these tips are about 3.5 inches apart – perfect for grabbing a cube.

While the jaws were being assembled, can shredder was being scrapped for parts and metal.

I cut some partial gear profiles out of the kit 1/4″ aluminum bar and attached them to the jaw plates. When mounted side-by-side, these gears cause the jaws to rotate oppositely relative to eachother, which means only one jaw needs to be powered in order to open and close.

The Delrin hubs extended through the gears and acted as a bearing surface to prevent the jaws from tilting or lifting (too much, anyway).

Instead of riveting, I decided to edge-weld the plates together. This gives an overall stronger lamination than if I only fastened in a few spots.

Also, it made the edges solid, and so I could grind a sharp profile into them for maximum pointiness. The inner tip and edge of the jaws were made extremely sharp such that they could pierce and cut can walls.

Partially assembled jaw assembly and mounts. As designed, they can open up to 120 degrees (included angle measured from axis of pivot to tip of cube manipulator) and close to about -30.

The other half of the manipulator is the wrist joint. A cruel trick that the class organizers played on the students this year is that the scoring slot for cans is vertical. Squashed aluminum drink cans tend to be stable in a horizontal configuration. Clearly, to score a can, you needed at least one degree of freedom in the arm such that the can can be positioned vertically.

Here, the wrist structure is assembled, and I tested mounted a potentiometer (its purpose to become clear soon).

More assembly. The wrist servo has a 3:1 geardown to the output shaft. The gear is coupled to the output shaft with a pin, and the shaft extends back and couples to the potentiometer.

The jaws and actuating servo attach to the wrist through the hub of the output gear.

Servo in place, with its potentiometer partially removed.

I decided to take a relatively common robot & R/C modeling shortcut and use the fact that the servo already has a potentiometer in it for feedback to directly create a closed-loop control circuit without resorting to coding my own controller up. By connecting the servo’s potentiometer leads to my own, I trick the servo into thinking that the geardown stage is the actual output shaft, and so can command it directly with the transmitter channels.

I would probably have tied my control loop into a knot if I had attempted to code one.

Pretend-o-bot episode 3.

The jaw assembly is attached to the wrist by screws through the wrist output gear.

Jaw linkage, also waterjet-cut from the 1/4″ aluminum. The bend in the middle is so it can reach around the large Delrin jaw hubs when the linkage is in its position of maximum travel.

Overall, the combination of frame + servo horn + linkage + jaw makes this assembly a 4 barlinkage. 5 if you really want to count the other half of the jaw.

Mounting the big servo was a matter of jiggling standoffs and bolts.

One of the prospective names for the robot was the Om-nom-nom-atron.

I ended up not really naming the robot anything.

At the farthest closed position, the 4-bar linkage reaches a toggle position. Besides being famous for use in vise-grips, it maximally amplifies the force output of the linkage due to extreme mechanical advantage at small angles.

It should be useful for can-snipping.

The arm towers go up.

I settled for a standard parallelogram-linkage arm, driven by an additional gear-hacked servo. This keeps the jaws level at all times, reducing the need to deal with up-and-down tilt. Combined with the wrist joint, there are enough degrees of freedom to park the robot next to the slot, reach over, and drop a can in.

Many people who built arms in the class made the additional design-complicating choice of adding a second motor at the base. It would have been a positive contribution to the robot if the game had involved reaching out and grabbing something, but for the purposes of scoring in this competition, another axis at the base would just be redundant.

Also, that’s alot of weight to overhang off the end of a standard servo.

Okay, so by now it’s 9am the day of seeding and impound. I sort of threw the rest of the robot together without much regard to taking pictures, but there wasn’t much to miss. Note the addition of the plastic “inner structure” of the bot. This braces the drive modules and rear crossbeam/plate/bar thing and overall, increases the stiffness of the frame.

Before their addition, the frame could bow in and out about 10 degrees. Kind of disconcerting.

Okay, time’s up. Gotta check in at the undergraduate lab where I was supposed to work all term (instead electing to work at MITERS). I had most of the day to make the final preps, like adding threadlocker, zip ties, and other miscellanea.

Additionally, I needed to finish the wiring. Most of it had been finished already, and the arm + wrist + jaws all worked. Note the green boards on the drive modules – they are the internal speed control boards of the large HS-805 servos. I elected to recycle a few broken servos and hack their boards to become DC motor controllers to drive the Tamiya planetary gearboxen.

I accidentally the whole robot.

This year, 7.4v lithium polymer batteries were provided on a limited basis to powermongers who wanted more than a servo-driven piece of plywood. Naturally, I elect to take this option.

The Spektrum receiver ran just fine from 7.4 volts while in testing – I knew I wanted to use the lithium batteries, so while at MITERS, I just used a power supply tuned to 7.4v since I was too lazy to go and dig up another 5 volt battery for the receiver.

So for simplicity’s sake, I optioned to connect the battery directly through my receiver. No big deal – the robot works great. The tamiya gearboxen prove zippy and the four wheel pseudo-track arrangement is stable and maneuverable, though the temporary square O-rings I put in (formerly used in NK) had a habit of falling out of the grooves.

However, if you were going to use the lithium battery in competition, you needed a (mandatory) reverse-polarity protection & current-limiting circuit. Diagrams and parts were provided, and it was simple enough to strap inline on a set of servo cables.

By this time, it was time to go play a seeding match, so I figured I’d sneak through and build a protection circuit after the round.

You can probably see where this is going. The conversation went something like this

“You’re just plugging the battery into the receiver?”

“Yeah, it works fine on 7.4 volts.”

“What if you plug it in backwards or something?”

“Well I’ll build a protection circuit after I seed… be right back”

*plugs battery into receiver*

“OH SH-”

*smoke fizzes out from every servo, flames shoot out of Spektrum receiver”

“Oh god… ”

“Dude, that sucks.”

And that is how I accidentally the whole robot.

At least it looks pretty. Compare to the design:

With all the electronics completely destroyed a few hours before impound deadline, and completely bummed after a week of working on the robot, I threw in the towel and impounded without seeding in the tournament. Later on, I asked to be withdrawn from the tournament bracket since otherwise I would spend all day before my first match pulling the entire robot apart and trying to replace everything.

I didn’t feel like putting up with the stress of last-minute rescue attempts. It’s happened too many times. Tournament participation doesn’t affect the grade.

So here’s some pictures of competition day.

If this reminds you of a FIRST competition, that’s because 2.007 (back in the days that it was known as 2.70) helped  spawn FIRST Robotics as we know it today. The 2.70 contest was originally conceived in the 1960s. I assume things weren’t as robot-y back then.

“Pit area”. The competition wasn’t really large or high-intensity enough to warrant a real pit area setup. Instead, robots were laid out in taped-off areas according to lab section. Tables, tools, spare parts, etc. were available next to the pits.

The queue line for people getting ready to compete.


And so ends the course. What did I learn?

  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Start early and pace yourself through a project
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Modularity in design assist in the fabrication stage and ensure a more versatile design overall
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.
  • Do not plug it in backwards.