Wednesday, July 13, 2011

Stuck on Steering

Well, as usual it appears that I've been to hasty in my robot building and have made a few mistakes. I met up with one of my mechanical engineering friends the last weekend, and after examining the chassis together we discovered the reason why the force required to turn is so high. Because the aluminum bars are so tight on the chassis structure, they're causing a great deal of friction when the front wheels are rotated. Worse yet, if I file out the inside of the aluminum crossbars, it'll decrease the friction, but the chassis will become more unstable. The two of us deliberated on several different methods of overcoming this solution.

Tons o' Torque:
I could get a motor with a ton of torque, such as a window motor, and just have it overpower the friction.

These are the motors that lift and drop automatic car windows. I have experience using them in robots for the FIRST Robotics Competition. They're strong enough to handle moderately heavy loads, though maybe not strong enough to steer the robot with all of the frame's friction.

While this may have been the easiest solution, requiring that I only purchase a window motor and possibly gear it down, using brute force would merely cover up the problem instead of actually solving it.

Reverse Tricycle:
I could modify the frame and turn it into a reverse tricycle design, much like a K'NEX robot I built to mess around with a while back,

K'NEX are a phenomenal prototyping (and in some cases, build) material.  I made this robot as a simple test bed for project ideas.  It's driven by two K'NEX motors in the front.

My friend and I actually discussed this option for a while. There were a lot of benefits to switching to this system.

  • Having only one wheel in the back would greatly increase the mobility of the robot
  • The rear wheel could be used as a sort of rudder to direct the steering of the robot, but by turning the wheel perpendicular to the front wheels, differential drive could be used on the two front wheels, greatly increasing the mobility of the robot
  • Front wheel drive is generally more controllable in cars
  • Three points are always guaranteed to be in the same plane, meaning that each wheel of the robot would always be on the ground, eliminating any "wobble"
  • A triangle is the most inherently stable shape, and therefore the frame would also be very stable, at least in the plane of the base.
