11 November 2012

MelonChopper: a High-Performance Reverse Trike

MELONCHOPPER!
Ever since the end of 2.007 (2.00Scooter) and the Cruscooter build, I've been looking for an excuse to put the experience I gained in designing an electric vehicle to good use. In 2.007EV, I had the opportunity to test out the motley array of vehicles my peers came up with. 
"Splinter Cell", Credit to Tyler Hamer (tyhammer@mit.edu)
Some of my favorite designs were my friend Tyler's wooden reverse trike (fun to drive and incredibly stable, but was severely underpowered and "steered like a battleship"), the melon*-powered Brickscooter my friend Bayley built (a scooter with a custom-built high-power motor controller), and the impressive David Wise/Jacqueline Sly Melonkart. (as the name suggests, it is a gokart driven by a melon motor). Also in the mix were class instructors Shane Colton and Charles Guan's TinyKart and Chibikart, respectively. 

*Melon: a Turnigy brand 80mm diameter class brushless outrunner motor from hobbyking.com, capable of outputting about 7kW of power. 

I wanted to combine the designs: make a gokart-style vehicle powered by a melon, with a custom controller, that happened to be a three-wheeler. 
Because reverse tricycles are freaking badass
The Reverse Trike (Probably the incorrect name, usually actually called "Tadpole" configuration) gokart geometry is pretty much just like that of a regular 4-wheeled gokart. The front two wheels steer just like a normal 4-wheeled vehicle, and instead of powering two rear wheels through a differential (Which is a complicated device to make or find), there is a single powered wheel in the center. This offers both simplicity and stability, though you still need to deal with two-wheel steering, which is never trivial. 

