Kinematics

Kinematics

  • Kinematics is very important for modeling robot position, frames, links, and joints.

  • Kinematics involves:

    • Describing a task.

    • Using models to determine the position and orientation of the end effector.

    • Transforming descriptions between links.

    • Representing position and orientation.

Manipulators

  • A manipulator is defined by a set of links connected through joints.

    • The first link is fixed (the base).

    • The last link is the gripper (end effector).

  • The purpose of the manipulator is to move the gripper in space for manipulation, though links themselves can be used.

Joints

  • Two primary types of joints:

    • Revolute joints: rotation about a fixed axis (one degree of freedom).

    • Prismatic joints: translation along a fixed axis (one degree of freedom).

  • Any set of joints can be reduced to these two types.

Links

  • nn represents the number of moving links plus the base link (fixed link).

  • Working with one degree of freedom joints allows connecting them to generalized coordinates.

  • A spherical joint has three degrees of freedom and can be represented using three revolute joints with zero link length.

Representing Manipulator Configuration

  • The configuration of the manipulator needs to be represented with respect to a fixed frame.

  • One approach involves fixing each link individually using multiple vectors (e.g., three vectors at three different points).

    • This requires nine parameters (three parameters per vector in 3D) per link, totaling 9n9n parameters for nn links.

Configuration Parameters

  • Any set of parameters that fully describes the configuration is a set of configuration parameters.

  • A minimal set of independent parameters is desirable.

Generalized Coordinates

  • Generalized coordinates are a set of completely independent configuration parameters.

  • They are useful for dynamics and directly indicate the number of degrees of freedom of the robot.

Degrees of Freedom

  • To determine the number of degrees of freedom, imagine removing the joints, leaving nn rigid bodies in space.

  • Each rigid body requires six parameters to describe its position and orientation (three for position, three for orientation), totaling 6n6n parameters.

  • Placing the joints back introduces constraints. Each one-degree-of-freedom joint introduces five constraints.

    • Revolute joint: three position constraints and two rotation constraints.

    • Prismatic joint: five constraints as well, eliminating two rotational and three position degrees of freedom.

  • Total degrees of freedom: 6n5n=n6n - 5n = n.

  • For a manipulator with a fixed base and one-degree-of-freedom joints, the number of degrees of freedom equals the number of joints (nn).

  • For a humanoid robot, if the base (one foot) is fixed, the same logic applies. However, if the base is free to move, there are six additional degrees of freedom (n + 6), though these are not actuated.

End Effector

  • The end effector is the last rigid body.

  • It has the freedom to position and orient itself.

  • A frame attached to the end effector rotates with it, describing its position and orientation.

  • The end effector has at most six degrees of freedom, depending on constraints.

End Effector Configuration Parameters

  • The configuration of the end effector can be described using configuration parameters or generalized (independent) coordinates (task or operational coordinates).

  • With mm parameters describing the position and orientation of the end effector with respect to a fixed frame as configuration parameters.

  • Examples:

    • Three Euler angles (or fixed angles) for orientation plus X, Y, and Z for position (minimal representation with six parameters).

    • Three vectors to three different points (nine parameters, non-minimal).

    • Euler parameters (four parameters).

    • Direction cosines (nine parameters for orientation) plus position (three parameters), totaling 12 parameters.

Operational Coordinates

  • Operational coordinates (or task coordinates) are a set of independent coordinates that describe the position and orientation of the end effector where the task is defined.

  • This involves an operational point where the robot is acting.

  • If m0m_0 represents the number of independent parameters, it also represents the number of degrees of freedom of the end effector.

  • For a robot moving in 3D space with six degrees of freedom, the end effector can be positioned and oriented anywhere (maximum six degrees of freedom).

  • For a planar robot, the end effector has three degrees of freedom (X, Y, and one angle).

Redundancy

  • If one more joint is added to the robot, the end effector position is fixed, but the robot configuration can vary due to redundancy.

  • A robot is redundant if the number of degrees of freedom of the robot nn is greater than the number of degrees of freedom of the end effector m0\, m_0.

  • Redundancy enables the robot to avoid obstacles. The degree of redundancy is measured by the difference between n\, n and m0\, m_0.

Vector Representation

  • A point in space PP is defined with respect to another point (origin) represented by a vector P\, P.

  • Changing the origin changes the vector.

Coordinate Frames

  • Vectors can be expressed with respect to a coordinate frame (X,Y,Z)(X, Y, Z).

  • Changing the orientation of the frame changes the components of the vector.

  • Transformations are used to relate descriptions in different frames.

  • Orthonormal frames are used.

  • Transformations must account for rotations and translations of the frame.

