The Rossum Project / Papers / Calculations
/ Finding Differential Wheel Velocity

**Finding Differential Wheel Velocity as a
Function of Turn Angle and Radius and Constant Acceleration**

**By Mitch Berkson**

**Introduction**

The paper “*A Tutorial
and Elementary Trajectory Model for the Differential Steering System of Robot
Wheel Actuators*”[1] by
Gary Lucas derives equations for describing the path of a differentially
steered robot. Near the end of the
paper, the effect of acceleration is introduced.

Acceleration is not always negligible. Its effect increases as the distance over which acceleration grows towards the total turn distance. Depending on the interaction between the robot and its substrate, it may be desirable to use small acceleration to minimize slipping. For cases, like this, in which acceleration is not negligible, it is useful to derive the equation for differential wheel velocity for a desired turn angle given constant acceleration

These notes should be read with reference to Lucas’ tutorial paper mentioned above.

**Derivation**

A turn can be divided into three parts: 1) acceleration from the initial (pre-turn)
velocity to the constant turn velocity, 2) constant turn velocity, 3)
acceleration from constant turn velocity to final (post-turn) velocity. (Denoted t_{i}, t_{v}, t_{f},
respectively)

In order to control a robot, we need to know how to
accelerate the wheels and at what time in order to execute a specified
turn. Want to find v_{r}, v_{l},
t_{i}, t_{v}, t_{f}, a_{ri}, a_{li}, a_{rf},
a_{lf} as functions of q, r¢, b, v_{li}, v_{ri}, v_{lf}, v_{rf},
v_{t}, a_{w} where:

q = turn angle

r¢ = r + b/2

b = wheelbase

v_{li} = velocity of left
wheel at start of turn

v_{ri} = velocity of right
wheel at start of turn

v_{lf} = velocity of left
wheel at end of turn

v_{rf} = velocity of right
wheel at end of turn

v_{l} = velocity of left
wheel during constant velocity part of turn

v_{r} = velocity of right
wheel during constant velocity part of turn

v_{t} = velocity of robot
center during constant velocity part of turn

a_{w} = maximum
acceleration of a wheel

a_{ri}, a_{li}, a_{rf},
a_{lf} = initial and final accelerations of right and left wheels

First find v_{r} and v_{l}. During the unaccelerated portion of the turn:

q_{t} = v_{t}
t_{t} /r¢ where [1]

v_{t} = (v_{r} + v_{l}
)/2 [2]

Also:

q_{t} = (v_{r}
- v_{l} )t_{t} /b [3]

Substituting [1] and [2] into [3]:

(v_{r} +v_{l} ) t_{t}
/2r¢
= (v_{r} - v_{l} )t_{t} /b [4]

v_{r} = (2r + b)v_{l}/(2r
– b)

and substituting for v_{r} in [2]:

v_{t} = ((2r + b)v_{l}/(2r
– b) + v_{l} )/2

v_{l} = v_{t} (1 –
b/2r) [5]

Substituting [5] into [2]:

v_{r} = v_{t} (1 +
b/2r) [6]

t_{i} is determined by the time it takes for the
left or right wheel to accelerate from its pre-turn velocity to its constant
turn velocity. The one with the greater
velocity change will accelerate at the maximum rate a_{w} and the other
will accelerate at a (lower or equal) constant rate over the same time. It is assumed that the right wheel will
always be the one undergoing the greater velocity change (i.e., ïv_{ri}
- v_{r} ï
>= ïv_{li} - v_{l}
ï). Can find t_{i} and then the constant
acceleration of the other wheel:

a_{ri} = a_{w}

t_{i} = (v_{r} - v_{ri})/a_{w} [7]

a_{li} = (v_{l} - v_{li})/t_{i} [8]

We can now find how much the robot turns during the initial accelerated portion of the turn:

q_{i} = (t_{i}^{2}/2b)(a_{ri}
– a_{li} ) + (t_{i} /b)Dv_{i} [9]_{}

where:

Dv_{i}
= v_{ri} - v_{li}

q_{i}
= angle of initial accelerated portion of turn

Values for the final accelerated portion of the turn, by symmetry with the initial portion in [1] and [2] are:

a_{rf} = a_{w}

t_{f} = (v_{rf} - v_{r})/a_{w} [10]

a_{lf} = (v_{lf} - v_{l})/t_{f} [11]

Similarly, for the angle traversed during the final accelerated portion of the turn:

q_{f} = (t_{f}^{2}/2b)(a_{rf}
– a_{lf} ) + (t_{f} /b) Dv [12]_{}

Finally, we would like to find the time of the unaccelerated
portion t_{t}. The total turn
angle is the sum of the angles of the three portions of the turn, so:

q_{t} = q - q_{i}
- q_{f}
[13]

Also

q_{t} = v_{t}
t_{t} /r¢ and

t_{t} = r¢q_{t}/v_{t}
[13]

**Conclusion**

We have presented practical calculations for finding the parameters needed to execute a turn with a differentially steered robot. Constant wheel acceleration at the start and end of the turn is incorporated. This is useful for an accurate result in cases when the robot enters or exits a turn at a different speed from that during the primary turn execution.