0% found this document useful (0 votes)
50 views

Translation and Rotation F2024

Uploaded by

maxmark02u
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views

Translation and Rotation F2024

Uploaded by

maxmark02u
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

ELECTRIC ENGINEERING

Computer Engineering Program


Lecture : (Configuration space topology and representation)

Dr : (Ayman Elshabrawy) Date : 16 / 10 / 2024


Introduction
• A robot manipulator is schematically represented
as a kinematic chain.
• It is composed by a series of rigid bodies, the links,
connected by joints.
• The resulting end-effector motion is obtained by
composition of the elementary motions of each
link with respect to the previous one.
• To manipulate an object in space, it is necessary to
describe the end-effector position and orientation.
• Kinematics is the study of how the robot moves
not why it moves (Dynamics).
• In robotic manipulation we are concerned with
two common kinematic problems:
Introduction
Kinematics is the study of how the robot moves not why it moves (Dynamics).
In robotic manipulation we are concerned with two common kinematic problems:
Forward Kinematics Inverse Kinematics
Modeling
Forward Kinematics
Given: Joint Variables q (𝜃𝜃 or 𝑑𝑑 )
Required: Position and orientation of end-effector, 𝐩𝐩.

𝐩𝐩 = 𝑓𝑓 𝑞𝑞1 , 𝑞𝑞2 , … , 𝑞𝑞𝑛𝑛 = 𝑓𝑓(𝐪𝐪)

EASY!
Given: Position and orientation of end-effector, 𝐩𝐩.
Required: Joint Variables 𝐪𝐪(𝜃𝜃 or 𝑑𝑑 ) to get 𝐩𝐩

𝐪𝐪 = 𝑓𝑓(𝐩𝐩)

DIFFICULT (May be infinite solutions exist)!


Modeling
• Solving the manipulator kinematics requires the assignment of different coordinate
frames on each joint and the end-effector.
• The goal is to find the transformation between the end-effector and
the base frames.
• In robotic manipulators, two basic transformations are used:
• Translation and Rotation.
Representation of Translation:
Coordinate Frame:
The position and orientation of an
object in space is referred to as its pose.
Any description of an object's pose must
always be made in relation to some
coordinate frames.
In robotics, it is often convenient to keep
track of multiple coordinate frames.
(Camera, robot, user, world, . . . etc.)
Coordinate Frame:
A set n of orthonormal basis vectors spanning 𝑅𝑅𝑛𝑛 .
Representation of Translation:
Representation of a Point:
A point corresponds a particular location in the
space. For example, the point p.
A point has different representation (coordinates) in
different frames.
Example (Point 𝑝𝑝 ):
0 6
w.r.t. frame {0}: 𝑝𝑝 = 𝑣𝑣1 =
5
1 −2.8
w.r.t. frame {𝟏𝟏}: 𝑝𝑝 = 𝑣𝑣2 =
4.2
Note: the frame of reference is written in right superscript style. 𝑝𝑝𝑘𝑘 , 𝑜𝑜10
Representation of Translation:
Representation of a Point:
• Since the origin of a frame is just a point, we can express the origin of one frame
with respect to another.
Example:
10
𝑜𝑜10= 𝑜𝑜1 ‫ﻟ‬represented in frame‫{ﻟ‬0}
5
1 −10.6
𝑜𝑜0 = 𝑜𝑜0 represented in frame {1}
3.5
Representation of Translation:
Representation of a Point:
• The point translation could be also represented in 3-dimensional space.
Example:
𝑥𝑥10
𝑜𝑜10 = 𝑦𝑦10 𝑜𝑜1 represented in frame {0}
𝑧𝑧10
𝑥𝑥01
𝑜𝑜01 = 𝑦𝑦01 𝑜𝑜0 represented in frame {1}
𝑧𝑧01
Representation of Rotations
• Frame {1} is obtained by rotating frame {0}
by an angle 𝜃𝜃.
• We need to find the relative orientation
between these two frames.
• We can specify the orientation by finding
the representation of coordinate vectors of
frame {1} w.r.t frame {0}.
𝑅𝑅10 = 𝑥𝑥10 ∣ 𝑦𝑦10
𝑥𝑥10 and 𝑦𝑦10 are the unit vector 𝑥𝑥1 and 𝑦𝑦1
represented in frame {0}.
Representation of Rotations
𝑥𝑥ˆ1 ⋅ 𝑥𝑥ˆ 0 𝑦𝑦ˆ1 ⋅ 𝑥𝑥ˆ 0
𝑅𝑅10 = 𝑥𝑥10 ∣ 𝑦𝑦10 =
𝑥𝑥ˆ1 ⋅ 𝑦𝑦ˆ 0 𝑦𝑦ˆ1 ⋅ 𝑦𝑦ˆ 0
Projecting the axes of frame {1}
onto the axes of frame {0} :
cos(𝜃𝜃) 0 −sin(𝜃𝜃)
𝑥𝑥10 = 𝑦𝑦1 =
sin(𝜃𝜃) cos(𝜃𝜃)
cos(𝜃𝜃) −sin(𝜃𝜃)
𝑅𝑅10
= Rotation
sin(𝜃𝜃) cos(𝜃𝜃)
Matrix
Representation of Rotations
Properties of Rotation Matrices:
(1) det 𝑅𝑅10 = cos 2 (𝜃𝜃) + sin2 (𝜃𝜃) = 1.
(2) Inverse Rotation:
𝑥𝑥ˆ 0 ⋅ 𝑥𝑥ˆ1 𝑦𝑦ˆ 0 . 𝑥𝑥ˆ1
𝑅𝑅01= 𝑥𝑥01
∣ =𝑦𝑦01
𝑥𝑥ˆ 0 . 𝑦𝑦ˆ1 𝑦𝑦ˆ 0 . 𝑦𝑦ˆ1
cos(𝜃𝜃) sin(𝜃𝜃)
1
𝑅𝑅0 = = 𝑅𝑅10 𝑇𝑇
−sin(𝜃𝜃) cos(𝜃𝜃)
Projecting the axes of frame {0} onto the axes
of frame {1}.
Modeling
Properties of Rotation Matrices:
(3) Inverse of Rotation Matrix:
−1
cos(𝜃𝜃) −sin(𝜃𝜃)
𝑅𝑅10 −1 = = 𝑅𝑅10 𝑇𝑇 = 𝑅𝑅01
sin(𝜃𝜃) cos(𝜃𝜃)
(4) 𝑅𝑅 is Special Orthogonal matrix 𝑆𝑆𝑆𝑆(𝑛𝑛) :
𝑅𝑅𝑅𝑅𝑇𝑇 = 𝐼𝐼𝑛𝑛
cos(𝜃𝜃) −sin(𝜃𝜃)
𝑅𝑅10 =
sin(𝜃𝜃) cos(𝜃𝜃)
Representation of Rotations in 3D

