This document presents the Coordinator-Configurator pattern for pure coordination in component-based robotic systems. The pattern splits the traditional "rich" coordinator into a pure coordinator and a configurator. The coordinator communicates with the configurator only through events, while the configurator applies configurations to execute actions. This separation improves reusability, determinism, and robustness compared to traditional approaches. The document also describes how domain-specific languages can be used to define configurations and discusses how deployment can be viewed as a form of runtime coordination.
"Удобный и расширяемый роутинг в iOS-приложении" Тимур Юсипов (Avito)AvitoTech
В своём докладе я расскажу о подходе к построению навигации в больших приложениях на примере демо-проекта, приближенного по архитектуре к приложению Avito.
Данная архитектура позволяет поддерживать DeepLink’и и iPad в существующем приложении, показывать плашки Push-уведомлений в верхнем видимом модуле, совершать переходы из верхнего видимого модуля, вызванные корневым модулем приложения, а также централизовано управлять анимацией переходов.
Разработанная нами навигация оборачивает UIKit для совершения переходов в засахаренном и декларативном стиле. Использование этой системы позволило снизить связанность кода для повышения его переиспользуемости и тестируемости, а также выработать общие стандарты к построению стека навигации. Наиболее хорошо эта система сочетается с архитектурой VIPER, но может использоваться и без нее.
По ходу доклада я также расскажу о том, как выглядела навигация в приложении Avito раньше; о том, какой она стала с началом использования архитектуры VIPER; о проблемах, которые мы увидели, и об итоговом решении. Также вкратце рассмотрим, что же скрывается под капотом у этой системы.
"Удобный и расширяемый роутинг в iOS-приложении" Тимур Юсипов (Avito)AvitoTech
В своём докладе я расскажу о подходе к построению навигации в больших приложениях на примере демо-проекта, приближенного по архитектуре к приложению Avito.
Данная архитектура позволяет поддерживать DeepLink’и и iPad в существующем приложении, показывать плашки Push-уведомлений в верхнем видимом модуле, совершать переходы из верхнего видимого модуля, вызванные корневым модулем приложения, а также централизовано управлять анимацией переходов.
Разработанная нами навигация оборачивает UIKit для совершения переходов в засахаренном и декларативном стиле. Использование этой системы позволило снизить связанность кода для повышения его переиспользуемости и тестируемости, а также выработать общие стандарты к построению стека навигации. Наиболее хорошо эта система сочетается с архитектурой VIPER, но может использоваться и без нее.
По ходу доклада я также расскажу о том, как выглядела навигация в приложении Avito раньше; о том, какой она стала с началом использования архитектуры VIPER; о проблемах, которые мы увидели, и об итоговом решении. Также вкратце рассмотрим, что же скрывается под капотом у этой системы.
ACCELERATED DEEP LEARNING INFERENCE FROM CONSTRAINED EMBEDDED DEVICESIAEME Publication
Hardware looping is a feature of some processor instruction sets whose hardware can repeat the body of a loop automatically, rather than requiring software instructions which take up cycles (and therefore time) to do so. Loop Unrolling is a loop transformation technique that attempts to advance a program's execution speed to the detriment of its twofold size, which is a methodology known as space–time tradeoff. A convolutional neural network is created with simple loops, with hardware looping, with loop unrolling and with both hardware looping and loop unrolling, and a comparison is made to evaluate the effectiveness of hardware looping and loop unrolling. The hardware loops alone will add to a cycle check decline, while the mix of hardware loops and dot product instructions will decrease the clock cycle tally further. The CNN is simulated on Xilinx Vivado 2021.1 running on Zync-7000 FPGA.
The IIC's Smart Manufacturing Connectivity for Brown-field Sensors testbed has completed its first phase, releasing a new white paper and looking onward to further progress and success.
This presentation is a short introduction to issues in Hardware-Software Codesign. It discusses definition of codesign, its significance, design issues in Hardware-software codesign, Abstraction levels, Duality of harware and software
Idc Ei Smart Buildings Maturity Model Webcast 4 3 12 SlidesCasey Talon
he building management industry is undergoing a transformation as innovations in information technology and building automation converge to generate enhanced efficiency for cost savings and energy management. The maturity model provides common language and a discussion framework for navigating this changing technology landscape.
This material provides guidelines in form of a presentation of the Context Awareness - component of the Adaptation Plane.
The Context Awareness is a component which implements a mechanism to identify the current context under which the CITADEL framework as well as an application is used/operated.
To identify the current context, the Context Awareness will use run-time data provided by the Monitoring Plane as input on one hand and a pre-defined context model on the other hand.
ACCELERATED DEEP LEARNING INFERENCE FROM CONSTRAINED EMBEDDED DEVICESIAEME Publication
Hardware looping is a feature of some processor instruction sets whose hardware can repeat the body of a loop automatically, rather than requiring software instructions which take up cycles (and therefore time) to do so. Loop Unrolling is a loop transformation technique that attempts to advance a program's execution speed to the detriment of its twofold size, which is a methodology known as space–time tradeoff. A convolutional neural network is created with simple loops, with hardware looping, with loop unrolling and with both hardware looping and loop unrolling, and a comparison is made to evaluate the effectiveness of hardware looping and loop unrolling. The hardware loops alone will add to a cycle check decline, while the mix of hardware loops and dot product instructions will decrease the clock cycle tally further. The CNN is simulated on Xilinx Vivado 2021.1 running on Zync-7000 FPGA.
The IIC's Smart Manufacturing Connectivity for Brown-field Sensors testbed has completed its first phase, releasing a new white paper and looking onward to further progress and success.
This presentation is a short introduction to issues in Hardware-Software Codesign. It discusses definition of codesign, its significance, design issues in Hardware-software codesign, Abstraction levels, Duality of harware and software
Idc Ei Smart Buildings Maturity Model Webcast 4 3 12 SlidesCasey Talon
he building management industry is undergoing a transformation as innovations in information technology and building automation converge to generate enhanced efficiency for cost savings and energy management. The maturity model provides common language and a discussion framework for navigating this changing technology landscape.
This material provides guidelines in form of a presentation of the Context Awareness - component of the Adaptation Plane.
The Context Awareness is a component which implements a mechanism to identify the current context under which the CITADEL framework as well as an application is used/operated.
To identify the current context, the Context Awareness will use run-time data provided by the Monitoring Plane as input on one hand and a pre-defined context model on the other hand.
Similar to Pure Coordination Using the Coordinator-Configurator Pattern (20)
A short introduction to Smalltalk during Bar Camp Hanoi 2009. I use some slides of Alexandre Bergel for this presentation.
I you want to more information about Smalltalk in Vietnam, you can contact me.
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