This is WAY more stable compared to a regular tricycle geometry (Also referred to as Delta geometry), where the rear two wheels are kept facing the same direction (and can be driven through a differential if you'd like) and the front wheel steers. Assuming your configuration contains no leaning (which would mitigate these issues somewhat), if you build up enough forward momentum and want to make a turn, there is the possibility of tipping over the vehicle the opposite direction of the turn. 

An excellent analysis of Delta vs. Tadpole trike configurations can be found here: http://www.jetrike.com/tadpole-or-delta.html


Here's what I came up with. The six A123 ALMs are there for no reason other than to get an estimate for the storage capabilities. I first put together the basic structure, defining parts to pretty imperial lengths with little though, making this preliminary splatter of ideasauce more art than engineering. The wheelbase is reasonably wide for stability while keeping the 8020 happy. 

I used 10" pneumatic tires instead of the trusty 8" ones on my scooter to give me a bit more added traction when maneuvering at high speeds. The tractor seat is one I found randomly on MIT campus for free. The 8020 framing is all held together by waterjet aluminum plates a la Chibikart and Tinykart. 


Here you can see the basic steering mechanism and uprights close up. The uprights are pretty much copied from Chibikart's: stacked plates enclosing a steel hex cap bolt (which is the axle). It's a solid design, so I just scaled it up to work with the larger 5/8" shafts required for my 10" wheels. 

Now I needed to work on the steering geometry. For most cars/gokarts, Ackerman Steering is used to make sure both wheels experience minimal slippage (translating to damping losses and wear on the tires) when turning. To get the whole Ackerman Steering geometry going, I used the following simple diagrams off the Wikipedia page: 
See how the front wheels are angled slightly differently?
Thank you Wikipedia for pretty and useful diagrams! 
This tells me that when the kart is steering straight forward, the line created by the steering pivot point and the tire rod pivot point should pass through the center point of the rear axle. To get this working with Melonchopper, I temporarilyforced the front wheels to be parallel and face straight. I then computed the required angle needed for the above-described line to work.

Now it was time to really flesh out the steering. Here you can see my initial Designarrhea, before my hours of tuning which actually took into account the fact the the vehicle's operator has legs. I took my "no need to reinvent a perfectly good wheel" approach even further, basing the steering column/tirerod assembly almost directly off of Shane Colton's TinyKart. 


However, rather than decouple part of the tire rods to certain axes, which Shane did to allow part of the tire rod to remain completely planar and pass beneath Tinykart's frame, I opted for a single set of tire rods which passed under the driver's legs. The lower and more planar I could place the tire rods, the better, because less nonlinearities show up in the steering configurations. Remember, small angle approximation! (See the link to Chibikart above, where the steering linkages are almost exactly planar.)

Melonchopper, now with More Legit Steering.
With some tuning, I was able to get the steering wheel in a comfortable position while removing much of the nonlinear behavior usually seen in this not-planar nonideal steering configuration. 
Driver's view. Pretty sweet looking for my derpy design process, right?! 
To test the minimum turning radius (sharpest turn I can perform) and whether or not the steering behavior remained consistent throughout the entirety of the turn, I took the long plates in the uprights and mated them to the kart's structure, where they would hit in real life to limit the steering. 
Turns out I can steer pretty sharply while still maintaining the behavior I desire! One issue both Melonkart and Splinter Cell had (to different degrees) was the steering geometry "toggled" to a strange, nonlinear configuration before the uprights hit the physical limits of the geometry (usually the outer wheel was angled more than the inner wheel, which we lovingly dubbed "Anti-Ackerman" steering in 2.007). In my steering configuration (which, admittedly, took HOURS of tuning to get right), the toggled configuration only exists beyond the physical limits of steering imposed by the kart's frame. Therefore, no Anti-Ackerman mode for Melonchopper! 

The above picture also accurately demonstrates the usefulness of the Ackerman steering geometry: note the left(starboard) wheel is angled a little more than the right wheel. 
More POV steering action!
He's going to KILL me for posting this pic :p
Oh yeah, there's a whole other side to this project, the Motor Controller! This enthusiastic fellow is Bayley Wang, fellow MITERS denzien, taker of 2.007EV (He made Brickscooter) and self-proclaimed high voltage expert. Just look at this cute Tesla coil he and some friends designed, meant to be a coil design highschools everywhere can easily use: 


Bayley is designing the motor driver with one thing in mind: 7 KiloWatts, which is the full rated power of the Melon motor. Why is this a YAMEB-Certified Big Deal? MITERS has never ever seen the full power of a Melon motor, and this is the perfect excuse to make the 70-volt 100-Amp motor controller we have all been dreaming of. With my mechanical design and his electronic magicking, Bayley and I make an excellent team.    

Just to demonstrate how much of a Big Deal this controller is, let's plug it into WolframAlpha with a 15-tooth sprocket on the Melon and the stock 55-tooth sprocket available on the Razor E300 10-inch wheel we're planning on using.

Mother of God...
So, after some highway cruising, we'll stop in New York City for a Broadway Musical, then Of course, we don't actually plan on using this gear ratio. We ended up with something like a 9/110 gear ratio, giving us a ~35MPH top speed and 2MPH minimum speed. And SHITTONS of torque. I'm seriously dreading the day I do my Garage Run. 


Oh and we got full ($500.00) Techfair funding for this project. Which is totally enough to get all the parts and stuff. Booyah I can't wait to do some snow drifting this January!

09 November 2012

Raspberry Pi!


I got a new job at the Biomechatronics Group in the MIT Media Lab. But that's not what this post is about, it's about the 
RASPBERRY PI!

What is a Raspberry Pi, you ask? 

SO CUTE! ^_^


A Raspberry Pi is a full Linux computer the size of a wallet. Its 700MHz (256MB RAM) ARM CPU/GPU runs off a 5-volt 1-amp power source, like a phone charger. It has a built-in ethernet, USB, HDMI or composite video out, a useful GPIO (So you can set use IO pins like an Arduino, use UART, SPI, I2C, and other communication protocols). You can plug in a USB hub to use flash drives, keyboard and mouse, a WIFI adapter, an external hard drive...

It's supposedly $25.00 from the manufacturer, but an Amazon search puts us at $79.95 for the latest one, Rev B. Not bad for Amazon Prime free 2-day shipping. As for availability, it tends to go out of stock often. I feel this was a bigger issue in the past, though. 

I also highly recommend purchasing Raspberry Pi User Guide, written by Eben Upton, Co-Creator of the RPi. It not only details the RPi itself, but the recommended modified version of Debian Linux it runs. The Raspberry Pi and this book is an excellent way for anyone to become learned in Linux and python, two skills I deem highly valuable in being able to get things done. 

The Raspberry Pi is a really nice next step up from an Arduino in terms of DIY Electronics projects. The RPi is perfect for hobbyists looking to use the massive catalog of software available for Linux with the simplicity and speed of Arduino. Funny thing is, this Raspberry Pi is being used for Legit Research. (We're using a $800.00 Maxon motor, a $740.00 Servo Driver/Controller, an external fabrication shop to make our parts...)

After a few attempts to flash the RPi "Raspian" Raspberry-infused Debian OS onto a 32GB SD Card (The main storage method of an RPi), I managed to get write the image in Windows. 

After booting up the Pi, you log in with user "pi" and password "raspberry", and are at the main command line. To start the LXDE GUI, type in "startx". 
YAY!
It comes with Python IDLE, Midori web browser, and other useful little tidbits. It's an $80 Linux box the size of a wallet running on all solid state hardware (No spinning hard drives to deal with). Catch is, it's SLOW. 

Doing anything on this reminds me of back when my primary computer ran Windows ME. Those were dark days indeed...

However, this thing is so tiny, so cute, so inexpensive, so available, and so powerful for the size, that I am SO putting one of these on a robot one of these days.

05 November 2012

Solidworks to URDF Exporter! (& Future Projects)

I use Solidworks extensively in my mechanical designs, and I've used ROS before in the context of mobile robotics. Given my love for armature robotics, I will soon be using ROS for visualization, control, and planning. 

Now imagine my glee when Willow Garage announces the fruit of one of their summer 2012 interns's efforts: a Solidworks to URDF Exporter!




URDF is an xml-style file format for representing the mechanical properties constraints of your robot. For example, you can have a number of links tied by some revolute joints (generic serial link robot), or a base link with many children and degree constraints for each DOF (Like a robotic human hand). Mobile robots can even utilize URDFs for determining where certain sensors are relative to the base link, etc. TurtleBot's pre-written URDF file contains information on where the wheels are relative to the base link, as well as the position of the Kinect, for the odometry and vision code to use when calculating position or detecting objects. 

For more information on URDF, check out this presentation from ROSCon 2012: 




And It's available like right now right now. I download the file in the above link and try to install it, but: 



DAMMIT. I'm running an x86 OS (32-bit) and this program requires a 64-bit OS. I may try to rebuild it from the available source (YAY OPEN SOURCE!) or even modify the code if need-be. Or I can wait until the 32 bit version is released, even email the developer and see if he needs help/motivation in the 32-bit implementation. 

Also, I want to intern for Willow. They're a kick-ass company, and I believe in their vision for how (the royal) we will advance the field of robotics, through corporate backing open source research. I'm a bit nervous to apply just yet, because I feel I can offer them so much more to judge me by if I apply after I've finished playing with my TurtleBot and using ROS to command TinyArm and design and build DeltaBot and-

DeltaBot? What's that?! 

DeltaBot is a future personal project of mine, scheduled to be completed by the end of January 2013 at the latest. 

It's this: 



A Delta robot is a parallel linkage robot used in manufacturing which has 3 DOFs, X Y and Z. No rotation in this configuration. 
But mine will be on the scale of this one:



Which is a design I really like and am going to use as my main reference. In fact, I want to contact the make of the above little Delta robot and commend them on how nice their design is. When you stand on peoples' shoulders, best thank them and let them know what cool things their efforts paved the way for =].

Mine will be commanded by 3 of the 7 Pittman motors I bought a couple weeks ago. They will be geared down to allow a higher encoder resolution and payload, and controlled by my trusty XMega16a4u because I have experience with the chip, it runs at 32 MHz leaving me plenty of speed for high-precision motion, has 3 built-in quadrature encoder decoders, and I still have a bunch leftover from my TinyArmTroller project. 

OH and I got a few samples of these from TI, which have integrated gate drivers and everything. At 12 A peak, 6A continuous, these are perfect for the 10A peak Pittman motors.

SO MUCH BLOGGAGE COMING SOON! ENCODER DECODING! MOTOR CONTROL! KINEMATICS! YAY!

Oh, and I want to control it with this interface: 



Yupp. Freaking sick, right? The future is bright! Blog post on DeltaBot's design coming as soon as I design DeltaBot ^_^!