IEEE Robotics & Automation Magazine - June 2013 - 93

Different Use Cases for Running Example
Coordinate Calculations
"e , E
T
"o 2 , O2

"e , E
T
"o 1 , O1
"e , E
T
"b ,B

=

=

=

" o 2 , O 2 -1
T ,
"e , E
"o 2 , O2
T
"o 1 , O1

"o 1 , O1
T
"b , B

(S1a)
"e , E
T
"o 2 , O2

(S1b)

"e , E
T.
"o 1 , O1

(S1c)

Semantics Checking
Pose ^" e , E, " o 2 , O 2 h

=

inverse(Pose ^" o 2 , O 2 " e , E h ),

(S2a)

Pose ^" e , E, " o 1 , O 1 h

=

compose (Pose ^" e , E, " o 2 , O 2 h, Pose ^" o 2 , O 2, " o 1 , O 1 h ),

(S2b)

Pose ^" e , E, " b , B h

=

compose (Pose ^" e , E, " o 1 , O 1 h, Pose ^" o 1 , O 1, " b , B h ).

(S2c)

Coordinate Semantics Checking
PoseCoord ^" e , E, " o 2 , O 2,6o 2@h =

inverse2(PoseCoord ^" o 2 , O 2, " e , E,6e @h ),

(S3a)

PoseCoord ^" e , E, " o 1 , O 1,6o 1@h

=

compose (PoseCoord ^" e , E, " o 2 , O 2,6o 2@h , PoseCoord ^" o 2 , O 2, " o 1 , O 1,6o 1@h ),

(S3b)

PoseCoord ^" e , E, " b , B,6b@h

=

compose (PoseCoord ^" e , E, " o 1 , O 1,6o 1@h , PoseCoord ^" o 1 , O 1, " b , B,6b@h ).

(S3c)

Coordinate Calculations and Coordinate Semantics Checking
Coordinate calculations using (S1a)-(S1c) and coordinate semantics checking using (S3a)-(S3c). Additionally, the semantic
constraints imposed by particular coordinate representations are checked (see [3]).

available: PoseCoord ^" o 1 , O 1, " b , B, 6b@h determined by
the mounting of the cylindrical object with respect to the
robot base, PoseCoord ^" o 2 , O 2, " e , E, 6e @h determined by
the mounting of the spray gun on the robot end-effector, and
PoseCoord ^" o 2 , O 2, " o 1 , O 1, 6o 1@h determined by the
desired relative spray-painting pose.
To find the joint angles of the robot, the robot programmer has to find the pose of the robot end-effector with respect
to the base, and then use the inverse kinematics of the robot.
The solution to this problem has the following outline: (1)
invert Pose ^" o 2 , O 2, " e , Eh to obtain the pose of the endeffector with respect to the spray gun, Pose
^" e , E, " o 2 , O 2 h; (2) compose Pose ^" e , E, " o 2 , O 2 h ,
and Pose ^" o 2 , O 2, " o 1 , O 1h to obtain the pose of the robot
end-effector with respect to the cylindrical object, Pose
^" e , E, " o 1 , O 1 h; and (3) compose Pose ^" e , E, " o 1 , O 1 h
and Pose ^" o 1 , O 1, " b , B h to obtain the pose of the robot
end-effector with respect to the robot base, Pose
^" e , E, " b , B h . Finally, the inverse kinematics of the robot
is used to calculate the joint angles from the end-effector pose
with respect to the base, Pose ^" e , E, " b , B h .

Coordinate Calculations
The first use case is the one that involves numerical calculations using particular coordinate representations, but without
the semantic checking. This is the level that all available
geometry libraries, such as Kinematics and Dynamics Library
(KDL) [5], Robot Operating System (ROS) geometry stack
[4], and Robotics Library (RL) [1], work on.
For the running example, an option is to use the 4 # 4
" ,
homogeneous transformation matrix [6] "hg , CD T as a coordinate repres ent ation for t he p os e Pos eC o ord
^" g , C, " h , D, 6h@h . In
this case, the inverse and
The software still has to
the compositions needed
in the solution outline (See
allow for efficient code
the "Running Example"
section) are obtained by
at runtime, which is of
doing a matrix inversion
and matrix multiplications,
particular importance in
respectively, as shown in
"Different Use Cases for
robotics applications.
Running Example."

Use Cases
Regarding calculations with the geometric relations between
rigid bodies, four use cases are relevant that are explained and
illustrated using the running example below.

