Biologically inspired Graph-Based Language

Bagel is a graph-based programming language where nodes define algorithms that transfer input values to output ports and edges define the data flow within the nodes. Additionally, a Bagel graph defines global inputs and outputs that allow to use the whole graph on a higher level as a single Bagel node. Thus, the interface of core algorithms is the same as the interface of a composition of core algorithms and the same graphs are used to define new algorithms and component networks. This and with the possibility to merge multiple edges on one input via several merge functions allow an efficient modeling of hierarchical behavior-based architectures.
Keywords: Control, Behavior, Robot programming
Status: active
Operating system: macOS, Windows, Linux
Programming languages: C, C++
Ownership: This software was developed by the DFKI as well as by the Robotics Research Group and the University of Bremen and is being further developed under this responsibility. For questions and suggestions, please refer to the contact persons.

Software description

Interface defintion of a Bagel node (Source: DFKI GmbH)
Graphical User Interface to design Bagel graphs (Source: DFKI GmbH)
Bagel is designed with the main focus to provide an interface for machine-learning and genetic algorithms to generate robotic behaviors. For example, a first learning iteration could generate core algorithms that are used in a second iteration to learn more complex behaviors. Furthermore, a co-evolution could learn both iterations simultaneously. Another advantage of Bagel is the reduced functionality compared to high-level programming languages, which allows an easier verification of the programs and reduces the probability to generate errors like typical segfaults known from the C language.

To generate Bagel modules, a graphical user interface is provided which allows to design even complex Bagel graphs in a concise representation. In addition, the possibility to include external C/C++ code allows an easy integration of and transfer from existing libraries.


Team: Team V - Behavior Control & Simulation
Application Field: Space Robotics
Related Projects: LIMES
Learning Intelligent Motions for Kinematically Complex Robots for Exploration in Space (05.2012- 04.2016)
Behaviors for Mobile Manipulation (05.2012- 07.2016)
Models, methods and tools for the model based software development of robots (06.2015- 05.2018)
Exploration in terrain difficult to access (e.g. Valles Marineris) using visual and proprioceptive data. (05.2015- 06.2018)
Flexible Interaction for infrastructures establishment by means of teleoperation and direct collaboration; transfer into industry 4.0 (07.2017- 06.2021)
Related Robots: SpaceClimber
Multi-legged Manipulation and Locomotion System
iStruct Demonstrator
last updated 01.11.2017
to top