Zum Hauptinhalt springen

Studierendenprojekte

Omnibot

Kameragestützte Objektverfolgung zur Steuerung eines Omnibot Roboters

Im berufsbegleitendem Studiengang Informationstechnik & System-Management 2012 wurde eine Software zur Objektverfolgung entwickelt. Ziel dieses Projektes war es, den Nexus Roboter “Omnibot 4WD” mit Hardware und Software so auszustatten, dass dieser unterschiedliche Gegenstände verfolgen kann.

Die Herausforderung lag in der Erkennung von Objekten unterschiedlicher Größe und Farbe, sowie die Datenübertragung zur Steuerung in Echtzeit. Die Anwenderin bzw. der Anwender kann über eine selbstentwickelte Android App mit OpenCV Funktion über ein Tablet den zu verfolgenden Gegenstand auswählen und anschließend die Steuerung dem Roboter übergeben.  
Der Roboter besteht aus einem Aluminiumgehäuse mit vier Mecanum-Räder, die ein omnidirektionales Fahren ermöglichen. Damit sind nicht nur Vorwärts- und Rückwärtsbewegungen möglich, sondern auch die Richtungen nach links, rechts und diagonal, sowie das Rotieren am Stand. Der Antrieb der Räder wird über Gleichstrommotoren mit Encoder realisiert. Zusätzlich ist am Roboter Gehäuse eine Halterung für ein Tablet montiert.
Die integrierte Kamera des Tablets dient der Objekterkennung. Um Objekte richtig erkennen zu können, sind deren Farben von großer Bedeutung. Durch die Differenzierung des Farbbereichs eines Objektes, kann dessen Größe und Lage im Gesamtbild bestimmt werden.

Ermittelte Objektkoordinaten werden an den verbauten Raspberry Pi übertragen und anhand einer Java Applikation ausgewertet. Die Kommunikation zwischen den beiden Endgeräten wird über eine TCP-Verbindung über WLAN realisiert. Dabei kommt das Client-Server Prinzip zur Anwendung. In diesem Projekt bildet der Raspberry Pi den Server und das Tablet den Client. Die notwendigen Daten werden in Echtzeit und zyklisch vom Tablet an den Raspberry Pi gesendet.

Nach der Auswertung werden die nötigen Steuerparameter über I²C, einem seriellen Bus, an das verbaute Arduino Mikrocontroller Board gesendet. Ein zusätzliches Arduino Erweiterungsmodul, ein sogenanntes Shield, ist für die Ansteuerung der Motoren notwendig, da das Hauptmodul nur für 2 Antriebe ausgelegt ist.