Loading [MathJax]/jax/output/CommonHTML/jax.js

Table of Contents

Kinematics (robotics)

Forward kinematics

Jacobian

The Jacobian matrix consists of the partial derivatives of the end-effector position with respect to joint angles/lengths.

2D case with 2 revolute joints:

J=[xeθ1xeθ2yeθ1yeθ2]

This can be used to convert joint speeds into end-effector velocity:

[vxvy]=J[˙θ1˙θ2]

Consider the columns of the Jacobian matrix J.

J=[J1J2]

Then, the velocity relation can be rewritten as:

[vxvy]=J1˙θ1+J2˙θ2

J1˙θ1 is the endpoint velocity generated by ˙θ1 when θ2 is fixed, and J2˙θ2 is the endpoint velocity generated by ˙θ2 when θ1 is fixed. That means that the velocity will point in the direction of J1 when θ1 is changed, and the it will point in the direction of J2 when θ2 is changed.

Rotation matrices

A rotation matrix consists of the unit vectors after rotating the frame of reference.

R=[ntb]

n, t, and b are the unit vectors of the new rotated coordinate frame in the x, y, and z directions respectively.

The position of a rigid body can be described by the column vector:

x=[xyz]

This position is given in the terms of the new rotated coordinate frame, which is described by the orientation matrix R.

In order to convert this into the previous frame, we can multiply the orientation by the matrix.

Consecutive coordinate transformations

To get the end-effector position, we can chain a bunch of coordinate transformations together by multiplying all of the rotation matrices that come before the vector, like this:

x0P=x01+R01x12+R01R12x23

Commonly used rotation matrices

Rotation about x-axis:

Rx(θx)=[1000cosθzsinθz0sinθzcosθz]

Rotation about y-axis:

Ry(θy)=[cosθy0sinθy010sinθy0cosθy]

Rotation about z-axis:

Rz(θz)=[cosθzsinθz0sinθzcosθz0001]