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

! Steering Mechanism

A __steering mechanism__ is the mechanical means by which steering is accomplished. A normal automobile steers using what's called Ackermann steering. That's its mechanism as well as its mode, since that's the only way a car can steer. 

A steering mode is the manner in which steering is done. 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.

A 2 wheel differential drive robot (with a caster, or self-balancing) has one mechanism and one mode of steering:

* __Differential Steering__: where the difference in port-starboard wheel velocity determines the steering angle (which we'll call ''theta''). Because there's only two wheels there's no skidding.

If your robot has 4-6 wheels but only two motor controllers, i.e., all motors on each side operate at the same speed, that's:

* __Skid Steering__: this is like Differential Steering but because as the robot turns each of its wheels is going a different velocity in relation to the robot's velocity, it causes ''wheel scrub'', skidding or sliding like a tank.

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

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

* __Ackermann__: rear locked at 90° to center line of robot, front synchronised steering only
* __AFRS__: front synchronised, rear synchronised steering
* __Omnidirectional__: all steering axles pointing along the same axis
* __Sideways__: (AKA Crab or Strafing) all steering axles parallel (0°) with center line of robot. Sideways is a specialisation of Omnidirectional.
* __Skid__: (AKA Tank) all steering at 90° to center line
* __Rotate__: (AKA Spin or Center Pivot) all motors' axles point at the center of the robot (this would be 45°/-45° only if the robot is either square or circular). A 6 wheeler would have middle steering set at 90°
* __Forward Pivot__: front wheels at angles matching radius of turn, rear at 90°
* __Aft Pivot__: front wheels at 90°, rear at angles matching radius of turn

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