Cognitive robot programming using procedural parameters and complex event processing

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.