IEEE Robotics & Automation Magazine - September 2015 - 163
process for the motion control system of the KUKA youBot
mobile manipulator [43]. The algorithm design requires a
model of the system that will be controlled. They used the 20sim toolchain to model the youBot kinematic chain as a bond
graph and the BRIDE model-based toolchain [44] to model
the component-based control system. The control algorithm
design is performed in parallel with the design of the component architecture. These two design phases have mutual dependence and require an iterative approach.
The algorithm is partitioned in blocks of elemental functionalities with well-defined interfaces, in such a way that they
can be modified independently (e.g., for improving their performance) without affecting the design and implementation
of the rest of the system. On the other side, message passing
between components can introduce message losses and time
delays in updates and communication between sensors, controller, and actuators that need to be explicitly represented in
the model of the control algorithm. Unreasonable communication requirements (such as extreme bandwidth or
unachievable small latency) can lead to restructuring the
component architecture. In [45], a criterion for faithful implementation of hybrid-systems models in a concurrent and distributed system is presented.
System Configuration
Current practice in software engineering for robotics consists
of developing fine-grain software components, which implement single robotic functionalities. This approach is embodied by a repeated mantra among ROS developers [9]: "We
don't wrap your main." The strength of this approach is the
possibility to develop a large variety of different control systems by composing in multiple ways reusable software building blocks. Its weakness is the lack of support to the reuse of
effective solutions to recurrent architectural design problems.
Consequently, application developers and system integrators
have to solve architectural design problems always from
scratch. The difficult challenge consists of selecting, integrating, and configuring a coherent set of components that provide the required functionality considering their mutual
dependencies and architectural mismatches.
This challenge is exacerbated by the peculiarity of the
robotics domain: 1) robots can have many purposes, 2) many
forms, and 3) many functions. Consequently, each robotic systems has to be configured with a specific mix of functionalities
and that strongly depends on the robot mechanical structure
(a rover with zero or multiple arms), the task to be performed
(cleaning a floor, rescuing people after a disaster), and the
environmental conditions (indoor, outdoor, underground). In
various application domains, the software product line (SPL)
development has proved to be the most effective approach to
face this kind of challenges. A SPL is a family of applications
(products) that share many (structural, behavioral, and so on)
commonalities and together address a particular domain [46].
Typically, the SPL is a strategic investment for an engineering
company that wants to achieve customer value through large
commercial diversity of its products (e.g., different control sys-
tems for warehouse logistics) with a minimum of technical
diversity at minimal cost.
The core of an SPL is a stable software architecture that
clearly separates common features from the variations
reflected in the products
and prescribes how softThe cost of creating new robotics
ware components can be
assembled to derive indiproducts is significantly related
vidual products. Each
to the complexity of developing
new application is built
by configuring the SPL,
software control systems.
i.e., by selecting the variants (e.g., functionalities,
software resources) that meet specific application requirements. The MDE environments simplify system configuration by providing domain-specific languages to model robot
variability and model-to-model transformations to resolve
the variability in the software control system. The following sections illustrate two MDE approaches for robotic systems configuration. The former focuses on modeling
variability in robot functionality, the latter on modeling variability in robot resources.
Software Product Lines for Robotics
The HyperFlex [47] toolchain is a MDE environment for the
development and configuration of SPL for Robotics. It provides domain-specific languages and graphical editors for the
definition of three types of models. The template architectural
model represents the software architecture (as discussed in
the "System Architecture Modeling and Analysis" section) of
a family of similar software systems. As such, it explicitly represents all the possible components (variants) that implement
a given functionality (variation point). For example, the
obstacle avoidance functionality might be provided by two
alternative components implementing the Vector Histogram
approach or the Dynamic Window approach. The Feature
Model [48] symbolically represents the variant features of a
control system; symbols may indicate individual robot functionality (e.g., marker-based localization) or concepts that are
relevant in the application domain, such as the type of items
that the robot has to transport (e.g., liquid, fragile, and so on),
which affect the configuration of the control system.
The Resolution Model defines model-to-model transformations, which allow users to automatically configure the
architecture and functionality of a control system based on
required features. In this context, architecture configuration
means to resolve the functional variability of a system by
selecting one variant for each variation point. A model-totext transformation generates the configuration file (launch
file) corresponding to the architecture of the configured control system. Currently, the HypeFlex supports the configuration of component-based systems based on the ROS
framework. Let us consider an example of SPL related to the
simple system shown in Figure 1. The LocalNavigator compound component encapsulates the TrajectoryFollower component (see Figure 2), which implements the algorithm for
September 2015
*
IEEE ROBOTICS & AUTOMATION MAGAZINE
*
163
Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - September 2015
IEEE Robotics & Automation Magazine - September 2015 - Cover1
IEEE Robotics & Automation Magazine - September 2015 - Cover2
IEEE Robotics & Automation Magazine - September 2015 - 1
IEEE Robotics & Automation Magazine - September 2015 - 2
IEEE Robotics & Automation Magazine - September 2015 - 3
IEEE Robotics & Automation Magazine - September 2015 - 4
IEEE Robotics & Automation Magazine - September 2015 - 5
IEEE Robotics & Automation Magazine - September 2015 - 6
IEEE Robotics & Automation Magazine - September 2015 - 7
IEEE Robotics & Automation Magazine - September 2015 - 8
IEEE Robotics & Automation Magazine - September 2015 - 9
IEEE Robotics & Automation Magazine - September 2015 - 10
IEEE Robotics & Automation Magazine - September 2015 - 11
IEEE Robotics & Automation Magazine - September 2015 - 12
IEEE Robotics & Automation Magazine - September 2015 - 13
IEEE Robotics & Automation Magazine - September 2015 - 14
IEEE Robotics & Automation Magazine - September 2015 - 15
IEEE Robotics & Automation Magazine - September 2015 - 16
IEEE Robotics & Automation Magazine - September 2015 - 17
IEEE Robotics & Automation Magazine - September 2015 - 18
IEEE Robotics & Automation Magazine - September 2015 - 19
IEEE Robotics & Automation Magazine - September 2015 - 20
IEEE Robotics & Automation Magazine - September 2015 - 21
IEEE Robotics & Automation Magazine - September 2015 - 22
IEEE Robotics & Automation Magazine - September 2015 - 23
IEEE Robotics & Automation Magazine - September 2015 - 24
IEEE Robotics & Automation Magazine - September 2015 - 25
IEEE Robotics & Automation Magazine - September 2015 - 26
IEEE Robotics & Automation Magazine - September 2015 - 27
IEEE Robotics & Automation Magazine - September 2015 - 28
IEEE Robotics & Automation Magazine - September 2015 - 29
IEEE Robotics & Automation Magazine - September 2015 - 30
IEEE Robotics & Automation Magazine - September 2015 - 31
IEEE Robotics & Automation Magazine - September 2015 - 32
IEEE Robotics & Automation Magazine - September 2015 - 33
IEEE Robotics & Automation Magazine - September 2015 - 34
IEEE Robotics & Automation Magazine - September 2015 - 35
IEEE Robotics & Automation Magazine - September 2015 - 36
IEEE Robotics & Automation Magazine - September 2015 - 37
IEEE Robotics & Automation Magazine - September 2015 - 38
IEEE Robotics & Automation Magazine - September 2015 - 39
IEEE Robotics & Automation Magazine - September 2015 - 40
IEEE Robotics & Automation Magazine - September 2015 - 41
IEEE Robotics & Automation Magazine - September 2015 - 42
IEEE Robotics & Automation Magazine - September 2015 - 43
IEEE Robotics & Automation Magazine - September 2015 - 44
IEEE Robotics & Automation Magazine - September 2015 - 45
IEEE Robotics & Automation Magazine - September 2015 - 46
IEEE Robotics & Automation Magazine - September 2015 - 47
IEEE Robotics & Automation Magazine - September 2015 - 48
IEEE Robotics & Automation Magazine - September 2015 - 49
IEEE Robotics & Automation Magazine - September 2015 - 50
IEEE Robotics & Automation Magazine - September 2015 - 51
IEEE Robotics & Automation Magazine - September 2015 - 52
IEEE Robotics & Automation Magazine - September 2015 - 53
IEEE Robotics & Automation Magazine - September 2015 - 54
IEEE Robotics & Automation Magazine - September 2015 - 55
IEEE Robotics & Automation Magazine - September 2015 - 56
IEEE Robotics & Automation Magazine - September 2015 - 57
IEEE Robotics & Automation Magazine - September 2015 - 58
IEEE Robotics & Automation Magazine - September 2015 - 59
IEEE Robotics & Automation Magazine - September 2015 - 60
IEEE Robotics & Automation Magazine - September 2015 - 61
IEEE Robotics & Automation Magazine - September 2015 - 62
IEEE Robotics & Automation Magazine - September 2015 - 63
IEEE Robotics & Automation Magazine - September 2015 - 64
IEEE Robotics & Automation Magazine - September 2015 - 65
IEEE Robotics & Automation Magazine - September 2015 - 66
IEEE Robotics & Automation Magazine - September 2015 - 67
IEEE Robotics & Automation Magazine - September 2015 - 68
IEEE Robotics & Automation Magazine - September 2015 - 69
IEEE Robotics & Automation Magazine - September 2015 - 70
IEEE Robotics & Automation Magazine - September 2015 - 71
IEEE Robotics & Automation Magazine - September 2015 - 72
IEEE Robotics & Automation Magazine - September 2015 - 73
IEEE Robotics & Automation Magazine - September 2015 - 74
IEEE Robotics & Automation Magazine - September 2015 - 75
IEEE Robotics & Automation Magazine - September 2015 - 76
IEEE Robotics & Automation Magazine - September 2015 - 77
IEEE Robotics & Automation Magazine - September 2015 - 78
IEEE Robotics & Automation Magazine - September 2015 - 79
IEEE Robotics & Automation Magazine - September 2015 - 80
IEEE Robotics & Automation Magazine - September 2015 - 81
IEEE Robotics & Automation Magazine - September 2015 - 82
IEEE Robotics & Automation Magazine - September 2015 - 83
IEEE Robotics & Automation Magazine - September 2015 - 84
IEEE Robotics & Automation Magazine - September 2015 - 85
IEEE Robotics & Automation Magazine - September 2015 - 86
IEEE Robotics & Automation Magazine - September 2015 - 87
IEEE Robotics & Automation Magazine - September 2015 - 88
IEEE Robotics & Automation Magazine - September 2015 - 89
IEEE Robotics & Automation Magazine - September 2015 - 90
IEEE Robotics & Automation Magazine - September 2015 - 91
IEEE Robotics & Automation Magazine - September 2015 - 92
IEEE Robotics & Automation Magazine - September 2015 - 93
IEEE Robotics & Automation Magazine - September 2015 - 94
IEEE Robotics & Automation Magazine - September 2015 - 95
IEEE Robotics & Automation Magazine - September 2015 - 96
IEEE Robotics & Automation Magazine - September 2015 - 97
IEEE Robotics & Automation Magazine - September 2015 - 98
IEEE Robotics & Automation Magazine - September 2015 - 99
IEEE Robotics & Automation Magazine - September 2015 - 100
IEEE Robotics & Automation Magazine - September 2015 - 101
IEEE Robotics & Automation Magazine - September 2015 - 102
IEEE Robotics & Automation Magazine - September 2015 - 103
IEEE Robotics & Automation Magazine - September 2015 - 104
IEEE Robotics & Automation Magazine - September 2015 - 105
IEEE Robotics & Automation Magazine - September 2015 - 106
IEEE Robotics & Automation Magazine - September 2015 - 107
IEEE Robotics & Automation Magazine - September 2015 - 108
IEEE Robotics & Automation Magazine - September 2015 - 109
IEEE Robotics & Automation Magazine - September 2015 - 110
IEEE Robotics & Automation Magazine - September 2015 - 111
IEEE Robotics & Automation Magazine - September 2015 - 112
IEEE Robotics & Automation Magazine - September 2015 - 113
IEEE Robotics & Automation Magazine - September 2015 - 114
IEEE Robotics & Automation Magazine - September 2015 - 115
IEEE Robotics & Automation Magazine - September 2015 - 116
IEEE Robotics & Automation Magazine - September 2015 - 117
IEEE Robotics & Automation Magazine - September 2015 - 118
IEEE Robotics & Automation Magazine - September 2015 - 119
IEEE Robotics & Automation Magazine - September 2015 - 120
IEEE Robotics & Automation Magazine - September 2015 - 121
IEEE Robotics & Automation Magazine - September 2015 - 122
IEEE Robotics & Automation Magazine - September 2015 - 123
IEEE Robotics & Automation Magazine - September 2015 - 124
IEEE Robotics & Automation Magazine - September 2015 - 125
IEEE Robotics & Automation Magazine - September 2015 - 126
IEEE Robotics & Automation Magazine - September 2015 - 127
IEEE Robotics & Automation Magazine - September 2015 - 128
IEEE Robotics & Automation Magazine - September 2015 - 129
IEEE Robotics & Automation Magazine - September 2015 - 130
IEEE Robotics & Automation Magazine - September 2015 - 131
IEEE Robotics & Automation Magazine - September 2015 - 132
IEEE Robotics & Automation Magazine - September 2015 - 133
IEEE Robotics & Automation Magazine - September 2015 - 134
IEEE Robotics & Automation Magazine - September 2015 - 135
IEEE Robotics & Automation Magazine - September 2015 - 136
IEEE Robotics & Automation Magazine - September 2015 - 137
IEEE Robotics & Automation Magazine - September 2015 - 138
IEEE Robotics & Automation Magazine - September 2015 - 139
IEEE Robotics & Automation Magazine - September 2015 - 140
IEEE Robotics & Automation Magazine - September 2015 - 141
IEEE Robotics & Automation Magazine - September 2015 - 142
IEEE Robotics & Automation Magazine - September 2015 - 143
IEEE Robotics & Automation Magazine - September 2015 - 144
IEEE Robotics & Automation Magazine - September 2015 - 145
IEEE Robotics & Automation Magazine - September 2015 - 146
IEEE Robotics & Automation Magazine - September 2015 - 147
IEEE Robotics & Automation Magazine - September 2015 - 148
IEEE Robotics & Automation Magazine - September 2015 - 149
IEEE Robotics & Automation Magazine - September 2015 - 150
IEEE Robotics & Automation Magazine - September 2015 - 151
IEEE Robotics & Automation Magazine - September 2015 - 152
IEEE Robotics & Automation Magazine - September 2015 - 153
IEEE Robotics & Automation Magazine - September 2015 - 154
IEEE Robotics & Automation Magazine - September 2015 - 155
IEEE Robotics & Automation Magazine - September 2015 - 156
IEEE Robotics & Automation Magazine - September 2015 - 157
IEEE Robotics & Automation Magazine - September 2015 - 158
IEEE Robotics & Automation Magazine - September 2015 - 159
IEEE Robotics & Automation Magazine - September 2015 - 160
IEEE Robotics & Automation Magazine - September 2015 - 161
IEEE Robotics & Automation Magazine - September 2015 - 162
IEEE Robotics & Automation Magazine - September 2015 - 163
IEEE Robotics & Automation Magazine - September 2015 - 164
IEEE Robotics & Automation Magazine - September 2015 - 165
IEEE Robotics & Automation Magazine - September 2015 - 166
IEEE Robotics & Automation Magazine - September 2015 - 167
IEEE Robotics & Automation Magazine - September 2015 - 168
IEEE Robotics & Automation Magazine - September 2015 - 169
IEEE Robotics & Automation Magazine - September 2015 - 170
IEEE Robotics & Automation Magazine - September 2015 - 171
IEEE Robotics & Automation Magazine - September 2015 - 172
IEEE Robotics & Automation Magazine - September 2015 - 173
IEEE Robotics & Automation Magazine - September 2015 - 174
IEEE Robotics & Automation Magazine - September 2015 - 175
IEEE Robotics & Automation Magazine - September 2015 - 176
IEEE Robotics & Automation Magazine - September 2015 - 177
IEEE Robotics & Automation Magazine - September 2015 - 178
IEEE Robotics & Automation Magazine - September 2015 - 179
IEEE Robotics & Automation Magazine - September 2015 - 180
IEEE Robotics & Automation Magazine - September 2015 - 181
IEEE Robotics & Automation Magazine - September 2015 - 182
IEEE Robotics & Automation Magazine - September 2015 - 183
IEEE Robotics & Automation Magazine - September 2015 - 184
IEEE Robotics & Automation Magazine - September 2015 - 185
IEEE Robotics & Automation Magazine - September 2015 - 186
IEEE Robotics & Automation Magazine - September 2015 - 187
IEEE Robotics & Automation Magazine - September 2015 - 188
IEEE Robotics & Automation Magazine - September 2015 - 189
IEEE Robotics & Automation Magazine - September 2015 - 190
IEEE Robotics & Automation Magazine - September 2015 - 191
IEEE Robotics & Automation Magazine - September 2015 - 192
IEEE Robotics & Automation Magazine - September 2015 - Cover3
IEEE Robotics & Automation Magazine - September 2015 - 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