Semantics Checking
The second use case is the one that involves semantic checking, but that abstracts from the actual coordinate frames and
of the particular coordinate representations. In this case, the

jUNE 2013

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

93



Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - June 2013

IEEE Robotics & Automation Magazine - June 2013 - Cover1
IEEE Robotics & Automation Magazine - June 2013 - Cover2
IEEE Robotics & Automation Magazine - June 2013 - 1
IEEE Robotics & Automation Magazine - June 2013 - 2
IEEE Robotics & Automation Magazine - June 2013 - 3
IEEE Robotics & Automation Magazine - June 2013 - 4
IEEE Robotics & Automation Magazine - June 2013 - 5
IEEE Robotics & Automation Magazine - June 2013 - 6
IEEE Robotics & Automation Magazine - June 2013 - 7
IEEE Robotics & Automation Magazine - June 2013 - 8
IEEE Robotics & Automation Magazine - June 2013 - 9
IEEE Robotics & Automation Magazine - June 2013 - 10
IEEE Robotics & Automation Magazine - June 2013 - 11
IEEE Robotics & Automation Magazine - June 2013 - 12
IEEE Robotics & Automation Magazine - June 2013 - 13
IEEE Robotics & Automation Magazine - June 2013 - 14
IEEE Robotics & Automation Magazine - June 2013 - 15
IEEE Robotics & Automation Magazine - June 2013 - 16
IEEE Robotics & Automation Magazine - June 2013 - 17
IEEE Robotics & Automation Magazine - June 2013 - 18
IEEE Robotics & Automation Magazine - June 2013 - 19
IEEE Robotics & Automation Magazine - June 2013 - 20
IEEE Robotics & Automation Magazine - June 2013 - 21
IEEE Robotics & Automation Magazine - June 2013 - 22
IEEE Robotics & Automation Magazine - June 2013 - 23
IEEE Robotics & Automation Magazine - June 2013 - 24
IEEE Robotics & Automation Magazine - June 2013 - 25
IEEE Robotics & Automation Magazine - June 2013 - 26
IEEE Robotics & Automation Magazine - June 2013 - 27
IEEE Robotics & Automation Magazine - June 2013 - 28
IEEE Robotics & Automation Magazine - June 2013 - 29
IEEE Robotics & Automation Magazine - June 2013 - 30
IEEE Robotics & Automation Magazine - June 2013 - 31
IEEE Robotics & Automation Magazine - June 2013 - 32
IEEE Robotics & Automation Magazine - June 2013 - 33
IEEE Robotics & Automation Magazine - June 2013 - 34
IEEE Robotics & Automation Magazine - June 2013 - 35
IEEE Robotics & Automation Magazine - June 2013 - 36
IEEE Robotics & Automation Magazine - June 2013 - 37
IEEE Robotics & Automation Magazine - June 2013 - 38
IEEE Robotics & Automation Magazine - June 2013 - 39
IEEE Robotics & Automation Magazine - June 2013 - 40
IEEE Robotics & Automation Magazine - June 2013 - 41
IEEE Robotics & Automation Magazine - June 2013 - 42
IEEE Robotics & Automation Magazine - June 2013 - 43
IEEE Robotics & Automation Magazine - June 2013 - 44
IEEE Robotics & Automation Magazine - June 2013 - 45
IEEE Robotics & Automation Magazine - June 2013 - 46
IEEE Robotics & Automation Magazine - June 2013 - 47
IEEE Robotics & Automation Magazine - June 2013 - 48
IEEE Robotics & Automation Magazine - June 2013 - 49
IEEE Robotics & Automation Magazine - June 2013 - 50
IEEE Robotics & Automation Magazine - June 2013 - 51
IEEE Robotics & Automation Magazine - June 2013 - 52
IEEE Robotics & Automation Magazine - June 2013 - 53
IEEE Robotics & Automation Magazine - June 2013 - 54
IEEE Robotics & Automation Magazine - June 2013 - 55
IEEE Robotics & Automation Magazine - June 2013 - 56
IEEE Robotics & Automation Magazine - June 2013 - 57
IEEE Robotics & Automation Magazine - June 2013 - 58
IEEE Robotics & Automation Magazine - June 2013 - 59
IEEE Robotics & Automation Magazine - June 2013 - 60
IEEE Robotics & Automation Magazine - June 2013 - 61
IEEE Robotics & Automation Magazine - June 2013 - 62
IEEE Robotics & Automation Magazine - June 2013 - 63
IEEE Robotics & Automation Magazine - June 2013 - 64
IEEE Robotics & Automation Magazine - June 2013 - 65
IEEE Robotics & Automation Magazine - June 2013 - 66
IEEE Robotics & Automation Magazine - June 2013 - 67
IEEE Robotics & Automation Magazine - June 2013 - 68
IEEE Robotics & Automation Magazine - June 2013 - 69
IEEE Robotics & Automation Magazine - June 2013 - 70
IEEE Robotics & Automation Magazine - June 2013 - 71
IEEE Robotics & Automation Magazine - June 2013 - 72
IEEE Robotics & Automation Magazine - June 2013 - 73
IEEE Robotics & Automation Magazine - June 2013 - 74
IEEE Robotics & Automation Magazine - June 2013 - 75
IEEE Robotics & Automation Magazine - June 2013 - 76
IEEE Robotics & Automation Magazine - June 2013 - 77
IEEE Robotics & Automation Magazine - June 2013 - 78
IEEE Robotics & Automation Magazine - June 2013 - 79
IEEE Robotics & Automation Magazine - June 2013 - 80
IEEE Robotics & Automation Magazine - June 2013 - 81
IEEE Robotics & Automation Magazine - June 2013 - 82
IEEE Robotics & Automation Magazine - June 2013 - 83
IEEE Robotics & Automation Magazine - June 2013 - 84
IEEE Robotics & Automation Magazine - June 2013 - 85
IEEE Robotics & Automation Magazine - June 2013 - 86
IEEE Robotics & Automation Magazine - June 2013 - 87
IEEE Robotics & Automation Magazine - June 2013 - 88
IEEE Robotics & Automation Magazine - June 2013 - 89
IEEE Robotics & Automation Magazine - June 2013 - 90
IEEE Robotics & Automation Magazine - June 2013 - 91
IEEE Robotics & Automation Magazine - June 2013 - 92
IEEE Robotics & Automation Magazine - June 2013 - 93
IEEE Robotics & Automation Magazine - June 2013 - 94
IEEE Robotics & Automation Magazine - June 2013 - 95
IEEE Robotics & Automation Magazine - June 2013 - 96
IEEE Robotics & Automation Magazine - June 2013 - 97
IEEE Robotics & Automation Magazine - June 2013 - 98
IEEE Robotics & Automation Magazine - June 2013 - 99
IEEE Robotics & Automation Magazine - June 2013 - 100
IEEE Robotics & Automation Magazine - June 2013 - 101
IEEE Robotics & Automation Magazine - June 2013 - 102
IEEE Robotics & Automation Magazine - June 2013 - 103
IEEE Robotics & Automation Magazine - June 2013 - 104
IEEE Robotics & Automation Magazine - June 2013 - 105
IEEE Robotics & Automation Magazine - June 2013 - 106
IEEE Robotics & Automation Magazine - June 2013 - 107
IEEE Robotics & Automation Magazine - June 2013 - 108
IEEE Robotics & Automation Magazine - June 2013 - 109
IEEE Robotics & Automation Magazine - June 2013 - 110
IEEE Robotics & Automation Magazine - June 2013 - 111
IEEE Robotics & Automation Magazine - June 2013 - 112
IEEE Robotics & Automation Magazine - June 2013 - 113
IEEE Robotics & Automation Magazine - June 2013 - 114
IEEE Robotics & Automation Magazine - June 2013 - 115
IEEE Robotics & Automation Magazine - June 2013 - 116
IEEE Robotics & Automation Magazine - June 2013 - 117
IEEE Robotics & Automation Magazine - June 2013 - 118
IEEE Robotics & Automation Magazine - June 2013 - 119
IEEE Robotics & Automation Magazine - June 2013 - 120
IEEE Robotics & Automation Magazine - June 2013 - 121
IEEE Robotics & Automation Magazine - June 2013 - 122
IEEE Robotics & Automation Magazine - June 2013 - 123
IEEE Robotics & Automation Magazine - June 2013 - 124
IEEE Robotics & Automation Magazine - June 2013 - 125
IEEE Robotics & Automation Magazine - June 2013 - 126
IEEE Robotics & Automation Magazine - June 2013 - 127
IEEE Robotics & Automation Magazine - June 2013 - 128
IEEE Robotics & Automation Magazine - June 2013 - Cover3
IEEE Robotics & Automation Magazine - June 2013 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com