December 28, 2014

East Campus Roller Coaster: Actually Building the Thing

Winter break means it's time to finally finish up roller coaster documentation.

TL:DR; here's a timelapse of the construction.  Jaguar setup and maintained a bunch of cameras, and I compiled the stills into video.

Construction took place over a week, and was done by a combination of East Campus residents, incoming freshmen, a few students from other dorms, and a few random strangers.

I think there are a few key things that made it possible to finish construction in such a short timeframe:

Being prepared
We thought through the construction process as thoroughly as we could before actually building anything.  This included putting together lots of documentation and drawings for different parts of the roller coaster, thinking through assembly order and methods, and making jigs to assemble some repetitive parts.  Here's an example of one of the sets of assembly documents.

Some parts of the construction, like assembling frames under the track, could be easily parallelized.  Each unique frame section got its own drawing showing the critical dimensions and pieces of lumber required.  These drawings could then be handed to one or two reasonably skilled people, who were generally able to assemble a frame section in a half hour or so.

Here's footprint drawing, showing the location of each of the frame sections (like the one above).

The frame directly beneath the track was made from two types of assembly which alternated and fit together kind of like a roller chain (wide link, narrow link, wide link, etc).  We built jigs for both the cutting of the 2x6s and 2x4s as well as assembly jigs, since many of each were needed.  Then the job was handed off to a crew of enthusiastic freshman who had never really used power tools before.

Not trying to do everything...
Basically delegate, delegate, delegate.  I like doing everything, so it's very tempting to try to personally do or oversee everything.  Turns out, with a project this big that just isn't possible.  Wesley was also great at organizing people to do things.  On that note, having more than one person who really knew what was going definitely sped things up.  

...But still trying to do as much as possible.
Jobs that were critical to the roller coaster's function and couldn't be easily farmed out Wesley and I did ourselves.  Laying the track sub-frame, putting up the tower posts, making sure the frame was actually straight, and more.  Sleep was scarce that week.

On to the actual construction.

The night before the first load of Home Depot wood arrived, we marked out the foundation of the roller coaster in cheap yellow rope and tent stakes.  The next day, we dug small pits for each of the concrete footers and filled them with gravel.  We then leveled all the blocks and started assembling the base platform:

By the first night we had the frame of the platform:

The next day assembly of the frame sections started.  They can be seen propped against the trees.  Unfortunately, I underestimated the amount of wood we would need over the first weekend, so we used up all our wood early and lost a day.

Sterritt Lumber to the rescue!  Truly absurd quantities of wood were delivered on an all-terrain three wheeled swerve drive forklift.

And at this point my documentation fell apart a bit because I forgot to take pictures during the chaos of construction.  

The tower posts were assembled to their full 28' length on the ground, bolted together, and then disassembled into halves.  The lower half of each posts went up immediately.  After the second level platform was built, the top halves of the posts were carried up and bolted on.  

Once all the frame sections were built, it only took one day to assemble them to make the structure beneath the track.  This was definitely the most impressive day of progress, with basically the entire structure appearing over the course of 8 hours.

Photo credit to Wesley Lau

To make sure the frame was assembled straight, each section of the frame was measured to the sidewalk parallel to the coaster.  Except for two of the middle sections which interfered with tree roots, we were able to get everything positioned plus or minus about a half inch from the sidewalk over the entire length.  The offset in the two middle sections was noted and compensated for when we put of the track sub-frame.  To prevent error accumulation along the length of the roller coaster, each frame section was measured and positioned with respect to the base of the tower, rather than with respect to the previous section.

Tall sections of the frame also had work platforms and railings built into them, so we wouldn't have to use ladders when working on or inspecting the track.

Putting up the posts and floors involved lots of miserable augering of 1" and .75" holes through up to 10" of solid wood.  Despite Rush's purchase of the biggest, highest torque drills that could be found at Home Depot, the 1" auger bits repeatedly got stuck in the 4x4's.  Unsticking them was a half-hour process of violently wrenching the bit back and forth until it came loose.  Next year I should build some sort of auger-assist device with a extra gear-down for the drill and a brace so your hand's don't have to deal with the drilling torque.

Photo credit Danny Ben-David

Putting up the track sub-frame was one of my favorite parts of construction - watching the roller coaster's track take shape was beautiful.  This was a job that had to be done serially, so Wesley and I did the whole thing.  To make sure each segment of the track was put up in the correct orientation, I made a drawing including the height of the end corner of each segment with respect to the beam supporting it.  We would tack in a segment to the previous one at a corner.  The segment could then be rotated to the correct height, and fixed in place with a second screw.  Vertical supports were put in for about every other segment.  Someone else came in behind us and filled out the supports later.  In all, laying the sub-frame was about a day and a half of work.