Rigid Body Transformation

  • A frame BB is attached to a rigid body.

  • Need to describe frame BB with respect to a fixed frame AA.

  • The vector PAP_A locates the origin of frame BB with respect to frame AA , described in frame AA .

  • The orientation of frame BB is described by the vectors X<em>B,Y</em>BX<em>B, Y</em>B, and ZB\, Z_B, also described in frame AA .

  • The rotation matrix is used to describe these rotations.

Rotation Matrix

  • Focusing solely on rotations:

    • The rotation from frame BB to frame AA is described by a 3×33 \times 3 rotation matrix with components R<em>11,R</em>12,R<em>13,R</em>21,R<em>22,R</em>23,R<em>31,R</em>32,R33\R<em>{11}, R</em>{12}, R<em>{13}, R</em>{21}, R<em>{22}, R</em>{23}, R<em>{31}, R</em>{32}, R_{33}.

    • The vector XBX_B defined in frame BB is transformed to its description in frame AA using the rotation matrix.

    • Mathematically, this is written as: X<em>B defined in frame BRotation MatrixX</em>B defined in frame AX<em>B \text{ defined in frame } B \xrightarrow{\text{Rotation Matrix}} X</em>B \text{ defined in frame } A

    • Where \XB in frame BB is (1, 0, 0), \YB in frame BB is (0, 1, 0), and ZB\Z_B in frame BB is (0, 0, 1).

    • This implies that the rotation matrix is composed of the components of the axes X<em>B,Y</em>B,ZBX<em>B , Y</em>B , Z_B in frame AA.

    • The rotation matrix from BB to AA is the component of X<em>BX<em>B in AA, the component of Y</em>BY</em>B in AA, and the component of ZBZ_B in AA.

    • The element in the rotation matrix is obtained through the dot product between the vectors of the two frames.

    • R=[X<em>BX</em>Aamp;Y<em>BX</em>Aamp;Z<em>BX</em>A X<em>BY</em>Aamp;Y<em>BY</em>Aamp;Z<em>BY</em>A X<em>BZ</em>Aamp;Y<em>BZ</em>Aamp;Z<em>BZ</em>A]R = \begin{bmatrix} X<em>B \cdot X</em>A &amp; Y<em>B \cdot X</em>A &amp; Z<em>B \cdot X</em>A \ X<em>B \cdot Y</em>A &amp; Y<em>B \cdot Y</em>A &amp; Z<em>B \cdot Y</em>A \ X<em>B \cdot Z</em>A &amp; Y<em>B \cdot Z</em>A &amp; Z<em>B \cdot Z</em>A \end{bmatrix}

    • The rotation matrix is either the component of BB in AA or the transpose of the rows of AA in BB.

    • The inverse of the rotation matrix from BB to AA (i.e., from AA to BB) is simply its transpose: R<em>BA1=R</em>AB=RBAT\R<em>{B \rightarrow A}^{-1} = R</em>{A \rightarrow B} = R_{B \rightarrow A}^T

Example

  • Consider a rotation where X<em>BX<em>B and X</em>AX</em>A are aligned, Y<em>BY<em>B is along the ZZ-axis, and Z</em>BZ</em>B is along the negative YY-axis.

  • The rotation matrix from BB to AA is:
    R=[1amp;0amp;0 0amp;0amp;1 0amp;1amp;0]R = \begin{bmatrix} 1 &amp; 0 &amp; 0 \ 0 &amp; 0 &amp; -1 \ 0 &amp; 1 &amp; 0 \end{bmatrix}

Rigid Body Representation

  • A frame BB is fully defined with respect to frame AA by combining the rotation matrix from BB to AA with the location of the origin of BB with respect to AA.

Mapping

  • A rotation matrix allows describing the same vector (a vector PP) in two different frames.

  • The vector \P is described by its dot product with AA to give its component in AA.

  • P in A=R×P in BP \text{ in } A = R \times P \text{ in } B

Translation

  • Consider frames AA and BB with the same orientation, but a different origin. The relationship between <em>A\P<em>A and </em>B\P</em>B for a point P is: P<em>A=P</em>B+Translation of OriginP<em>A = P</em>B + \text{Translation of Origin}

    • This operation, involving a translation, changes the description from origin BB to origin AA.