As ideal as the reverse trike design seems to be, I decided not to go with it due to several reasons, most having to do with the third, unpowered wheel. For starters, the back wheel of the robot would either have to be a type of caster (a wheel that follows the direction it's pulled in), an omniwheel (wheel that can roll in any direction) or a steerable "rudder" type of wheel.

Right off the bat the first two options can be eliminated due to availability. Power Wheels Jeeps are known for their "offroad" capabilities, which I would like to extend to the robot. However, most casters and omniwheels are small and made for smooth surfaces, meaning I would have to build my own for either option. In addition to this major reason, casters are more difficult to use because, as anyone who had those plastic unpowered cars when they were a kid will know, they make turning more difficult. For example, if the robot is going forward, the caster will be following this direction with it trailing behind its axle. However, if the robot were to move in reverse suddenly, the caster would need time to swivel around so it was trailing in front of its axle. While this isn't too much of a problem for small casters, the larger the wheel gets the larger the radius that the wheel has to swivel at, and the more difficult changing direction becomes.

As for the steerable rudder option, the turning of the rear will would still take a decent amount of torque to turn, especially since one less wheel means the weight that the fourth wheel was holding is placed on the other three. Because of this required torque, I would still need to get a window motor and possibly even gear it down, resulting in a robot that has to wait for the rear wheel to rotate before it can make any significant turns.

Differential Drive:

And last but certainly not least, I could spend a bunch of money on a set of two more Power Wheels motors and gearboxes, hope that they run the same speed as the set I already have, and change the robot from car steering to differential steering.

Differential steering is when the wheels on the left side and the wheels on the right side are independent from one another and can either work together or with one another to steer. For example, if the left wheels are moving backwards and the right wheels are moving forwards, the robot will steer to the left, and vice versa. In addition to running in opposite directions, one set of wheels running at a higher or lower speed than the other set will have a similar, but smaller, effect, a useful idea that can be used for slight adjustments in direction.

While this is certainly one of the more expensive risky solutions to the steering problem, I'm confident that it's the best option at this point in time, mostly due to the great maneuverability of differential steering. Differential steering provides the smallest turning radius of all steering methods. The turning radius of a vehicle is actually the diameter of the circle that is created when making a turn.

For example, the turning radius of a car is proportional to the amount that the steering wheel is turned. The more turn on the wheel, the sharper the turn and the smaller the turning radius. A smaller turning radius means more maneuverability because the vehicle requires a smaller amount of space to turn or change direction.

Differential steering, on the other hand, can have a turning radius the size of the robot itself! If the wheels are moving in opposing directions at the same speed, the center of the robot body becomes the pivot point and the robot can turn in place. This results in the robot having the maximum amount of maneuverability possible, because it only needs a circle the size of its length to turn around; especially handy if it gets caught in a tight spot!

As for the detriments of setting up differential steering, I managed to find a pair of Power Wheels motors and gearboxes online for $75. In the event that the two sets I have don't run at the same speed, I could always do some slight modifications to solve this problem, such as varying the voltage to the faster motor to make it run slower, or increasing the wheel radius of the slower motor so it covers more distance with each turn. While neither of these solutions are elegant, there's still a chance they won't even be needed and it is certainly worth the risk to increase the maneuverability of the robot (I also never really liked the idea of car steering, kinda stupid and ugly for a robot, in my opinion).

However, it'll be about a week before the motors arrive for me to work on, at which point I'll need to figure out how to couple them with the wheels, build an axle, possibly rework the chassis, etc. In the mean time, it's time to take a welcomed break from the mechanical engineering and start back to work on some of the embedded systems I've been working on.

Monday, July 4, 2011

Classy Chassis

While the original Power Wheels Jeep covering was nice and all (sexy flame decals!), I got around to thinking that it was due for an upgrade.  The heavy mass of plastic weighed down the 'bot a good deal and really limited the placement options for various parts I've been hoping to add.  And so, two weeks ago some friends of mine came over to take a look at my pet project and we managed to pry off the plastic body of the Jeep.  It actually came off surprisingly easy.  It was only held on by four or so small washers underneath some plastic pieces.  Once those are pried off you only have to disconnect the steering shaft from the front wheel steering bar and the plastic just pops right off.  Here are some pics of the newly liberated frame.

Bare bones frame (Notice the four vertical poles, one at each wheel)

Torn off plastic from the Jeep

My old roomate(left) and MechE friend(right) standing over the remains of the Jeep

The workshop is no place for a woman!  Kidding of course, my girlfriend actually helped a fair bit with some soldering

The only problem with this frame the way it is is the fact that there's no support from the center, and no bracing, which basically means that while the frame should basically be a rectangle, any force from the side can shift it, causing it to take on the shape of a parallelogram.  And so I figured I'd buy some cheap aluminum, drill some easy holes, and get a fairly effective cross bracing system working.

1.5"x1/16"/6' Aluminum, about $10 from Lowes

Measuring and drilling the holes for the four vertical support poles on the frame proved to be far more difficult than I had anticipated.  Turns out that the poles had a lot of play, and this shifting made it very difficult to properly measure the distances between them.  It also turned out to be very difficult to widen the holes without any metal files so I had to use a drill instead.

Pictures of the two side braces in place.  These served mostly to add extra support to the cross braces and  the foam board layer that goes on top.

Here are some pictures of the cross braces once they had been put in.  However, after four hours of filing with a drill bit, I had pretty much had enough and gave up on doing side braces to make a rectangle.  They're also not really necessary since the frame came with some nice steel ones.

I also soldered some longer wires onto the motors to make them easier to access and plug into the batteries.

I cut out two layers of foam core board in the shape of the robot

The foam board mounted onto the robot.

Here's the junction between the top board and the frame.  Depending on how rough it handles while it's driving, I might install some springs at this junction to act as a sort of suspension system.  This will make the on board components, electronics, and especially my computer, less prone to wear and tear from vibrations and sudden jolts and movement.

So while this probably won't be the final frame design for the robot, it's at least a good prototype to work off of for now.  I'm currently in the process of figuring out a method of steering.