In a differentially steered robot, a tail wheel can either turn freely or be steered. Too often, free wheeling tail wheels will get stuck and start dragging at some point if the robot is negotiating a number of radically different turns. Backing up is a common situation where this occurs because the tail wheel must rotate 180 degrees in the very short time it takes the robot to reverse its direction. Using a steered tail wheel avoids this unsatisfactory situation because it insures that the tail wheel will always be properly aligned to the robot’s turn configuration..

**Calculating the Tail Wheel Angle for Any Given Turn**

**1.0 The Math:**

There are three distinct ways in which the robot can make a turn. It can rotate about its center (Case 1 below); it can pivot about one wheel (Case 2 below); or it can arc around a virtual point not located on the robot itself (Case 3 below). The examples for each of these three cases use the following nomenclature :

**VR **= speed of the right wheel

**VL **= speed of the left wheel

**b** = the distance between the two drive wheels i.e. the length of the drive wheel axle

**a** = the distance from the drive wheel axle to the tail wheel i.e. the length of the tail wheel arm

**r** = the radius of the circle inscribed by the tail wheel when the robot is in a turn.

**d **= the Case 3 virtual distance between the inside drive wheel and the center of the circle around which the robot turns.

**c** = the center of the circle inscribed by the bots turn.

**theta** = the angle subtended by **a** and **r**

**TW angle** = The tail wheel angle to steer = (Pi/2) – **Theta**. The tail wheel angle is zero or in the neutral position when the robot is moving forward in a straight line. A positive tail wheel angle is clockwise from the neutral position; a negative tail wheel angle is counterclockwise from it. For the tail wheel calculation examples below the tail wheel turns in a clockwise direction i.e. a positive angle. If the example motor values are reversed, the magnitude of the tail wheel angle is unchanged but the tail wheel turns in a counterclockwise direction i.e. a negative angle.

In Cases 1 and 2, the tail wheel angle to steer is a constant since it relies only on the fixed geometry of the robot – specifically the drive wheel axis length **b** and the tail wheel arm **a**. For programming purposes then, the Case 1 and Case 2 angles need only to be calculated once for any given robot configuration.

**2.0 Using the Servo4 Quick Set Servo Command Value – Left Turns**

** ****Note: Labels on the diagrams below are different from those above but the methodology and formulas are the same**

**3.0 Using the Servo4 Quick Set Servo Command Value – Right Turns**

**4.0 Conclusion**

The Quick Set Servo Command embeds the servo command value within the Quick Set command itself in the form **0***ppp:pp***ss **where the “** p**‘s” represent the five-bit binary value of the Quick Set command and the

**‘s represent the servo number 0 -3)**

*s***.**The pseudo code for converting the servo command value into the Quick Set Command format is:

**Quick Set = servo_cmd << 2 + Servo[**

**s]**

**.**