The track framing finished bright and early in the morning.

The ladder to the second floor was replaced with a nice shallow staircase.  The staircase was another job that was completely handed off to a dedicated crew with very little guidance.  A couple days later, a finished staircase appeared.

Laying the plywood track took a day and a night, finishing around 9 or 10 a.m. on the Sunday of the East Side Party.  The track consisted of three layers of 3/8" plywood bent along the wooden frame.  Bending the plywood turned out to not be too hard.  The most difficult bit to bend was the start of the first drop.  The upturn at the end of the track was another challenge, but that managed to work out nicely as well.  We had an awesome crew who worked through the night to finish laying the track.

Photo credit to Billy DeMaio

Photo credit to Danny Ben-David

Photo credit to Danny Ben-David (click to zoom for glorious high-resolution)

Photo credit to Rachel Davis.  Don't worry, the last 4 feet of plywood were added later.

Once the plywood track had been laid down, we slowly rolled the cart along the track, so make sure it traveled smoothly.  Then we did an unmanned test run with an empty cart, followed by a test run with 150 lbs of sand in the cart.  Then I got to go.   This was my first time riding a roller coaster of any kind.  It was awesome. 

At this point we hadn't put in the last 4 of plywood track.  The cart didn't quite reach it, but I thought it would be good to put in, if only to make people feel safer.

For the first day of operation, the cart faced forwards.  We tried flipping it around the next day, and people seemed to prefer going down backwards, so the ride was left backwards for the remainder of the week.

Photo credit to Danny Ben-David

Actually running the ride started out pretty inefficient.  A crew of 4 or 5 people would slowly walk the cart back to the bottom of the first hill, at which point we winched the cart to the start with an overvolted electric truck winch running off a big A123 battery pack, and cooled by a bank of server fans.  The process took about 8-10 minutes per run.  Later though, we improved the cart return process to use one strong person to get the cart back to the winch.  By the end, the total ride and reset time was under 3 minutes.  In total I'd estimate around 400 people were able to ride the roller coaster between Sunday night and Thursday afternoon, when we closed it down.

Photo credit to Wesley Lau

Here are a couple videos of rides from Sunday night (courtesy of Rachel Davis):

One big unknown pre-building was how the plywood track would hold up to repeated use.  By the time we stopped doing rides, there were a couple small patches of plywood where the top ply had started falling apart.  These patches were at the highest compression spots on the track, at the bottoms of the first two hills.  So the top layer of plywood is good for a few hundred ride cycles at this loading, but not much more.  If we did want to run the roller coaster for longer, however, it would have been easy to replace just the top layer of plywood where it was wearing out.

Well, that's a wrap.

December 15, 2014

Turning An Outrunner Stator Into A Really Bad Induction Motor

Because why not.  A few months ago, Jamison brought a pile of small brushless motor stators down to MITERS.  I decided last night I should turn one of them into a tiny induction outrunner.  Basically, I replaced the permanent magnet rotor with an aluminum can shoved inside a steel can.  It's as simple as an induction motor can get;  it doesn't even have a squirrel cage rotor.  Although a rudimentary squirrel cage could be easily made by milling slots in the aluminum can.

Here's the stator.  Nice and densely wound, and it even has string holding the windings in!  Slightly above a hobbyking-grade stator.

I turned an aluminum can for the rotor, leaving as small an airgap as I could.  Something around .25mm

I turned a steel can, which the aluminum can is press fit into.  An aluminum end cap was attached to a steel shaft with a set screw, and was then also pressed into the steel can.  The rotor's shaft is made from fairly soft steel, and the motor has no can bearings, so any real load on the can will make the rotor rub the stator.  Definitely not made for anything other than testing purposes.  

I secured the rotor in place with  a bushing and too-big shaft collar:

Instead of commutating based on some input (hall sensors, back EMF, etc) like you would with a permanent magnet motor, you can just blindly shove three-phase into the windings of an induction motor to get it to spin (although to get decent performance more clever controls are required).

To drive the motor, Bayley and I hooked it up to this monstrosity, with some of his own sine-wave drive code.  I think the motor controller to motor ratio is a little off here:

It actually turns!

Unsurprisingly, it's a pretty terrible motor.  It took about 10 amps to get it spinning, and it produced so little torque it could easily be stopped with a finger.  I think bumping up the frequency would help, but the the motor controller brick used can't switch that fast, so the sine waves would have become much less sine-wave shaped.  It would be interesting to see how powerful and torque dense an induction motor this size could be made with some actual thought put into the design.  Time to learn more about induction motors...

November 30, 2014

