Tag Archives: Data Flow Programming

Designing robotic architectures by coordinating different modules in a data-flow graphical paradigm

Sebastian Buck, Andreas Zell, CS::APEX: A Framework for Algorithm Prototyping and Experimentation with Robotic Systems. Modeling Perception and High Level Robot Control with Activity Flow Graphs, Journal of Intelligent & Robotic Systems (2019) 94:371–387, DOI: 10.1007/s10846-018-0831-7.

Robotic systems differ drastically in their sensory capabilities, their computational power and their designated tasks. For
efficient algorithm development, however, we need to have a common modeling framework that enables us to generalize and
re-use existing solutions. A modular approach, which is coherent across different platforms, also allows faster prototyping
of new systems, given that existing functionality can be reused from already implemented modules. In this paper we develop
a modeling framework based on data flow graphs that achieves the following goal: We first merge synchronous data flow
and reactive programming into hybrid flow graphs, where we explicitly model synchronous and asynchronous data flow.
Then we transfer concepts from finite-state machines to achieve a coherent framework which we call Activity Flow Graphs.
The flow of activity enables us to model high level states directly in the data flow graph. The result is a single computation
graph that can express both perception and high level control aspects of any robotic system. This theoretical foundation is
the core of our open-source software framework CS::APEX, which allows the creation, manipulation and evaluation of
Activity Flow Graphs and enables rapid prototyping and experimentation and can be used with any robot supporting the
Robot Operating System (ROS). We then demonstrate the framework with two high level models for a fetch-and-delivery
robot and a person following robot.