The Rossum Project / Papers / Calculations / Compendium

Rev 1.0 January 16, 2006 
A Compendium to “Calculations Useful for Robotics” A compact and convenient compendium of calculations culled from accompanying articles

Some Variables and Coefficients Used in These Calculations
Kinematics and Related Calculations
Trajectory Following an Arc of a Circle
Trajectory Following a Cubic Polynomial
A Differentially Steered Drive System (with Odometry Calculations)
Inverse Calculations (Odometry Calculations)
Except where otherwise noted, the following variables and coefficients are used in the calculations given below. While units don’t usually matter, angles are always measured in radius in a righthanded coordinate system (some results depend on this assumption).
Variable 
Description 
_{} 
Coordinates for position of robot. 
_{} 
Orientation of the robot (in radians). 
_{} 
Speed of the robot (always positive) 
_{} 
Linear velocity of the robot (positive in forward direction) 
a 
Linear acceleration of the robot 
_{} 
Rotational velocity of the robot 
_{} 
Rotational acceleration of the robot 
_{} 
Time variable. 
_{} 
Set of parameters giving robot’s state – position, orientation, velocity, and rotational velocity – at time 
_{} 
Velocity vector (combines speed and orientation). 
_{} 
Robot’s position, x and ycoordinates as a function of time. 
_{} 
Robot’s speed as a function of time. 
_{} 
Robot’s acceleration as a function of time. 
_{} 
Robot’s orientation as a function of time. 
_{} 
Robot’s rotational velocity as a function of time. 
L 
Path length 
Reference: None
Description: Simple calculations for a trajectory following a straight line. Fixed velocity, zero rotational velocity.
_{}
Given two points _{} and _{}
Length of path (distance between points or range from first point to last)
_{}
Bearing
_{}
The arc tangent, or inverse tangent, is sometimes written
_{}
In computational environments, the ATAN2 functions may be used.
_{}
Description: Calculations with a fixed linear and rotational velocity.
Reference: Supplement to “A Path Following a Circular Arc” Using Calculus Methods
_{}
Note that the term _{} is a signed quantity equivalent to the turn radius for the path.
Reference: A Path Following an Arc of a Circle to a Specified Range and Bearing
Given a fixed speed _{} and points _{} and_{}, find a circular path to target. Assume forward motion (see below).
Obtain range _{}and bearing _{}to goal position. Bearing should be in range _{} (180° to 180°).
Total rotation for trajectory
_{}
Turn radius (a signed quantity)
_{}
Linear distance of travel (length of circular arc)
_{}
Compute delta time for travel
_{}
Compute rotational velocity
_{}
Find a function giving orientation as a function of time
_{}
Find a function giving position as a function of time
_{}
Special case: If the goal is behind the target then it may be more efficient for the robot to travel backward rather than forward. We do not change the value of the turn radius_{}, but we do adjust _{} to reflect the fact that the robot will be traveling a shorter distance in the opposite direction.
_{}
Description: A trajectory defined by a thirddegree polynomial. Speed and acceleration are allowed to vary.
Forward calculations are in the general form.
_{}
There are many ways to obtain thirddegree polynomials for modeling a robot or vehicle trajectory. The following results assume that endpoint conditions are fully specified and so constitutes a forward kinematics treatment. Position, orientation, and speed values for times _{} and _{} are given. The derivation that follows produces a smooth path that resembles the classic cubicspline method used for curve fitting (see picture below). Motion is always forward. See reference article for detailed explanation.
Let
_{}
_{}
Then velocity and position calculations are given by
_{}
_{}
The discussion on forward calculations above assumes that the duration time for the maneuver is known (and, thus, that the termination time _{}is available). It is far more common that the duration time is unspecified and that the maneuver is constrained by performance issues related to the device (maximum speed or acceleration values). A duration time can be estimated using the results from the Trajectory following an arc of a circle notes above. Once an estimate is available, evaluate the resulting maximum speed and accelerations to see if they are within acceptable limits.
Taking _{} and _{} as the specified velocity vectors at the initial point and final point
Let
_{}
And
_{}
_{}
_{}
_{}
Use
_{}
Recall that the term _{} is equivalent to the specified speed _{} at the corresponding point.
Description: A model for differential steering system (wheelchairstyle steering and drive system).
Let
_{} 
be the rotational velocities of the left and right wheel, respectively 
_{} 
be the radius of the wheels (assumed equal for both) 
_{} 
be the distance between wheels (measured from tire center to tire center) 
Assuming a constant rotational velocity for the wheels (and, thus, constant linear and rotational velocity for the robot)
_{}
Note that these equations follow the form described in Trajectory Following an Arc of a Circle above.
The term _{} is a signed quantity equivalent to the turn radius for the robot.
Given measurements from an encoder (odometer device), and assuming a constant rotational velocity for the wheels, we can estimate position and orientation using the following calculations
Let _{} be the measured
rotation of the left and right wheels, respectively.
Then
_{}
When _{}the robot does not turn, but follows a straightline path
_{}
Copyright © 2006 by G.W. Lucas. All rights reserved.