Bagel

Biologically inspired Graph-Based Language

Ansprechpartner/in:
Bagel ist eine Graph basierte Programmiersprache. Dabei werden Rechenoperationen durch Knoten beschrieben und der Datenfluss wird durch Kanten definiert. Ein Algorithmus der durch einen Bagel Graphen dargestellt wird kann auf einer höheren Ebene wieder als Rechenoperation eines Bagel Knoten verwendet werden. Auf diese Weise werden die Kernalgorithmen mit den gleichen Graphen (Schnittstellen) beschrieben wie die Organisation von verschiedenen Software- bzw. Bagel-Modulen. Das und die Möglichkeit, beliebig viele Kanten eines Inputs auf verschiedene Art und Weise miteinander verrechnen zu können, erlauben vor allem die effiziente Modellierung von hierarchischen verhaltensbasierten Architekturen.
Schlüsselwörter: Steuerung, Verhalten, Roboter Programmierung
Status: aktiv
Betriebssystem: macOS, Windows, Linux
Programmiersprachen: C, C++
Eigentumsrechte: Diese Software wurde vom DFKI sowie von der Arbeitsgruppe Robotik der Universität Bremen entwickelt und wird unter dieser Verantwortung weiterentwickelt. Bei Fragen und Anregungen wenden sie sich an die Ansprechpartner.
 

Softwarebeschreibung

Schnittstellendefinition eines Bagel Knoten (Quelle: DFKI GmbH)
Grafische Benutzeroberfläche um Bagel Graphen zu bearbeiten (Quelle: DFKI GmbH)
Die Besonderheit der Bagel Repräsentation ist, dass Lernverfahren, wie beispielsweise genetische Algorithmen, mit der Graphstruktur arbeiten und somit auf allen Verhaltensebenen eingesetzt werden können. So kann beispielsweise eine erste Optimierung Kernalgorithmen generieren während mit den gleichen Werkzeugen in einer zweiten Iteration die Verwendung der erlernten Kernalgorithmen entwickelt wird. Ebenso können beide Iterationen über eine Ko-Evolution auch gleichzeitig durchgeführt werden. Neben den positiven Eigenschaften von Bagel für die Verwendung von Lernverfahren minimiert der vereinfachte Funktionsumfang, im Vergleich zu Programmiersprachen wie C, deutlich die Fehleranfälligkeit der Algorithmen. Beispielsweise können keine Speicherzugriffsfehler durch das Programmieren in Bagel generiert werden.

Zum Erstellen von Bagel Modulen wird eine graphische Benutzeroberfläche bereitgestellt wodurch auch komplexe Bagel-Graphen übersichtlich entwickelt werden können. Die Möglichkeit, externen C/C++ Code einbinden zu können, erlaubt außerdem das schnelle Nutzen und Überführen von bestehen Bibliotheken.

Referenzen

Team: Team V - Verhaltenssteuerung und Simulation
Anwendungsfelder: Weltraumrobotik
Verwandte Projekte: LIMES
Lernen intelligenter Bewegungen kinematisch komplexer Laufroboter für die Exploration im Weltraum (05.2012- 04.2016)
BesMan
Behaviors for Mobile Manipulation (05.2012- 07.2016)
D-Rock
Modelle, Verfahren und Werkzeuge für die Modelbasierte Softwareentwicklung von Robotern (06.2015- 05.2018)
VIPE
Exploration in schwer zugänglichem Terrain anhand visueller und propriozeptiver Daten im Valles Marineris (05.2015- 06.2018)
TransFIT
Flexible Interaktion für Infrastrukturaufbau mittels Teleoperation und direkte Kollaboration und Transfer in Industrie 4.0 (07.2017- 06.2021)
Verwandte Robotersysteme: SpaceClimber
MANTIS
Mehrbeiniges Manipulations- und Lokomotionssystem
Charlie
iStruct Demonstrator
© DFKI GmbH
zuletzt geändert am 01.11.2017
nach oben