Robot Arm Z-Axis and Custom Servo Drive

Finally back to the robot arm!  I've been taking a break from rideable things recently to arm more robots.  Most significantly, the robot arm got much bigger and gained a degree of freedom.

Part 1: More Billet

I started out with a huge linear rail which I think was scavenged from a large format plotter.  I found it in a corner of MITERS while replacing a table earlier this year.  I conveniently was also able to scavenge four recirculating linear ball bearings for the same shaft diameter.  I made a pair of bearing blocks to hold the bearings and robot arm to the rail:

The robot clamps to the bearing blocks using the same mounting clamps I used on the temporary 80/20 frame.

The bearing blocks have set screws which allow me to adjust the preload on the bearings:

The actuator for the z-axis is another DC motor (not servodisc pancake-style, this time) coupled to a four start leadscrew.  This was found in the same corner of MITERS as the linear rail.  It also has a really neat steel membrane shaft coupling, unlike the helical shaft couplings I'm used to seeing:

The frame for the robot is yet another piece of cruft.  This absurdly massive aluminum frame, fashioned from 1" thick aluminum plates, was found by Nick and Bayley outside a lab:

The whole assembly clamped together:

To actually fix the z-axis to the frame, I drilled and counterbored a bunch of holes in the 1" thick aluminum:

The z-axis actuated with a drill:

To stiffen up the axis, I bolted it through two of the 1" thick plates.  This was by far the largest piece of metal I've ever put on the bridgeport:

I took care to get the plate square on the mill.  It was fairly easy to get it within about 1/2 a thousandth per foot, which will be much smaller than the slop in the clearance bolt holes anyway:

Part 2: Diving into Power Electronics

This term I'm taking 6.131: Power Electronics Lab.  The class has been a very different experience from most of my other classes here.  It's very focused on learning how to actually design and build power converters of all sorts, rather than analyzing them to death.  Everyone in the class does a final project, which can be pretty much anything within reason (where reason means it can't be dangerous, for the professors' definition of dangerous).  

For my final project, I'm building a servo drive for the robot arm.  Basically its two H-bridges on a board with current sensors, encoder inputs, and an interconnect to a separate microcontroller board.  What makes it interesting is the motors I'm trying to drive.  The shiny Kollmorgen ServoDisc motors, due to their corelessness, have practically zero inductance.  When PWM'ed at standard motor controller frequencies (~20-ish KHz) the current through the motor is basically a square wave, since their electrical time constant is much smaller than the PWM period.  This means that RMS current, which determines resistive heating in the windings, is greater than average current, which determines motor torque.  Some motor makers (maxon, for example) fix this by actually putting series inductors on the outputs of their motor controllers.  I'm trying to fix this by switching really fast.

I designed the servo drive to switch at 200 Khz, using these neat CSD19531KCS logic-level FETs (7 mΩ, 37 nC gate charge, 100 V), IR2184 half-bridge gate drivers, and Allegro current sensors.  I put together a schematic and board layout in eagle:

And some time later a pile of PCBs appeared:

Here's a little mbed daughter board.  When I get sick of using mbeds and want to learn how to microcontroller for real, I can just switch out this board for another microcontroller breakout:

The board assembled, minus FETS:

And with FETs installed below the board:

This revision of the servo drive has a few problems, namely that it doesn't work properly with the originally spec'ed logic-level MOSFETS. The fast turn-on transient causes crazy ringing on the gates but it works well enough for the class with slower fets.  Further details on the controller and its problems will be documented in the future.

November 2, 2014

Roller Coaster Mechanical Design: How to Make Solidworks Really Sad

While I wrote about designing the shape of the track a while back, the shape design and detailed mechanical design actually happened somewhat simultaneously.  The roller coaster went through many revisions, as we got feedback from MIT and later some professional structural engineers about what we were allowed to build.

The first thing that vaguely resembled a cad model was this:

It was really just a 3D concept drawing, to get the idea across to all the people at MIT that would need to approve the structure.

Another quick pass at a variant of the looped design, missing most of the structure:

Having two towers would have been great, because it would have solved the problem of needing to get the cart back around the loop after each run.  In retrospect, there's probably no way we would have actually been able to build this design in a week.

After talking with MIT's Environment, Health and Safety office, we had to change things up a bit.  The basic points from the meeting were:

  • It's too tall.  No more than three levels in total.  This was actually a surprise, since the fort built last year had a fourth floor.  When asked why, the representative from EHS said he was worried about how fast people would be going at the bottom.  However, when asked, he did not have a specific limit for ride speed he could give us.  It was unclear whether the structure could not be more than three floors tall, or whether the ride itself was constrained to this height.
  • No upside down people.  We said a sad goodbye to our hopes for a loop.  Getting a loop approved was always a long shot, but it would have been glorious.  They did not seem to care that the cart would be fully constrained to the track (as in there is no way it could fall off the track at the top of the loop) or that the person would be harnessed into the cart.  
 They needed some sort of updated pictures by the next day, so I quickly came up with a rough version of the new (and final) track shape, and threw it into a Solidworks model with the same rough tower design as the previous designs.

