Current robot software architectures use the publish/subscribe messaging protocol to enable communication between components. The messages published by a component have to meet the specifications of components subscribing to these messages. Because of this, components can often not be used directly together and either have to be modified first or need to be wrapped using connector components. This increases the amount of work required to develop robot software. In this paper we propose Complex Events Processing (CEP) with Procedural Parameters as an alternative solution. CEP allows a developer to use various operators besides subscribe to define the communication between components. These operators for example allow mapping, filtering and sampling of messages. To be able to provide a generic set of operators which can be used in any robot application, we allow developers to define procedures as parameters to the operators. The procedures act as a strategy for the computation to be performed, the operator defining what should be done and the procedural parameter defining how to do it. Through an example we show that CEP can be used for creating robot behaviors.
[1]
Morgan Quigley,et al.
ROS: an open-source Robot Operating System
,
2009,
ICRA 2009.
[2]
Tomasz Kornuta,et al.
Handling of Asynchronous Data Flow in Robot Perception Subsystems
,
2014,
SIMPAR.
[3]
Martin Odersky,et al.
Deprecating the Observer Pattern with Scala.React
,
2012
.
[4]
Kyoungho An,et al.
Reactive stream processing for data-centric publish/subscribe
,
2015,
DEBS.
[5]
Erik Meijer.
Your Mouse is a Database
,
2012,
ACM Queue.
[6]
Kenji Suzuki,et al.
Targets-Drives-Means: A declarative approach to dynamic behavior specification with higher usability
,
2014,
Robotics Auton. Syst..
[7]
Paul Hudak,et al.
Functional reactive animation
,
1997,
ICFP '97.
[8]
Ralph Johnson,et al.
design patterns elements of reusable object oriented software
,
2019
.
[9]
Ronald C. Arkin,et al.
An Behavior-based Robotics
,
1998
.