Pure Coordination Using the Coordinator-Configurator Pattern
1. Pure Coordination using the
Coordinator–Configurator Pattern
3rd International Workshop on Domain-Specific Languages and models
for ROBotic systems
M. Klotzbuecher1 Geoffrey Biggs2 Herman Bruyninckx1
1 Department of Mechanical Engineering
Katholieke Universiteit Leuven
Belgium
2 Intelligent Systems Research Institute
AIST, Japan.
November 5, 2012
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
2. Introduction
Context: coordination in component based systems.
Coordination supervises and monitors functional computations.
Commonly used coordination models: FSM, Petri-nets, Statecharts,
SFCs.
Common practice: in a Coordination FSM:
Call methods/operations (move to)
Change parameters (e.g. set a gain)
Start and stop components
...
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
3. Problem Statement
The common practice of tightly integrating the action execution within the
Coordinator has three disadvantages:
1 Reduced resuability of Coordinator due to pollution with platform
dependent information.
2 Reduced determinism of Coordinator
Logical (no separation between logical and platform specific error).
Temporal (due to blocking calls).
...
3 Reduced robustness of Coordinator: crashing or indefinite blocking
of calls will render Coordinator inoperative.
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
4. Approach: Coordinator-Configurator Pattern
Split “rich” coordinator into Coordinator
Pure Coordinator and
Configurator. command events status events
Coordinator commands and Configurator
call
monitors via events only.
start/stop
Configurator is configured with
computation configure
a set of Configurations that it
applies upon receiving the computation
respective event. computation
Success or failure is likewise
reported via events.
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
5. The Role of the DSL
Formalization: A language to express the
Configurator–Configuration; Shields Coordinator from:
Software platform specific details (e.g. how to change a property)
Hardware platform specific details (e.g. how a specific gripper is
opened)
Encourages construction of reusable Coordinators by introducing:
A dedicated language to model change
The Configurator as a dedicated entity to apply change
The approach is independent of the specific coordination model used.
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
6. Case study: dual youbot coupling
Two KuKA YouBots coupled
using impedance control.
Safe behavior: switch to gravity
compensation upon exceeding a
force threshold or
communication breakdown.
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
7. Component structure
youbot_coupling
Coordinator
command events status events
Configurator
e_force_thres_exceeded/below
computation connected to CartPosMsr
CartPosDsr of peer Youbot
Cart_Impedance
CartForceDes CartPosMsr
Connected to CartPosDsr
of peer Youbot
Dynamics
eQoS_change
heartbeat_in
youbot_driver
commlat
heartbeat_out
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
8. Coordination Statechart (subset)
unsynchronized and coupling coordination
synchronized model
unsynchronized
whether the communication
quality is sufficient or not.
e_QoS_OK e_QoS_NOTOK
Switch between
gravity comp and copying synchronized
depending on the current forces.
gravity_comp
Impedance control and gravity
[ above_force_thres() ]
compensation are enabled upon [ ! above_force_thres() ]
entering and exiting copying copying
respectively. entry: enable_copying(true)
exit: disable_copying(false)
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
9. The DSL implementation: Configurator–Configuration
Configuration {
disable_copying = Configuration{
port_write("Cart_Impedance.ext_ref_mode", false)
},
enable_copying = Configuration {
port_write("Cart_Impedance.ext_ref_mode", true)
},
eight_DOF = Configuration {
property_set("Dynamics.force_gain", {0.1, 0.1,
0.1})
},
five_DOF = Configuration {
property_set("Dynamics.force_gain", {0, 0, 0})
},
National Institute of
} Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
10. Side node: Unifying Deployment and Coordination
Observation:
By extending the Configurator with
primitives for instantiating components, create_components
deployment and startup can be naturally
e_create_components_OK
expressed as just another case of runtime
Coordination.
configure_components
e_configure_components_OK
start_components
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
11. Conclusions
The coordinator-configurator pattern enables:
Reusability, by encapsulating software and hardware platform
specifics in the Configurator–Configuration.
Increased determinism, by separating commanding and execution.
Higher robustness of the Coordinator, by shielding it from the
execution of actions.
Deployment is reduced to just an other case of run-time coordination.
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST
12. Thanks
Questions?
Acknowledgements This research was funded by the European Community
under grant agreements FP7-ICT-231940 (Best Practice in Robotics), and
FP7-ICT-230902(ROSETTA), and by K.U.Leuven’s Concerted Research Action
Global real-time optimal control of autonomous robots and mechatronic systems.
National Institute of
Advanced Industrial Science
and Technology
Pure Coordination using the Coordinator–Configurator Pattern
AIST