Once we had a vague "We will probably let you build this if a professional engineer approves it" from MIT, we started designing for real, down to the 2x4.

Behind general structural integrity, the strongest force directing the design was Design for Assembly.  We would have a week to build the entire structure, and the labor skill of the students and incoming freshmen who would be doing much of the construction would range from extremely competent to which direction does the drill point?.  So the entire giant assembly would have to be fairly tolerant of sub-optimal construction quality, and possible to build rapidly, with only two people (Wesley and myself) overseeing most of the construction.

Everywhere possible, the frame of the roller coaster uses stock lumber lengths (mostly 8')  As I found out from building the climbing wall (which had almost no uncut pieces of lumber), processing all the lumber with chop saws is a big time sink.  

The frame supporting the track is made up of about 20 frames of varying height, but similar construction.  These frames could all be built on the ground independently of each other, and then assembled one-by-one once they were finished.

The track would be supported by about 100 2" long segments that interpolated the curve of the track.  These track sections could be fabricated in an assembly line-type system using chop saw jigs and assembly jigs.

As you can see from the above rendering, the roller coaster's frame also had built-in work platforms, so the track could be assembled without ladders or scaffolding.  In the final construction these platforms had railings which were not shown in the rendering.

The actual track surface was designed to be bent from three overlapping layers of 3/8" thick plywood.  The layers of plywood are easy to bend one at a time, but when three layers are sandwiched together the resulting surface is very stiff.  The plywood overhangs the frame supporting it by 6" on each side.  The cart that rolls down the roller coaster had wheels underneath the overhang, to make it impossible for the cart to fly off the track.

With the design as pictured below, I went to the Cambridge building commissioner to let him look at the plans.  He was pretty un-phased by the roller coaster, and gave feedback like make sure your railings are at least 42" tall and your stairs need to have 7" of rise and 11" of run per step.  

With those changes made, we had to find a structural engineering firm to sign of on our designs, in order for both MIT and Cambridge to okay the plans for construction.  Before sending the plans to a professional engineer, we did some 2.001-level analysis on the critical parts of the structure - the joists and spandrels supporting the floors, the tower posts, the track structure beneath the high-load areas, and the track surface itself.  

Eventually a local structural engineering firm (started by some MIT alums) willing to look at our plans for free was found.  They gave us a bunch of feedback about our design and structural calculations.  Most of our design choices checked out with them, although there were a few features they asked us to add, like diagonal bracing on some parts of the frame.  They went through our calculations thoroughly as well, and pointed out some spots where we could have made different or better assumptions about the loading of the structure.

They also asked us to make some kind of absurd changes to the roller coaster's tower.  In the original design, we spec'ed 5/8" bolts to hold the spandrels supporting each floor to the posts of the tower.  Citing some wood-loading vs bolt size chart, they asked us to make all our spandrel-supporting bolts 1" in diameter.  Early East Campus wooden structures used 1/2" threaded rod as bolts.  My freshman year, they used 5/8" bolts.  The year after that, the (different) structural engineering firm that review their design asked them to use 3/4" bolts on the fort.  This year: 1".  At this rate, there won't be any wood left in the structures in a few years.  

Here's a look at the structure supporting a floor f the roller coaster tower:

The diagonal braces on the tower also had to be significantly beefed-up.  In the past, these have consisted of sketchily screwed in chunks of 2x4.  Now, they had to have 2 1" bolts at the post, and 4(!) 3/4" bolts at the spandrel. Seriously, why don't we just build this out of solid steel next year?

Despite my personal opinion that these changes were unnecessary and frankly absurd (in addition to costly: 1" bolts cost around $10 apiece), we didn't really have any choice but to make the changes.  After all, for the Cambridge and MIT to let us build this thing and have people ride it, we absolutely needed our plans to be signed off by a professional engineer.

It was worth it though when we got a letter to the Cambridge building commissioner, approving our structure:

Here's a pile of renderings because I felt like playing with PhotoView360 in SolidWorks:

Also some sneak-peaks of the actual roller coaster, as compared to renderings:

Photo credit: Rachel Davis
And finally, a shot of the roller coaster plus fort (designed by Lauren '16 and Amanda 15').  I was doubtful that we would be able to build all of this given our time and labor constraints, but somehow we did: