IEEE Robotics & Automation Magazine - September 2015 - 162
an existing software library. The components interconnections are specified at design-time in the PIM, but can be
modified at runtime to
adapt the robot behavior
to the actual operational
Autonomous robots are versatile
conditions. For example,
machines equipped with a rich
the ObstacleAvoider task
requires sensory informaset of software functionalities.
tion (e.g., a point cloud)
to detect obstacles. At
run-time different sensors can provide the point cloud based
on environment illumination (e.g., a laser scanner or a stereo
vision system).
The SmartSoft MDE includes the task coordination language (SmartTCL) for specifying the high-level application
tasks (e.g., fetch coffee to visitors) that the robot is able to carry
out and how these tasks are refined during task execution in
terms of services provided by individual components (e.g.,
navigate towards the coffee machine). The SmartSoft framework provides the SmartTCL engine that is in charge of
orchestrating the control system by activating, deactivating,
and interconnecting components according to the action plan.
Proteus
The Proteus [36] project (platform for RObotic Modeling and
Transformation for End-Users and Scientific communities) is
an initiative of the French robotic community (GDR Robotique) that has developed a MDE toolkit for robotic system
design and implementation. The distinctive feature of the
Proteus Toolkit is the use of a set of ontologies [37] for representing knowledge about robotic systems, operational environments, and applications. The Proteus ontologies are an
attempt to formalize the vocabulary of robotic system engineers, to allow them to model robot control architectures
directly in terms of domain concepts (e.g., sensor, motion
%Stereotype&
SensorSystem
+ frequency: Float32 [1]
+ identifier: String [1]
%Stereotype&
ImageSensorSystem
%Stereotype&
ObjectTrackingSensorSystem
%Stereotype&
CameraSystem
%Stereotype&
LidarSystem
+ angle_min: Float32 [1]
+ angle_max: Float32 [1]
+ scan_time: Float32 [1]
+ range_min: Float32 [1]
+ range_max: Float32 [1]
+ width: UInt32 [1]
+ height: UInt32 [1]
+ color_format: String [1]
+ translate: Point32 [1]
+ rotate: Point32 [1]
Figure 4. The RobotML profile for robot sensors.
162
*
IEEE ROBOTICS & AUTOMATION MAGAZINE
*
September 2015
planner, rover, and so on) and not only in terms of software
concepts (e.g., component, port, algorithm, and so on). Similar initiatives are sponsored by the IEEE Standard Association, which has established the Ontologies for Robotics and
Automation working group.
The Proteus ontologies are the basis of the Proteus DSL
(RobotML) [38], which includes modeling entities for specific architectural elements (e.g., Robot, SensorSystem,
ActuatorSystem, LocalizationSystem) and architectural
styles (e.g., reactive, deliberative, hybrid). Similar to SmartSoft (see the "SmartSoft" section), the Proteus toolchain is
based on an UML profile for defining the PIM of the robot
functional architecture. As an example, Figure 4 shows an
excerpt of the RobotML profile for robot sensors, where the
modeling entities CameraSystem and LidarSystem are
defined as stereotypes that can be used to annotate the components of the robot control architecture. For code generation, the elements of the PIM model need to be allocated to
an execution platform, such as a middleware and a simulator.
For example, the element representing robot functionality
and control activities are allocated to a component-based
middleware, while the element representing the robotic
equipment is allocated to a simulator.
Modeling the Components Behavior
Code generation from behavior models is a growing area of
interest due to its benefits of verifying models by simulation
and reducing error-prone hand-coding efforts. Several tools
generate source code form the UML specifications to mainstream languages such as C, C+, and Java and to simulation
languages such as SystemC. Typically, the MDE environments
supporting component-based architectural modeling (see the
"System Architecture Modeling and Analysis" section) also
provide languages for modeling the discrete behavior of individual components, such as UML state charts and petri nets.
When developing embedded control software, control systems engineers model both the control algorithm and the system to be controlled, the so-called plant, together to ensure the
optimal performance of processes with continuous dynamics.
[39]. Typically, the robot control functionalities are conveniently modeled as hybrid systems, since they can specify continuous change of the system state as well as discrete transition
of states. Continuous behavior can be specified using differential as well as algebraic equations. Code generation from
hybrid-systems models eventually involves simulating continuous change of a variable by step-wise update of the variable
based on numerical methods. This requires the model designer to assign a rate by which the continuous state evolves.
Several modeling and simulation environments for embedded systems (e.g., MATLAB/Simulink [40] and 20-sim [41])
support code generation from continuous and hybrid models,
defined with DSLs, such as Bond Graphs, Block Diagrams,
and Modelica. These tools allow users to define custom templates for code generation to simplify the integration of behavioral code with component frameworks. Brodskiy et al. [42]
exemplify the modeling, code generation, and integration
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