Foundations of Robot Motion: 1.1 Degrees of Freedom of A Rigid Body
Foundations of Robot Motion: 1.1 Degrees of Freedom of A Rigid Body
Constraints c Constraints c We say two spaces have the same ”shape”, or more formally that
1 Foundations of Robot Motion between two between two they are TOPOLOGICALLY EQUIVALENT, if one can be smoothly
Joint type dof f
1.1 Degrees of Freedom of a Rigid Body planar spatial deformed into the other, without cutting or gluing. The topology
rigid bodies rigid bodies of the space is independent of the representation of the space.
Configuration: a specification of the positions of all the points Revolute (R) 1 2 5
Prismatic (P) 1 2 5 Explicit Representation:
of the robot.
Helical (H) 1 N/A 5 It uses n parameters to represent a n-dimensional space. But
Robots are constructed of rigid bodies called links. These links
Cylindrical (C) 2 N/A 4 it has sigularities, for example the North/South pole situation.
are connected together by joints.
Universal (U) 2 N/A 4 There are two solutions for the sigularities:
C-space: is the space of all configurations of the robot.
Spherical (S) 3 N/A 3 -Use multiple coordinate charts (atlas).
The number of degrees of freedom (DOF) is the dimension of
-Use implicit representation.
the C-space, or the minimum number of real numbers you need
The number of degrees of freedom f and constraints c
to represent the configuration Implicit Representation:
provided by common joints.
It uses more parameters than the space’s dof. It views the
N = # of bodies, including ground. n-dimensional space as embedded in a Euclidean space of
J = # of joints, m = 6 for spatial bodies, 3 for planar more than n dimensions. It uses the coordinates of the higher-
dimensional space, but subjects these coordinates to con-
J J
straints that reduce the number of degrees of freedom. It has
dof = m(N − 1) − ∑ ci = m(N − 1) − ∑ (m − fi )
| {z } i=1 i=1
advantage in representing closed-chain mechanism.
rigid body freedoms | {z }
joint constraints
1.3 Holonomic constraints
Grübler’s formula (all constraints independent)
J Constraints that reduce the dimension of C-space. The C-space
dof = m(N − 1 − J) + ∑ fi can be viewed as a surface of dimension n − k embedded in Rn ,
i=1 where n indicates the number of parameters that are used to
Rigid body in space has six total degrees of freedom, three of represent the space, and k indicates the number of constraints
which are linear, or x-y-z, and three of which are angles, some- 1.2 Configuration Space Topology holonomic. (In the example of the planar, closed-chain, four-bar
times called roll, pitch, and yaw. linkage, n = 4 and k = 3)
dof = ∑ (freedoms of bodies) − numbers of independent con-
g1 (θ1 , . . . , θn )
straints. θ = [θ1 · · ·n ]T g(θ) = =0
gk (θ1 , . . . , θn )
A rigid body in n-dimensional space has m total degrees of free- ∂g1
dom. How many of these m degrees of freedom are angular ∂g1
∂θ1
(θ)θ̇1 + · · · + ∂θ (θ)θ̇n
n
(not linear)? m − n=n(n − 1)/2 ..
=0
.
∂gk ∂gk
∂θ1
(θ)θ̇1 + · · · + ∂θ (θ)θ̇n
n
∂g1 ∂g1
(θ) · · · (θ)
∂θ ∂θn θ̇1
1. .. .. .
.. . . .. = A(θ)θ̇ = 0
∂gk
∂θ1
(θ) · · · ∂gk (θ)
∂θn
θ̇n
where the A matrix has k rows and n columns. Velocity con-
straints like this are called Pfaffian constraints.
Holonomic Constraints: Constraints on configuration. Con-
straints that reduce the dimension of C-space.
Nonholonomic Constraints: Constraints on velocity. Pfaffian
constraints that are non-integrable. (example: A coin rolling on
Typical robot joints. a plane without slipping)
Modern Robotics: Mechanics, Planning, and Control Ayman DAMOUN
ωb = Rbs ωs = R−1 T
sb ωs = Rsb ωs For a matrix A ∈ Rn×n , eA is the matrix exponential of A. Here the
1.5 Rotation Matrices equation that uses the matrix exponential of [ω̂]θ to represent a
then rotation matrix is called Rodrigues’ formula:
A rotation matrix R is in SO(3)(special orthogonal group). [ωb ] = R−1 Ṙ = RT Ṙ
The special orthogonal group SO(3) is the set of all 3 × 3 real
matrices R satisfying RT R = I and det R = 1 [ωs ] = ṘR−1 = ṘRT
Rot(ω̂, θ) = e[ω̂]θ = I + sin θ[ω̂] + (1 − cos θ)[ω̂]2 ∈ SO(3)
Properties of rotation matrices
1.7 Exponential Coordinates of Rotation
inverse: R−1 = RT ∈ SO(3) Recall that, when using rotation matrix as rotation operation,
closure: R1 R2 ∈ SO(3) Any orientation can be achieved from an initial orientation ω̂ is coordinate-dependent. Thus pre-multiplying and post-
associative: (R1 R2 ) R3 = R1 (R2 R3 ) aligned with the space frame by rotating about some unit axis multiplying a rotation matrix can have difference results.
not commutative:R1 R2 6= R2 R1 by a particular angle. We call the unit axis ω̂ and the rotation dis-
tance θ. If we multiply these two together, we get the 3-vectorω̂θ. exp : [ω̂]θ ∈ so(3) →R ∈ SO(3)
x ∈ R3 , kRxk = kx | log : R ∈ SO(3) → [ω̂]θ ∈ so(3)
We call these 3 parameters the exponential coordinates repre-
senting the orientation of one frame relative to another. This is
Usages of Rotation Matrices:
an alternative representation to a rotation matrix. We call these
- Representing an orientation
exponential coordinates because of the connection to linear dif- Rot(ω̂, θ) =
Here the rotation matrix Rsb can be considered as the represen-
cθ + ω̂21 (1 − cθ ) ω̂1 ω̂2 (1 − cθ ) − ω̂3 sθ ω̂1 ω̂3 (1 − cθ ) + ω̂2 sθ
ferential equations.
tation of the three axes in b at s. ω̂1 ω̂2 (1 − cθ ) + ω̂3 Sθ cθ + ω̂22 (1 − cθ ) ω̂2 ω̂3 (1 − cθ ) − ω̂1 sθ
- Changing the reference frame ω̂1 ω̂3 (1 − cθ ) − ω̂2 Sθ ω̂2 ω̂3 (1 − cθ ) + ω̂1 Sθ cθ + ω̂23 (1 − cθ )
Here the rotation matrix Rsb can be considered as an operation
to change the reference frame of a matrix from s to b. A sub- tr R = r11 + r22 + r33 = 1 + 2 cos θ
scription cancellation rule can be exploited.
- Rotating a vector or a frame 1.8 Homogeneous Transformation Matrices
Here the rotation matrix Rsb can be considered as an operation
The special Euclidean group SE(3) is the set of all 4 × 4 real ma-
that rotates s about an axis ω̂ for θ to b. We have R = Rot(ω̂, θ).
trices T of the form
During the rotation, we have: r11 r12 r13 p1
1.6 Angular Velocities
R p r21 r22 r23 p2
T= =
Angular velocity is defined as w = ŵθ̇. It’s a 3-vector, where ŵ in- ṗ = [ω̂]p 0 1 r31 r32 r33 p3
dicates the axis of rotation and θ̇ indicates the rate of rotation. 0 0 0 1
this equation can be considered as a differential equation of the
form ẋ = Ax, the solution is: R ∈ SO(3), p ∈ R3
For a given body frame,
whose orientation is represented by a
rotation matrix R = r1 r2 r3 . As it rotate with the fixed an- p(t) = e[ω̂]t p(0) −1
R p
gular velocity ωs , which is described in s, R is a function of time inverse: T −1 =
t. The rate of change of R can then be represented as: 0 1
where p(0) is the initial position of vector p. Since the rate of RT −RT p
Ṙ = ωs × r1 ωs × r2 ωs × r 3
= ωs × R rotation is 1 rad/s, we can replace t by θ, so we have: = ∈ SE(3)
0 1
Modern Robotics: Mechanics, Planning, and Control Ayman DAMOUN
closure: T1 T2 ∈ SE(3) 1.9 Twists where [ωb ] is the angular velocity expressed in the b frame.
associative: (T1 T2 ) T3 = T1 (T2 T3 ) νb = RT ṗ, which can be written as Rbs ps = pb , is the linear ve-
not commutative: T1 T2 6= T2 T1 Any rigid-body velocity, which consists of a linear component
locity of the origin of frame b expressed in b.
and an angular component, is equivalent to the instantaneous
velocity about some screw axis.
[ωs ] νs
Usages of Transformation Matrices [Vs ] = Ṫ T −1 = ∈ se(3)
0 0
Analogous to rotation matrices, transformation matrices have
three usages:
Representing a configuration
S = (Sω , Sv )
exp : se(3) → SE(3)
If Sω = 0, kSvk = 1 :
[S ]θ I Sv θ
e =
0 1
If kSω k"= 1 : #
e[Sω ]θ Iθ + (1 − cos θ) [Sω ] + (θ − sin θ) [Sω ]2 Sv
e[S ]θ =
0 1
Rsb p
Tsb =
0 1 screw
Sω angular velocity when θ̇ = 1
Tsb = Tbs−1 S= =
Sv linear velocity of the origin when θ̇ = 1
Changing the reference frame of a vector or a frame
ω
The subscript cancellation rule also applies here: twist: V = = S θ̇
v
- Pitch h is infinite:
Tab Tbc = Tac
Sω = 0, kSv k = 1, θ̇ = linear speed
Tab vb = va
- Pitch h is finite:
If S is expressed in {b} :
Displacing(rotating and translating) a vector or a frame We kSω k = 1, θ̇ = rotational speed
have: If S is defined in {b}, Vb = (ωb , vb ) = S θ̇ is the body twist. Tsb0 = Tsb e[Sb ]θ
A transformation matrix can be seen as a combination of roat- If S is defined in {s}, Vs = (ωs , vs ) = S θ̇ is the spatial twist.
ion and translation operations. If S is expressed in {s}
Change the frame of representation of a twist
Same with rotation matrix, transformation matrix here is The 6 × 6 adjoint representation of a transformation matrix Tsb0 = e[Ss ]θ Tsb
coordinate-dependent. Whether we pre-multiply or post-
multiply Tsb by T = (R, p) determines whether the ω̂-axis and p R p R 0 Wrenches
T= is [AdT ] = ∈ R6×6
are interpreted as in the fixed frame or the body frame: 0 1 [p]R R Given a reference frame a, a force fa ∈ R3 creates a torque /
ω̂ is interpreted as in the fixed frame Va = [AdTab ] Vb moment ma ∈ R3 after acting on a rigid body at point ra ∈ R3 :
Recall that rotation matrices have a property that:
Tsb0 = T Tsb = Trans(p) Rot(ω̂, θ)Tsb m a = ra × f a
ṘR−1 = [ωs ]
| {z }
rotate, then translate
Combining moment and force together, we have the six-
R−1 Ṙ = [ωb ] dimensional spatial force / wrench Fa :
ω̂ is interpreted as in the body frame
Homogeneous transformation matrices have a similar one:
Tsb00 = Tsb T = Tsb Trans(p) Rot(ω̂, θ)
[ωb ] νb
ma
| {z } [Vb ] = T −1 Ṫ = ∈ se(3) Fa = ∈ R6
translate, then rotate 0 0 fa
Modern Robotics: Mechanics, Planning, and Control Ayman DAMOUN
Similar with the case of twist, the reference frame of a wrench References
can be switched with the help of the adjoint representation of a Modern Robotics Course
transformation matrix. But the case is slightly different here: https://www.coursera.org/specializations/modernrobotics
Modern Robotics Course Notes
https://muchensun.github.io/ModernRoboticsCourseNotes/
Innovative Innovation
F b = Ad T Tab (F a) = [AdTab ]T Fa https://github.com/innovativeinnovation
VbT Fb = power
0
0
1 0 0 −L
ma 0 0 1 0 0
Fa = = Ta f =
fa
0
0 0 1 0
−mg 0 0 0 1
0
T
F f = AdTa f Fa
0
0
mf −mgL
Ff = =
ff
0
−mg
0
Summary