We need to project frame {1} into frame {0}


𝑥𝑥ˆ1 ⋅ 𝑥𝑥ˆ 0 𝑦𝑦ˆ1 ⋅ 𝑥𝑥ˆ 0 𝑧𝑧ˆ1 ⋅ 𝑥𝑥ˆ 0
𝑅𝑅10 = 𝑥𝑥10 𝑦𝑦10 𝑧𝑧10 = 𝑥𝑥ˆ 1 ⋅ 𝑦𝑦ˆ 0 𝑦𝑦ˆ1 ⋅ 𝑦𝑦ˆ 0 𝑧𝑧ˆ1 ⋅ 𝑦𝑦ˆ 0
𝑥𝑥ˆ1 ⋅ 𝑧𝑧ˆ0 𝑦𝑦ˆ1 ⋅ 𝑧𝑧ˆ0 𝑧𝑧ˆ1 ⋅ 𝑧𝑧ˆ0
cos(𝜃𝜃) −sin(𝜃𝜃) 0
𝑅𝑅10 = sin(𝜃𝜃) cos(𝜃𝜃) 0 = 𝑅𝑅𝑧𝑧,𝜃𝜃
0 0 1
𝑅𝑅𝑧𝑧,𝜃𝜃 is the basic rotation matrix around z-
axis.
Modeling

