Skip to content
Peter Corke edited this page Jul 16, 2019 · 6 revisions

Spatial Math Toolbox for MATLAB

Many problems in engineering and physics require us to specify the position and orientation of some object.

  • Position is straightforward, in 2-dimensions it is simply two coordinates (x,y) and in 3-dimensions it is three coordinates (x,y,z).
  • Orientation is trickier. In 2-dimensions we need a single angle which we often call the heading or bearing angle. In 3-dimensions we need three angles, for example roll, pitch and yaw angles; but other mathematic objects such as orthogonal matrices and unit-quaternions have advantages over three angles.

The combination of position and orientation is called pose. Pose is always relative, the pose of something with respect to some reference pose (often called the world frame).

In robotics we might want to describe the pose of a mobile robot, the pose of the tool on the end of a robot arm, the pose of an object the robot is to pick up, or the pose of a camera watching the robot. Poses are relative, so it the arm was mounted on a mobile robot, then we can can compose or compound the pose of the mobile robot with the pose of the arm relative to the mobile robot to obtain the pose of the arm's tool with respect to the world frame. Similarly, if we know the pose of a camera, and the camera measures the pose of the object relative to itself, then we can determine the pose of the object in the world frame. If we know the pose of the base of the robot arm, then we can estimate the pose the robot arm needs to have in order to reach the object. All these problems are easily solved if we have a means to represent pose and to add (compose) and subtract them.

This Toolbox contains MATLAB functions and classes to represent orientation:

  • in 2D as orthogonal matrices
  • in 3D as orthogonal matrices, unit quaternions, triple angles, pairs of orthogonal vectors

and pose

  • in 2D as homogeneous transformation matrices, twists and matrix exponentials.
  • in 3D as homogeneous transformation matrices, twists and matrix exponentials.

The Toolbox also provides functions for manipulating these datatypes, converting between them, composing them, graphically displaying them, and transforming points and velocities.

The Toolbox supports two ways of working:

  1. using native MATLAB matrices
  2. using MATLAB classes

References:

Clone this wiki locally