Schachspiel mittels kollaborierendem UR-Roboter unter ROS

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen


Autoren: Manfred Listner, Benjamin Reuter

Betreuer: Prof. Dr. Mirek Göbel & Marc Ebmeyer

Wintersemester: 2021/2022

Fachsemester: 7

zurück zum Hauptartikel: Praktikum Produktionstechnik


Einleitung

Als Teil des Bachelorstudiengangs Mechatronik an der HSHL, wird im siebten Semester das Fach Produktiontechnik VII unterrichtet. Semesterbegleitend wird dieses Fach als Praktikum durchgeführt. In diesem Praktikum sollen die Studierenden ein mechatronisches Projekt in kleinen Gruppen selbstständig bearbeiten. Das hier beschriebene Projekt handelt vom Schachspiel eines Roboterarms (UR3) unter ROS.

Aufgabenstellung

Aufgabe ist es, dem von der HSHL bereitgestellten Roboterarm UR3 das Schachspielen beizubringen. Dazu soll die Software "Robot Operation System" (ROS) verwendet werden. Das System soll letzten Endes dazu in der Lage sein gegen einen menschlichen Gegenspieler anzutreten. Dazu benötigt das System eine Möglichkeit zur Erkennung des Spielfelds und eine Positionserkennung der einzelnen Spielfiguren. Zusätzlich muss das System dazu in der Lage sein, das Spielfeld auswerten und korrekte Spielzüge ausführen zu können.

Vorgehensweise nach V-Modell

Zur strukturierten Bearbeitung des Projektes wird nach dem V-Modell vorgegangen. Durch dieses vorgehen kann sichergestellt werden, dass alle notwendigen Schritte die zur erfolgreichen Bearbeitung eines Projektes benötigt werden auch durchgeführt werden.
Die Verwaltung der verschiedenen erstellten Dokumente wird über das Programm TortoiseSVN[1] gewährleistet. Nachfolgend werden die Dokumente unter den jeweiligen Punkten des V-Modells als Link zum Download bereitgestellt.

Abbildung 1: V-Modell2020.png


Anforderungsdefinition

Die an das Projekt gestellten Anforderungen werden im ersten Schritt, der Anforderungsdefinition[2], des V-Modelles in der Anforderungsliste definiert. Dabei wird die Anforderungsliste in verschiedene Kategorien unterteilt:

  • Anforderungen an das System
  • Sicherheit
  • Schnittstellen
  • Software / Werkzeuge
  • Dokumentation

Funktionaler Systementwurf

Der funktionaler Systementwurf[3], zeigt in einem Programmablaufplan den schematischen Ablauf des zu programmierenden Programms.

Technischer Systementwurf

Im technischer Systementwurf[4] werden die verwendeten Komponenten und deren Schnittstellen übersichtlich dargestellt. Gleichzeitig wird hier gezeigt, wie die Komponenten untereinander verbunden sind.

Komponentenspezifikation

In der Komponentenspezifikation[5] wird definiert, welche Komponenten konkret für die erfüllen der Aufgaben verwendet werden sollen.

Komponenten Beschreibung Bild
UR3 Herzstück des Projektes ist der Arduino Uno. (Die aktuellste Version ist der Arduino UNO R3) Dieser besitzt einen Mikrocontroller von ATMEL, der ATMEGA 328P. Außerdem hat der Arduino UNO 14 digitale I/O Pins, davon können sechs Pins als PWM Kanäle genutzt werden. Darüber hinaus sind sechs analoge Input Pins verfügbar. Die I/O Pins können maximal mit einem Strom von 20mA belastet werden. Der Arduino benötigt eine Betriebsspannung von 5V. Weitere Informationen sind dem Datenblatt[6] zu entnehmen.
UR3Roboter
DGT Smart Board Die Real Time Clock ermöglicht das Auslesen und Setzen der aktuellen Urzeit und Datum. Dieses Modul dient dazu, die Uhrzeit und das Datum beizubehalten. Im Falle einer Spannungsfreiheit (z.B. Hauptstecker gezogen) muss somit die Uhr-/Datumseingabe nicht neu eingegeben werden. Mit einer 3V-Knopfzelle ist diese Echtzeituhr in der Lage, die Zeit bis zu 5 Jahre mitzuführen.
Real Time Clock
DGT 3000 Schachuhr Der DHT11 ist ein Sensor zum ermitteln von Temperatur und Luftfeuchtigkeit. Der Sensor kann sowohl mit 3,3V als auch 5V betrieben werden, er eignet sich sehr gut zum Anschluss an alle gängigen Boards von Arduino. Die Ausgabe der Daten erfolgt seriell als digitale Bitfolge. Somit eignet sich der Sensor ideal um das Raum-/ und Außenklima (Temperatur und Luftfeuchtigkeit) zu überwachen.
Temperatur- und Feuchtesensor
ROS Das Matrix Panel ist die Ausgabeeinheit des Projektes und gibt alle Werte, wie Temperatur, Datum, Uhrzeit, ect. aus. Die 512 hellen RGB-LEDs sind in einem 16x32-Raster auf der Vorderseite angeordnet. Auf der Rückseite befindet sich ein PCB mit zwei IDC-Anschlüssen (1x Input, 1x Output) und 12 16-bit-Schieberegister, die es ermöglichen das Panel mit einer 1:8 Abtastrate zu steuern. Es lassen sich auch mehrere Panels in Reihe schalten, dazu wird der Output des ersten Panels an den nächsten Input angeschlossen. Das Panel benötigen 8 digitale, 3 analoge Pins und eine 5V Spannungsversorgung.[7]
RGB LED Matrix Panel
RViz Der Lüfter wird mit 5V betrieben. Die Betriebsspannung kann zwischen 3 V und 12 V variiert werden. Je nach Höhe der Spannung ist die Umdrehungsgeschwindigkeit des Lüfters schneller oder langsamer. Beim Einbau wurde der Lüfter an die Spannungsquelle des Arduinos angeschlossen. Der Lüfter ist im Boden des Gehäuses eingebaut und sorgt dafür, dass ein kontinuierlicher Luftaustausch stattfindet. Die durch die Komponenten erwärmte Luft wird durch kühle Außenluft ausgetauscht, so kommt es nicht zu Ungenauigkeiten des Temperatursensors.
Lüfter

Programmierung/Entwicklung

In Schritt Entwicklung[8] wird die notwendige Software programmiert.




Komponententest

Integrationstest

Systemtest

Abnahmetest

Literatur

weitere nützliche sonstige Literatur[9] ist unter diesem Punkt zu finden.

Zusammenfassung

Ausblick

Probleme und Lösungen

Literaturverzeichnis