1 0 0
𝑅𝑅𝑥𝑥,𝜃𝜃 = 0 cos(𝜃𝜃) −sin(𝜃𝜃)
0 sin(𝜃𝜃) cos(𝜃𝜃)
cos(𝜃𝜃) 0 sin(𝜃𝜃)
𝑅𝑅𝑦𝑦,𝜃𝜃 = 0 1 0
−sin(𝜃𝜃) 0 cos(𝜃𝜃)
Modeling
Problem: Lack of standard for robots.
ROS: is an open-source robot operating
system:
A set of software libraries and tools that
help you build robot applications that work
across a wide variety of robotic platforms.
Originally developed in 2007 at the Stanford
Articial Intelligence Laboratory and
development continued at Willow Garage.
Since 2013 managed by OSRF (Open Source
Robotics Foundation).
ROS is working under Linux (Recommended
Ubuntu).
Modeling
−1 0 0
𝑅𝑅10 = 𝑅𝑅𝑧𝑧,𝜋𝜋 = 0 −1 0
0 0 1
𝑝𝑝𝑏𝑏0 = 𝑅𝑅𝑧𝑧,𝜋𝜋 𝑝𝑝𝑎𝑎0
This equation shows us how to use a
rotation matrix to represent a rotational
motion. In particular, if the point 𝑝𝑝𝑏𝑏 is
obtained by rotating the point 𝑝𝑝𝑎𝑎 as defined
by the rotation matrix 𝑅𝑅 , then the
coordinates of 𝑝𝑝𝑏𝑏 with respect to the
reference frame are given by
𝑝𝑝𝑏𝑏0 = 𝑅𝑅𝑝𝑝𝑎𝑎0
Rotational Transformations
The {0}-frame is our fixed frame, the
{1}-frame is fixed to a rigid body.
What will happen with points of body (let say p) if we rotate
the body, i.e. the {1}-frame?
The coordinates of point p in the 1-frame are constant p1,
but in the 0-frame they are changed.

The coordinates of the point p in 0-frame is:

𝑝𝑝0 = 𝑅𝑅10 𝑝𝑝1


Composition of Rotations
[1] Rotation about Current Frame:
Suppose that we have 3 frames:

{0} = (o0, x0, y0, z0)


{1} = (o1, x1, y1, z1)
{2} = (o2, x2, y2, z2)
Any point p can be represented in any of the
three coordinates:
𝑝𝑝0 = 𝑅𝑅10 𝑝𝑝1
𝑝𝑝1 = 𝑅𝑅21 𝑝𝑝2
𝑝𝑝0 = 𝑅𝑅20 𝑝𝑝2
Composition of Rotations
• [1] Rotation about Current Frame

𝑝𝑝0 = 𝑅𝑅10 𝑝𝑝1


𝑝𝑝1 = 𝑅𝑅21 𝑝𝑝2
𝑝𝑝0 = 𝑅𝑅20 𝑝𝑝2
• We can write:
𝒑𝒑𝟎𝟎 = 𝑹𝑹𝟎𝟎𝟏𝟏 𝒑𝒑𝟏𝟏 = 𝑹𝑹𝟎𝟎𝟏𝟏 𝑹𝑹𝟏𝟏𝟐𝟐 𝒑𝒑𝟐𝟐

𝒑𝒑𝟎𝟎 = 𝑹𝑹𝟎𝟎𝟐𝟐 𝒑𝒑𝟐𝟐


Law of composite rotation

𝑹𝑹𝟎𝟎𝟐𝟐 = 𝑹𝑹𝟎𝟎𝟏𝟏 𝑹𝑹𝟏𝟏𝟐𝟐


Composition of Rotations
• [1] Rotation about Current Frame:
• Example: Suppose we rotate:
• first the frame by angle φ around current y-axis,
• then rotate by angle θ around the current z-axis. Find the combined rotation ?
Composition of Rotations
• Rotation about Current Frame: Example: Suppose we rotate:
• first the frame by angle φ around current y-axis,
• then rotate by angle θ around the current z-axis. Find the combined rotation ?

cos(𝜙𝜙) 0 sin(𝜙𝜙)
• 𝑅𝑅𝑦𝑦,𝜙𝜙 = 0 1 0
−sin(𝜙𝜙) 0 cos(𝜙𝜙)
Composition of Rotations
• Example: Suppose we rotate:
• (1) the first rotation is by angle 𝜙𝜙 around 𝑦𝑦0 -
axis.
• (2) then, a rotation by angle 𝜃𝜃 around
𝑧𝑧1 −axis . What is the total rotation?

cos(𝜃𝜃) −sin(𝜃𝜃) 0
• 𝑅𝑅𝑧𝑧,𝜃𝜃 = sin(𝜃𝜃) cos(𝜃𝜃) 0
0 0 1
Composition of Rotations
Rotation about Current Frame:
• 𝑅𝑅20 = 𝑅𝑅𝑦𝑦,𝜙𝜙 𝑅𝑅𝑧𝑧,𝜃𝜃
cos(𝜙𝜙) 0 sin(𝜙𝜙) cos(𝜃𝜃) −sin(𝜃𝜃) 0
𝑅𝑅20 = 0 1 0 sin(𝜃𝜃) cos(𝜃𝜃) 0
−sin(𝜙𝜙) 0 cos(𝜙𝜙) 0 0 1

