Let's Make Robots!

How not to steer

 

I recently hacked some servos for fun, and wound up with a servo that could only turn 90 degrees. This seemed like a good candidate to use as a steering servo. I had never tried steering with a servo, but I'd seen it done. How hard could it be?

I started with my two servo-hacked, brainless gear motors with attached wheels, which I had hot glued together with a battery pack for testing.

Next I took the 90 degree servo and the front section of a broken toy car.

Simply connecting both gear motors straight to the battery, and the steering servo and front section to an R/C receiver, I had what looked like a very easy steerable platform.

Unfortunately, initial testing showed that no matter how I turned the front wheels, the little bot just pushed straight ahead.

I decided the problem was that the rear wheels were nice grippy rubber, while the front wheels were low-friction plastic. I added some electrical tape with the sticky side outwards to the front wheels.

Now surely it would work! And in fact it did work much better. Now my little robot could turn. Sort of. It wasn't perfect, and of course the electrical tape would pick up dust and dirt, and also would sometimes slip off the wheels. No matter! I had proved my point. More grip in the front and you can steer. I dug out some little rubber wheels I had lying around.

After adding these snazzy yellow wheels to the front, I figured I'd be all set. (It looks a bit like a tractor now, doesn't it?)

I hooked up the power and tested again. The results were... disappointing. The rubber wheels were pretty much as ineffective as the original plastic ones without the tape on them. Hmmm.

I thought maybe the side-to-side slop of the axle might be making the steering ineffective. So I added some bushings to use as spacers. You can see one bushing installed on each axle, and an unused one in front just to show you what they look like.

Oh, I also know that the two yellow wheels are different widths. I fixed this later, but it didn't make a difference. I also tried steering on different surfaces. It seemed to work a little bit better on wood floors, and even better on carpet. However, it still just wasn't reliable.

I finally realized that the problem was my front wheels were on a fixed axle. They could not rotate independently. So I came up with a new solution using some cut-off plastic wall anchors for mounts, and two bottle caps with wood screws for the wheels and axles.

Now that I had freely rotating independent front wheels, surely everything would be good. Right?

Of course not. The new wheels were plastic, and we were back to the problem that the didn't have enough grip to overcome the force of the two rear wheels driving forward. So, I added some "tires".

OK, I added some rubber bands, but on this scale it's the same thing.

This combination of freely rotating wheels and some grip on the front tires did the trick. I'll needs a more permanent solution, but this definately showed that my prototype worked.

The rubber bands fell off the left wheel at one point, and I could see that I could still turn to the right, but turning left became impossible. I tried again with more rubber bands on each wheel, and it worked acceptably well.

The video shows some of my tests. I hope you found this educational or entertaining, or both.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I admire your persitance, and ingenuity, ignoblegnome.

I can't think why it should have been such a problem, maybe weight distribution? Perhaps more weight over the front wheels?

In addition to the need for independently free spinning wheels, I think the yellow ones didn't work because the little nubs on them. Less of the tire is actually touching the ground, less contact area = less friction. I like your improv skills...very Macgyver-ish

I also used the gearbox and wheels from an rc car, but I made it a front wheel drive. It steers pretty well, but the wheels are made of grippy rubber. It will never turn in place like "tank" steering robot. The turning radius is at least as long as the distance between the front and rear axles (assuming an 180 degrees servo).

Is there a link where we can see a picture? This sounds interesting.

Did you take the rear wheels and gearbox of the RC car and mount them on a servo in front of the robot?

Yep, that's exactly what I did. I don't have any pictures now (I'm at work) but I think I posted one photo of it it somewhere in a comment, I'll search for it.

Now, I know rik has a great history making robots and all... but I think his explanations and drawings are a bit .... wrong. I will try to make some drawings myself... hopefully rik doesn't mind my criticism.

Don't exaggerate: check my robot record on LMR. Three so far... 8-(

I'm curious enough to learn more. And learning often means proving you're getting it wrong. Feel free to participate and contribute any time.

I just spent 30 minutes writing up a response then my session timed out (or something) and I got an access denied error on submit :) gaaah

Anyway, here is an image of almost-line-following, steering robot:

That's a line sensor in front of the robot, then the driving/steering wheels and the rear wheels which are unpowered.

There is a servo inside the yellow "neck", you can see it where it connects to the aluminium U piece, holding the front wheels.

The servo is powered from the arduino, and the motor is powered from a free-formed h-bridge plugged directly into the arduino.

The electronics ride on top of the battery pack (6 rechargeable Ni-MH cells)

The wheels are smallish but they have some very grippy rubber tires.

The chassis is made from 2x25mm aluminium and the yellow stuff is cardboard (from the packaging that the RC toy came in)

This is turning into a robot post so I'll stop now, before I run out of material for the actual robot node...

Consider the forces (arrows) at play here. The forward drive come from the wide wheel base in the rear. They are unstoppable. The little arrows are the sideways friction provided by the steering front wheels. If any.

Where should those little arrows be, in order to make any kind of difference to the direction this monster is driving?
- further outwards from the center line;
- further ahead, as to give a longer lever along the center axis of the bot.

Better yet, have the front wheels steer like a car. That way the width of the front train (as projected onto the rear wheel base) will never change. Even better-best, wiki "Ackermann Steering".

Ohh right, and put some friggin' weight on those front wheels!

Thanks for the lesson! That makes sense. The robot definitely handles less extreme turns better. If I push the turn all the way (about 45 degrees), sometimes one of the front wheels sometimes stop turning at all.

I'll have to play with extending the distance between front and back wheels. Time to break out the paint stir sticks. ; j

I did add some weight (and eyes) to the front, which helped make the turning more consistant over little bumps, but the major limitations of this type of steering are still very apparent.

This was just supposed to be a proof of concept, not a robot. However, now the little guy has a face, and I feel like taking him apart would be mean. Maybe I'll give him a brain and a sensor.

What about using the two servos to make a three-segment Articulated Steering System? At full left/right, the front wheels would be at ninety degrees to the rear wheels, making for a very small turning radius.