NDLCom

Node Level Data Link Communication

Ansprechpartner/in:
Moderne robotische Systeme verfügen über eine Vielzahl von dezentralen Sensor- und Steuerelektroniken, welche zum Teil untereinander kommunizieren wollen. Das NDLCom Protokoll ermöglicht es kleine Datenpakete in einem einfachen Netzwerk zwischen Mikrocontrollern, FPGAs und Computern auszutauschen. Dabei ist jeder Teilnehmer mit einer Punkt-zu-Punkt Verbindung zu mindestens einem Nachbarn verbunden und jeder Teilnehmer muss empfangene Nachrichten entsprechend der Empfängeradresse weiterleiten. Implementierungen für das Empfangen, Weiterleiten und Dekodieren von Nachrichten sind für C/C++ und VHDL vorhanden. Das Darstellen, Loggen und Exportieren von empfangenen Daten ist in einer grafischen Benutzerumgebung möglich.
Schlüsselwörter: Serielle Kommunikation, OSI-Layer, Embedded, C, VHDL, Qt, CSV-Export
Status: aktiv
Betriebssystem: Linux, Embedded, FPGA
Programmiersprachen: C, C++,Qt4, VHDL
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

Zusammensetzung eines Pakets (Quelle: DFKI GmbH)
Typische Sitzung der Qt4 Gui (Quelle: DFKI GmbH)

Moderne robotische Systeme verfügen über zunehmend mehr dezentrale Verarbeitungsknoten. Diese werden zum Beispiel verwendet um im System verteilte Sensoren auszuwerten oder um eine hochfrequente Regelung von Motoren zu ermöglichen. Das Zusammenfassen der Knoten in einem paketbasierten Punkt-zu-Punkt Netzwerk erlaubt einen flexiblen Datenaustausch zwischen beliebigen Teilnehmern. NDLCom (Node Data Link Communication) definiert ein einfaches Paketformat für Datenaustausch mittels serieller Schnittstellen, das im Gegensatz zu traditionellen Netzwerktechnologien wie IP einen relativ geringen Ressourcenbedarf hat. Das erlaubt auch Mikrocontrollern oder FPGAs mit eingeschränkter Rechenleistung die Kommunikation mit anderen Knoten.

Zur Segmentierung des Datenstroms werden ähnlich wie bei HDLC definierte Marker verwendet. Der Header eines Pakets besteht aus 4 Byte: Jeweils einer Empfänger- und Absenderadresse für bis zu 254 verschiedenen Adressen sowie der speziellen "Broadcast"-Adresse. Weiterhin enthalten ist ein Paket-Zähler zur Erkennung von verlorenen Paketen. Der Nutzlast von maximal 255 Bytes ist die entsprechende Längenangabe vorangestellt. Jedes Paket ist am Ende mit einer 16 Bit Prüfsumme versehen um Übertragungsfehler zu erkennen. Das Wiederherstellen von verloren gegangenen oder beschädigten Paketen wird vom Protokoll nicht unterstützt. Jeder Teilnehmer muss in der Netzwerktopologie über einen eindeutigen Pfad zu erreichen sein, Schleifen sind nicht erlaubt.

Es existiert eine mit Qt4 geschriebene grafische Benutzerumgebung für Linux, um mit einem normalen Computer in einem NDLCom-Netzwerk zu agieren. Es können mehrere Verbindungen über USB, TCP und UDP gleichzeitig aufgebaut werden. Verschiedene Komponenten erlauben Pakete zu empfangen oder zu versenden. Ebenso können die enthaltenen Nutzdaten in ihrem zeitlichen Verlauf ausgewertet und binär oder als CSV zur weiteren Verwendung gespeichert werden. Eine Reihe spezialisierter Widgets ermöglicht die bequeme Bedienung von Teilfunktionen einzelner Knoten. Es bestehen Implementierungen von NDLCom in C/C++ und VHDL, verwendet werden zur Zeit Spartan3/6, STM32 und AVR.

Referenzen

Anwendungsfelder: Weltraumrobotik
Verwandte Projekte: SAMLER-KI
Semi-autonomous micro rover for lunar exploration using artificial intelligence (11.2022- 10.2025)
SAMLER-KI
Semi-Autonomer Microrover für Lunare Exploration mit Künstlicher Intelligenz (11.2022- 10.2025)
MODKOM
Modular components as Building Blocks for application-specific configurable space robots (07.2021- 06.2025)
VeryHuman
Learning and Verifying Complex Behaviours for Humanoid Robots (06.2020- 05.2024)
FT-Utah
Field Trials Utah with the TransTerrA System (06.2016- 03.2017)
TransTerrA
Semi-autonomous cooperative exploration of planetary surfaces including the installation of a logistic chain as well as consideration of the terrestrial applicability of individual aspects (05.2013- 12.2017)
iStruct
Intelligent Structures for Mobile Robots (05.2010- 08.2013)
BesMan
Behaviors for Mobile Manipulation (05.2012- 07.2016)
LIMES
Learning Intelligent Motions for Kinematically Complex Robots for Exploration in Space (05.2012- 04.2016)
MODKOM
Modulare Komponenten als Building Blocks für anwendungsspezifisch konfigurierbare Weltraumroboter (07.2021- 06.2025)
VeryHuman
Lernen und Verifikation Komplexer Verhalten für Humanoide Roboter (06.2020- 05.2024)
FT-Utah
Field Trials Utah mit dem TransTerrA System (06.2016- 03.2017)
BesMan
Behaviors for Mobile Manipulation (05.2012- 07.2016)
iStruct
Intelligente Strukturen für mobile Robotersysteme (05.2010- 08.2013)
LIMES
Lernen intelligenter Bewegungen kinematisch komplexer Laufroboter für die Exploration im Weltraum (05.2012- 04.2016)
TransTerrA
Semi-autonome kooperative Exploration planetarer Oberflächen mit Errichtung einer logistischen Kette sowie Betrachtung terrestrischer Anwendbarkeit einzelner Aspekte (05.2013- 12.2017)
Verwandte Robotersysteme: RH5 Manus
Humanoid robot as an assistance system in a human-optimized environment
AILA
Mobile Dual-Arm-Manipulation
RH5 Manus
Humanoider Roboter als Assistenzsystem in menschoptimierter Umgebung
Charlie
iStruct Demonstrator
RH5
Humanoid robot as an assistance system in a human-optimized environment
Sherpa
Expandable Rover for Planetary Applications
RH5
Humanoider Roboter als Assistenzsystem in menschoptimierter Umgebung
Coyote III
AILA
Mobile Dual-Arm-Manipulation
Charlie
iStruct Demonstrator
Coyote III
Sherpa
Expandable Rover for Planetary Applications
© DFKI GmbH
zuletzt geändert am 16.11.2023