Frames (Robotics)
A frame consists of an origin \(O\) and an orthogonal \(x,y,z\) axis, and is used to represent rigid body configurations. We assume all frames to be right-handed and stationary.
To represent the position and orientation of a rigid body in space, we first first a body frame \(\{b\}\) and a space/world frame \(\{s\}\). The configuration of the body is then given by:
- Origin of the body frame
- Directions of the coordinate axes of the body frame
Where both of the above are expressed in the space frame coordinates.
The position and orientation of an object's coordinate frame is referred to as its pose.
The relative pose of a frame \(\{A\}\) relative to \(\{B\}\), denoted \({}^A \xi_B\). Suppose we have a point \(\textbf{p}\), and represented relative to frame \(\{A\}, \{B\}\) denoted \({}^A\textbf{p}, {}^B\textbf{p}\) respectively. They are related by \({}^A\textbf{p} = {}^A \xi_{B} {}^B\textbf{p}\). More formally, \({}^A\xi_B\) is any mathematical object that can represent rigid body transformations.
In practical applications, one would have a frame for various entities for e.g. a frame for each joint of a robot, a frame for the camera of the robot and so on. This can be visualized as a collection of coordinate axes, with the world coordinate frame \(O\) fixed as the origin. The pose \(\xi_R\) would denote the pose of frame \(B\) relative to the world frame. This can also be visualized as a Directed Acyclic Graph, with each coordinate frame as the nodes, and the directed edges of the form \(O \rightarrow R\) is labelled with \(\xi_R\) and edges of the form \(A \rightarrow B\) labelled as \({}^A \xi_B\).
Below are the key aspects we need to represent with respect to frames:
- Orientations, represented via SO(n).
- Angular velocities, represented via so(3) or exponential coordinates.
- Rigid body transformations, represented via SE(n).
- Rigid body velocities, represented via twists.