𝑐𝑐𝜙𝜙 𝑐𝑐𝜃𝜃 −𝑐𝑐𝜙𝜙 𝑠𝑠𝜃𝜃 𝑠𝑠𝜙𝜙
𝑅𝑅20 = 𝑠𝑠𝜃𝜃 𝑐𝑐𝜃𝜃 0
−𝑠𝑠𝜙𝜙 𝑐𝑐𝜃𝜃 𝑠𝑠𝜙𝜙 𝑐𝑐𝜃𝜃 𝑐𝑐𝜙𝜙
• Note: 𝑠𝑠𝜙𝜙 = sin(𝜙𝜙) and 𝑐𝑐𝜃𝜃 = cos(𝜃𝜃)
Composition of Rotations
• [1] Rotation about Current Frame:
Important Observation: Rotations do not commute.
• 𝑅𝑅𝑦𝑦,𝜙𝜙 𝑅𝑅𝑧𝑧,𝜃𝜃 ≠ 𝑅𝑅𝑧𝑧,𝜃𝜃 𝑅𝑅𝑦𝑦,𝜙𝜙
• So that the order of rotations is important!
Rule of composite rotation around the current
(new) frame:
• For successive rotations about the current reference
frame we use the post-multiplication to find the total
rotation matrix.
Composition of Rotations
[2] Rotation with respect to Fixed Frame: Example: Suppose we
rotate:
the first rotation is by angle φ around y0-axis.
then, a rotation by angle θ around z0-axis (not z1-axis). What is the total rotation ?
Composition of Rotations
• Example: Suppose we rotate:
• (1) the first rotation is by angle 𝜙𝜙 around 𝑦𝑦0 -
axis.
• (2) then, a rotation by angle 𝜃𝜃 around 𝑧𝑧0 -
axis (not 𝑧𝑧1 -axis). What is the total rotation?
cos(𝜙𝜙) 0 sin(𝜙𝜙)
• 𝑅𝑅𝑦𝑦0 ,𝜙𝜙 = 0 1 0
−sin(𝜙𝜙) 0 cos(𝜙𝜙)
Composition of Rotations
(2) then, a rotation by angle 𝜃𝜃 around 𝑧𝑧0 -
axis (not 𝑧𝑧1 -axis). What is the total
rotation?

cos(𝜃𝜃) −sin(𝜃𝜃) 0
𝑅𝑅𝑧𝑧0 ,𝜃𝜃 = sin(𝜃𝜃) cos(𝜃𝜃) 0
0 0 1
Composition of Rotations
• Rotation with respect to Fixed Frame:

𝑅𝑅20 = 𝑅𝑅𝑧𝑧,𝜃𝜃 𝑅𝑅𝑦𝑦,𝜙𝜙


‫ﻟ‬note the order!‫ﻟ‬
cos(𝜃𝜃) −sin(𝜃𝜃) 0 cos(𝜙𝜙) 0 sin(𝜙𝜙)
𝑅𝑅20 = sin(𝜃𝜃) cos(𝜃𝜃) 0 0 1 0
0 0 1 −sin(𝜙𝜙) 0 cos(𝜙𝜙)
Rule of composite rotation around the fixed
(original) frame:
For successive rotations about the fixed reference
frame we use the pre-multiplication to find the
total rotation matrix.
Composition of Rotations
• Around fixed frame ? Pre-multiply • Around current frame? Post-multiply

• Example:
• Find the rotation 𝑅𝑅 defined by the • Solution:
following basic rotations: • 𝑅𝑅 = 𝑅𝑅𝑥𝑥,𝛿𝛿 𝑅𝑅𝑧𝑧,𝛼𝛼 𝑅𝑅𝑥𝑥,𝜃𝜃 𝑅𝑅𝑧𝑧,𝜙𝜙 𝑅𝑅𝑦𝑦,𝛽𝛽
1. A rotation of 𝜃𝜃 about the current axis 𝑥𝑥; • 𝛿𝛿 = 15∘ , 𝛼𝛼 = 30∘ , 𝜃𝜃 = 45∘ , 𝜙𝜙 =
2. A rotation of 𝜙𝜙 about the current axis 𝑧𝑧; 60∘ , 𝛽𝛽 = 90∘

3. A rotation of 𝛼𝛼 about the fixed axis 𝑧𝑧; • 𝑅𝑅 = ? (Difficult ?)

4. A rotation of 𝛽𝛽 about the current axis 𝑦𝑦; • ROBOTICS TOOLBOX

5. A rotation of 𝛿𝛿 about the fixed axis 𝑥𝑥.

You might also like