Navigation

Kontakt

Projektgruppe EmBrAAC

Robot Operating System (ROS)

www.ros.org

ROS ist ein Open Source Framework für Roboter. Zu den Aufgaben und Diensten von ROS zählen:

  • Hardwareabstraktion
  • Gerätetreiber
  • Utilityfunktionen
  • Interprozesskommunikation
  • Paketmanagement

Ebenso stellt ROS zahlreiche Bibliotheken und Werkzeuge zur Verfügung, um, unter anderem neben Code schreiben und ausführen zu können, auch Code übere mehrere Computer beziehen und builden zu können.

Weiterführende Links, welche auch als Quelle genutzt wurden, sind:

 

In diesem Projekt orientieren sich die ROS-Nodes  sich an der gegebenen Sensorik und der gegebenen Aktorik  Die gegebenen Signale der Sensorik müssen verarbeitet werden, sodass ein gewünschtes Signal an die Aktorik gesendet werden kann. Die einzelnen Prozesse der Verarbeitung orientieren sich an der Navigation in ROS sowie den Anforderungen und bestehen aus den ROS-Nodes:

  • Trajektorienplanung,
  • Positioning
  • Notbremsassistent
  • Monitoring
  • SLAM
  • Ausweichassistent

Multic-Tool

Das Multic-Tool ist ein im Offis entwickeltes Programm, welches den Correct-by-Construction Entwicklungsansatz unterstützt. Das Multic-Tool ermöglicht es, Verträge (Contracts) zu definieren. Diese bestehen aus Garantien (Gurarantees) und Annahmen (Assumptions). Eine Garantie gewährleistet einen sogenannten Kontext. Dieser gilt dann unter dem Eintritt der zugehörigen Annahmen. Das Garantieren eines Kontextes erfüllt eventuell weitere Annahmen, wodurch mehr Teilverträge garantiert werden können. Dadurch sind verzweigte Abhängigkeitsbäume möglich, wodurch an einer Stelle festgelegte Werte durch das spezifizierte System durchpropagiert werden können. Auf deren Basis sind dann Simulationen möglich, die Fehler vor dem Deployment der Software verhindern können. Mithilfe der Verträge kann die zu programmierende Software den Echtzeitanforderungen genügen, also dass das System garantiert die theoretischen zeitlichen Rahmenbedingungen praktisch umsetzt. Das Multic-Tool generiert System-C Code, welches eine Bibliothek für C++ darstellt und Simulationen ermöglicht[9]. Dadurch ist System-C indirekt eine Vorgabe für das Projekt.

Wegfindung (Trajektorienplannung)

Zur Wegfindung und dem Ausweichen von Hindernissen nutzen wir eine Trajektorienplannung, diese soll das Fahrzeug autonom durch den vorgegebenen Parcours kollisionsfrei navigieren. Es werden LiDAR generierten Daten an die Trajektorienplanung gesendet, von dieser verarbeitet und in Motorsteuerungsbefehle umgewandelt. Die Motorsteuerungsbefehle bestehen aus dem Servowinkel und der Sollgeschwindigkeit:

Der Servowinkel definiert die gewünschte Fahrtrichtung des Fahrzeugs. Insbesondere lassen sich durch den Servowinkel Kurvenfahrten bestimmen.
Die Sollgeschwindigkeit wird hierbei konstant gewählt, da bei der gegebenen Hardware eine kontrollierte Geschwindigkeitsanpassung nicht möglich ist. Die Bremsleistung muss somit ebenfalls statisch definiert werden.

Webmzrbpastexvlhr6oplu (marco.grawunder@0huol.de) (Stand: 07.11.2019)