General Transformation

  • For a point PP described with respect to an arbitrary frame BB that is rotated with respect to AA, the transformation is: P<em>A=R×P</em>B+Translation of OriginP<em>A = R \times P</em>B + \text{Translation of Origin}

    • The description of PP is rotated to frame AA, and then added to the translation of the origin.

Homogeneous Transformation

  • The general transformation can be expressed in a homogeneous form using 4D space: [P<em>A 1]=[Ramp;T 0amp;1][P</em>B 1]\begin{bmatrix} P<em>A \ 1 \end{bmatrix} = \begin{bmatrix} R &amp; T \ 0 &amp; 1 \end{bmatrix} \begin{bmatrix} P</em>B \ 1 \end{bmatrix}

    • This allows representing transformations as matrix multiplications.

Example
  • Using the previous rotation matrix and a translation vector of (0, 3, 1):

    • H=[1amp;0amp;0amp;0 0amp;0amp;1amp;3 0amp;1amp;0amp;1 0amp;0amp;0amp;1]H = \begin{bmatrix} 1 &amp; 0 &amp; 0 &amp; 0 \ 0 &amp; 0 &amp; -1 &amp; 3 \ 0 &amp; 1 &amp; 0 &amp; 1 \ 0 &amp; 0 &amp; 0 &amp; 1 \end{bmatrix}

    • For point PP in frame BB described by (0, 1, 1):
      [PA 1]=[1amp;0amp;0amp;0 0amp;0amp;1amp;3 0amp;1amp;0amp;1 0amp;0amp;0amp;1][0 1 1 1]=[0 2 2 1]\begin{bmatrix} P_A \ 1 \end{bmatrix} = \begin{bmatrix} 1 &amp; 0 &amp; 0 &amp; 0 \ 0 &amp; 0 &amp; -1 &amp; 3 \ 0 &amp; 1 &amp; 0 &amp; 1 \ 0 &amp; 0 &amp; 0 &amp; 1 \end{bmatrix} \begin{bmatrix} 0 \ 1 \ 1 \ 1 \end{bmatrix} = \begin{bmatrix} 0 \ 2 \ 2 \ 1 \end{bmatrix}

    • Dropping the one, the vector is (0, 2, 2).

Operators

  • A rotation matrix can be used to rotate a vector.

    • Whereas before it describes a vector in two different frames, it is now performing a rotation in one frame.

  • P<em>2=R×P</em>1P<em>2 = R \times P</em>1

  • Rotations about specific axes (X,Y,Z)(X, Y, Z) are of special interest.

  • A general rotation rotates a vector P<em>1P<em>1 into a vector P</em>2P</em>2 about an arbitrary vector k\vec{k} .

  • Example for a rotation of theta degrees about the x-axis:
    Rx(θ)=[1amp;0amp;0 0amp;cos(θ)amp;sin(θ) 0amp;sin(θ)amp;cos(θ)]R_x(\theta) = \begin{bmatrix} 1 &amp; 0 &amp; 0 \ 0 &amp; \cos(\theta) &amp; -\sin(\theta) \ 0 &amp; \sin(\theta) &amp; \cos(\theta) \end{bmatrix}

Translations as Operators

  • With mapping, vectors were translated with respect to two different frames. With operators, translation is applied to a point in space.

  • Where Q\vec{Q} is a translation operation:

    P2=P1+QP2 = P1 + \vec{Q}

  • Can be broken down into:
    Q=[Qx Qy Qz 1]\vec{Q} = \begin{bmatrix} Qx \ Qy \ Q_z \ 1 \end{bmatrix}

  • Then we can define the operator as:
    Q=[1amp;0amp;0amp;Q<em>x 0amp;1amp;0amp;Q</em>y 0amp;0amp;1amp;Qz 0amp;0amp;0amp;1]Q= \begin{bmatrix} 1 &amp; 0 &amp; 0 &amp; Q<em>x \ 0 &amp; 1 &amp; 0 &amp; Q</em>y\ 0 &amp; 0 &amp; 1 &amp; Q_z \ 0 &amp; 0 &amp; 0 &amp; 1 \end{bmatrix}

General Transformations as Operators Combined

  • The general operator that can be imagined is this operator rotating about some vector k\vec{k} with some angle theta and translating Q\vec{Q}.

  • This can be described as:
    P2=Q+R×P1P2 = \vec{Q} + R \times P1

    Summarizing:

  • The most general form of transformation has 2 components, rotation and translation.

  • The transformation can give us Mapping - changing the description; OR

  • The transofmration results in changing the vector itself, hence change the point.