Robot Motion

1. Coordinate Frames

We define two coordinate frames:

We are interested in the robot's location: i.e. the transformation from to .

2. Degrees of Freedom

The degrees of motion freedom are the total dimension of the vectors needed to represent its motion:

A holonomic robot can move instantaneously in any direction in the space of its degrees of freedom. A non-holonomic robot has constraints on its motion (e.g. a car cannot move sideways).

3. Wheel Configurations

Wheel configurations are non holonomic.

3.1 Differential Drive

Differential Drive - two driving wheels on the left and right side, each has its own motor. Steering achieved by varying the relative speeds of the two wheels. Wheels at equal speeds run in a straight line, in opposite directions to turn on the spot, and different speeds to move in some arc.

This arc has radius and angle . We also know the distance between the two wheels. Without loss of generality:

Then can find the angle as:

3.2 Drive & Steer

Two motors, one to drive, one to steer. Cannot turn on the spot. Fixed speed and steering angle will follow a circular path. With four wheels, we need a rear differential and variable (Ackerman) linkage for steering.

For a tricycle, assuming no sideways slip, where:

Then, we have:

4. Wheel Velocity

The rate of rotation of a wheel (angular velocity ) gives the linear velocity .

In practice, we don't use this method to find the robot's speed, as there may be wheel slip. Instead, we use guided trial and error to work out scaling between the motor reference angle and distance travelled over the ground.

4.1 Motor Control

DC motors set the desired angular rate by applying a specific voltage. They use encoders (sensors) to measure and control the angular position and velocity.

The motor uses pulse width modulation to control the voltage supplied to the motor. This is done by switching the supply on and off at a high frequency. The average voltage is what controls the motor speed.

5. Planar Motion

On a 2D plane, we can specify its location state .

More generally, if we move along an arc of radius and angle then:

6. Path Planning

Position based planning: Assuming a robot has localisation (i.e. it knows its current state ), we plan a path by first rotating to face the goal, then moving in a straight line to it.

Position Based Path Planning Example

Given the current pose is and we want to travel to :

  1. First we must point towards the goal, taking care that (atan2): .
  2. So we must rotate by .
  3. Drive forward .

Local planning considers robot dynamics and possible changes in motion it can make within a small time . For each possible postions look ahead for a longer time . Calcualte the best trajectory based on distance from target and obstacles.

Global planning uses algorithms to determine the best path from start to goal, considering obstacles. Common algorithms include A*, Dijkstra's, and RRT (Rapidly-exploring Random Tree).

Back to Home