Steering

This is a page about robot steering. There are both steering mechanisms and steering modes.

There's also a Steering Calculation page describing some Python code for calculating the wheel angle for inner and outer wheels when turning using independent four or six wheel steering.

Goals#

The goals of most robot steering include:

(thanks to Calle on Personal Robotics for this list)

Steering Mechanism#

A steering servo mechanism (click to enlarge)

A Steering Mechanism is the mechanical means by which steering is accomplished.

Many robots and other vehicles have a steering mode that is the same as (i.e., is limited to) its steering mechanism. A normal automobile steers using what's called Ackermann steering. That's both its mechanism as well as its mode, since that's the only way a car can steer. For a four or six wheel robot with independent steering on each wheel, it's possible to mimic Ackermann steering, but also other styles, even "retrograde" styles such as Skid steering, e.g., to ignore the steering servos, lock each wheel at perpendicular/90° to the robot's centerline, and just use the different in port and starboard wheel velocity to change direction.

There's also Mecanum and Omni wheels, which provide alternative mechanisms for movement/steering.

For a Mars rover style robot, each wheel armature is mounted on an independent steering mechanism, using a servo.

Steering Modes#

A Steering Mode is the manner in which steering is done.

Lets enumerate some of the steering modes for a 4-6 wheel Mars rover style robot:

"Sideways" is obviously descriptive but doesn't sound quite right... but it's at least obvious what it means.

Steering via Velocity and Theta#

When programming movement of a robot it's possible to set each motor's velocity to Skid-steer the robot. So you might set the port (left) side velocity at 80% and the starboard (right) side velocity at 20%, causing the robot to turn to starboard.

When you add the availability of steering servos, things get more complicated. And this points out a better way of approaching the design of a robot's navigation, using two variables: velocity and theta (turning angle).

More on this later…

(BTW, the easy way to remember port and starboard is that "port" and "left" both have four letters.)