IEEE Robotics & Automation Magazine - June 2013 - 91

© digital vision

tutorial

Geometric Relations Between
Rigid Bodies (Par t 2)
From Semantics to Software
By Tinne De Laet, Steven Bellens, Herman Bruyninckx, and Joris De Schutter

R

igid bodies are essential primitives in the modeling
of robotic devices, tasks, and perception. Basic
geometric relations between rigid bodies include
relative position, orientation, pose, linear velocity,
angular velocity, twist, force, torque, and wrench. In
Part 1 of this tutorial [3], we explicitly stated the semantics of
all coordinate-invariant properties and operations, and, more
importantly, all the choices that are made in coordinate
representations of these geometric relations. This resulted in a
set of concrete suggestions for standardizing terminology
and notation.
In this tutorial, we show how the proposed semantics
allow us to write fully unambiguous software interfaces,
including automatic checks for semantic correctness of all
geometric operations on rigid-body coordinate representations. As a teaser, "Common Error 1: Logic Errors in Geomet-

Digital Object Identifier 10.1109/MRA.2012.2230501
Date of publication: 6 June 2013

1070-9932/13/$31.00©2013IEEE

ric Relation Calculations" shows how one of the common
errors listed in [3] can be prevented using the software presented in this tutorial.
This tutorial is supplementary to the software Web page
[2], containing a more detailed explanation on the C++
libraries implementing the geometric semantics for rigidbody calculations.
Following the same pattern as [3] this tutorial uses a running example to explain the different aspects. First, four use
cases involving manipulations of the geometric relations
between rigid bodies are proposed. Each of the use cases is
illustrated using the running example. Next, a software
design implementing the semantics for the geometric
relations between rigid bodies and inspired by the different
use cases is proposed. Using the running example, a particular C++ implementation of this design, referred to as "geometric_relations_semantics" [2], is demonstrated on the
running example for all four use cases. The geometric_relations_semantics library provides the semantic checking for
jUNE 2013

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

91



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