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 ti, tv, tf, 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 vr, vl, ti, tv, tf, ari, ali, arf, alf as functions of q, r¢, b, vli, vri, vlf, vrf, vt, aw where:

 

q = turn angle

r¢ = r + b/2

b = wheelbase

vli = velocity of left wheel at start of turn

vri = velocity of right wheel at start of turn

vlf = velocity of left wheel at end of turn

vrf = velocity of right wheel at end of turn

vl = velocity of left wheel during constant velocity part of turn

vr = velocity of right wheel during constant velocity part of turn

vt = velocity of robot center during constant velocity part of turn

aw = maximum acceleration of a wheel

ari, ali, arf, alf = initial and final accelerations of right and left wheels

 

First find vr and vl.  During the unaccelerated portion of the turn:

 

qt = vt tt /r¢        where                                                               [1]

 

vt = (vr + vl )/2                                                                          [2]

 

Also:

 

qt = (vr - vl )tt /b                                                                       [3]

 

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

 

(vr +vl ) tt /2r¢ = (vr - vl )tt /b                                                     [4]

 

vr = (2r + b)vl/(2r – b)

 

and substituting for vr in [2]:

 

vt = ((2r + b)vl/(2r – b) + vl )/2

 

vl = vt (1 – b/2r)                                                                       [5]

 

Substituting [5] into [2]:

 

vr = vt (1 + b/2r)                                                                       [6]

 

 

ti 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 aw 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., ïvri - vr ï >=  ïvli - vl ï).  Can find ti and then the constant acceleration of the other wheel:

 

ari = aw            

ti = (vr - vri)/aw                                                                          [7]

ali = (vl - vli)/ti                                                                          [8]

 

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

 

qi =  (ti2/2b)(ari – ali ) + (ti /b)Dvi                                              [9]

 

where:

Dvi = vri - vli

qi = 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:

 

arf = aw            

tf = (vrf - vr)/aw                                                                          [10]

alf = (vlf - vl)/tf                                                                           [11]

 

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

 

qf =  (tf2/2b)(arf – alf ) + (tf /b) Dv                                               [12]

 

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

 

qt = q - qi - qf                                                                           [13]

 

Also

 

qt = vt tt /r¢        and                                                                  

tt = r¢qt/vt                                                                                  [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.



[1] http://rossum.sourceforge.net/papers/DiffSteer/DiffSteer.html#d8