IoT-Prototyp: Gießroboter ermöglicht automatisiertes Blumengießen

kommentiert 1
gelesen 279
Staubsauger-Roboter-Roomba - IoT-Prototyp
Staubsauger Roboter Roomba ohne Deckplatte, mit bereits verbundenem Spannungswandler.

Im Rahmen meiner Bachelor-Thesis „Prototypische Entwicklung eines autonomen Gießroboters mit Hilfe von 3D Kollisionsvermeidung auf Basis eines Staubsaugerroboters“ habe ich einen automatisierten Gießroboter entwickelt. Der Gießroboter ist vernetzt und dadurch in der Lage, über eine Parrot FlowerPower – einem kabellosen Pflanzen-Sensor, der in die Blumenerde gesteckt wird und Werte wie die Feuchtigkeit misst – gezielt Pflanzen anzusteuern und zu gießen.

Staubsauger-Roboter als Basis für das IoT Projekt

Die Grundlage für das Projekt bietet der Staubsauger-Roboter Roomba 650. Dieser wurde umgebaut und mit einem, etwa 50 Zentimeter hohen Gerüst ausgestattet. Darauf verbaut sind ein 1,5 Liter fassender Wassertank, sowie eine Wasserpumpe, die die Hauptfunktion des Bewässerungsroboters erfüllen: Pflanzen gießen. Zusätzlich mit an Bord sind ein Gyroskop und ein Beschleunigungssensor.

Die Zwischenplattformen des Gießroboters bestehen aus Styrodur und dienen zur Stabilisierung des Gerüsts. Besonders schwer ist der Wassertank, denn sobald dieser mit Wasser befüllt ist, macht er einen Großteil des Roboter-Gesamtgewichts aus.

Eine der größten Schwierigkeiten war, die geeignete Position des Wassertanks auf dem Roomba-Grundgerüst zu finden. Da der Roboter nur drei Räder hat – zwei seitlich und eins vorne – kippte er anfangs nach hinten, sobald er versuchte anzufahren.

Die Bürsten und die Saugeinheit des ursprünglichen Staubsaugroboters wurden ausgebaut, da sie nur unnötigen Stromverbrauch während der Fahrt verursachen.

Staubsauger-Roboter-Roomba_Bild-2 - IoT-Prototyp

 

 

 

 

 

 

 

 

IoT Prototyp: Raspberry und ODROID als Rechenkerne

Als zentrale Recheneinheit diente bei der Umsetzung des Roboter-Projekts der ODROID C1+. Der geringe Stromverbrauch bei vergleichsweise hoher Rechenleistung sind die entscheidenden Kriterien, die eine passende Recheneinheit bieten muss. Als Kommunikationszentrale habe ich Rasberry Pi eingesetzt. Der Roboter sendet seine Daten an den Einplatinencomputer und dieser leitet sie weiter an die ThingWorx Plattform. Kommandos von der Plattform werden dann wiederrum über den Rasberry Pi an den Roboter geleitet. Die mitgelieferte Roomba-Ladestation lädt den Akku des Gießroboters wieder auf. Der integrierte Akkumulator wird zur Fortbewegung genutzt und liefert der Wasserpumpe ihren Strom. Um die 3D-Kamera, die Recheneinheiten, sowie die zahlreichen Sensoren mit Energie zu versorgen habe ich zusätzlich zwei 20Ah starke Akkus der Marke Anker eingesetzt.

3D-Kamera-ASUS-Xtion-Pro
3D Kamera ASUS Xtion Pro zur Orientierung des Roboters im Raum

Für die Programmierung des Gießroboters habe ich mich auf ROS.org (Robot Operating System) gestützt. Die Open Source Entwickler Plattform bietet zahlreiche Bibliotheken, die dem Roboter eingespeist wurden und die Entwicklung der Software stark beschleunigten. Mit dem Controller einer Spielekonsole konnte der Roomba sehr schnell ferngesteuert werden – Ziel war es aber, einen automatisierten Roboter zu bauen.

Erste Probleme bei der Entwicklung traten bereits früh auf, da der Roboter nicht geradlinig nach vorne fahren konnte. Über Sensoren, die erkennen, sobald der Roomba sich dreht, wurde das Problem behoben. Ein weiteres Problem war die Erkennung des Wasserstands im Wassertank. Der Pumpe musste ein Signal übermittelt werden, damit diese abschaltet, sobald kein Wasser mehr im Tank vorhanden ist. Die Lösung habe ich in einer Kaffeemaschine gefunden. Diese nutzt bekanntermaßen einen Magnetsensor und einen kleinen Schwimmer mit einem Magneten, um signalisiert zu bekommen, wenn der Tank wieder befüllt werden muss. Sinkt der Wasserspiegel, dann sinkt auch der Schwimmer. Kommt der Schwimmer in die Nähe des Magnetsensors wird ein Kreislauf geschlossen und die Pumpe deaktiviert.

3D Kamera sorgt Orientierung des Gießroboters

Damit sich der Roboter automatisiert orientieren kann, sollte eine 3D-Kamera den Raum abscannen und die Blumentöpfe erkennen, die sich im Raum befinden. Um dem Roboter Blumentöpfe einfacher sichtbar zu machen, kommen Markierungen ins Spiel, die direkt am jeweiligen Blumentopf angebracht werden. Sie sind schwarz-weiß und haben ein eindeutiges Muster. Die 3D-Kamera erkennt neben den Markierungen außerdem Störgegenstände, die dem Roboter den Weg versperren – so kann der Roboter dem Hindernis ausweichen und sich eine alternative Route suchen.

Zur Umsetzung habe ich die Karte des obersten Stockwerks des doubleSlash Firmengebäudes am Computer digitalisiert und dem Roboter in einem groben Muster übertragen. Mit den mitgeteilten Kartendaten ist der Gießroboter samt montierter 3D-Kamera durch die Räumlichkeiten gefahren und hat Wände, Möbel sowie andere Gegenstände erkannt. Die erkannten Hindernisse wurden in die Basiskarte übertragen. Das Resultat war eine Schwarzweiß-Karte, die anschließend manuell mit Informationen angereichert werden konnte. Zusätzlich wurde die Karte mit Tabu-Zonen ergänzt, in die der Roboter keinen Zugriff haben soll.

Schwarz-Weiss-Karte_doubleSlash-6.OG

Da die 3D-Kamera kein Glas erkennt, müssen alle Glastüren manuell in die Karte eingezeichnet werden, um den Roboter nicht ungewollt auf Widerstand stoßen zu lassen. Blumentöpfe wurden zu diesem Zeitpunkt noch nicht vom Roboter registriert. Dass nicht aus Versehen Mülleimer mit Wasser begossen werden, mussten die Blumentöpfe entsprechend gekennzeichnet oder separat in die Karte eingepflegt werden.

Eine Herausforderung war zudem die Positionierung der 3D-Kamera. Anfangs war sie direkt auf dem Roobma-Robotergerüst montiert. Weiter oben befestigt kann die Kamera aber auch Stühle besser erkennen, weil der Blick der 3D-Kamera somit direkt die Lehne des Stuhls wahrnimmt und nicht nur die Stuhlbeine, die von der Kamera schnell übersehen werden können.

AR-Tags ermöglichen dem IoT-Prototyp Blumentopf-Erkennung

Der Roboter erkennt Blumentöpfe anhand von AR-Tags. Dabei handelt es sich um Augmented Reality Codes, die visuell einen Befehl oder eine Kennzahl anzeigen und über ein Scannmedium, wie eine Kamera, erkannt werden können. Im Falle unseres Gießroboters scannt eine 3D-Kamera den AR-Code ein und weiß, nach Abgleichen mit der Datenbank, um welchen Topf es sich handelt.  Zusätzlich kann der Roboter anhand der AR-Tags die Ausrichtung des Blumentopfes ermitteln.

AR-Tag_Blumentopf

Um den Roboter eigenständig arbeiten zu lassen, mussten ihm zuvor manuell die ungefähren Positionen der Blumentöpfe mitgeteilt werden. Befindet sich der Roboter dann an der entsprechenden Stelle, wird die Umgebung abgescannt und der Roboter bekommt die Bestätigung, dass es sich um den richtigen Blumentopf handelt. Dann erhält er einen neuen Befehl und fährt etwas näher an die Pflanze heran, um den Gießvorgang einzuleiten.

Beim Gießen wird immer der ganze Tank entleert. Ist der Wassertank halb voll, erhält die Pflanze diesen halben Tank – ist der Tank komplett gefüllt, wird die Pflanze mit dem gesamten Tankinhalt bewässert. Der einzige Auslöser für den Stopp der Pumpe ist der Schwimmer, der dem Roboter nur einen leeren Tank anzeigen kann. Ein frühzeitiger Stopp ist also nicht vorgesehen, um beispielsweise eine weitere Blume mit Restinhalt des Tanks zu gießen.

ThingWorx sorgt für die Vernetzung des IoT Projekts

Durch die Anbindung an die IoT Plattform ThingWorx sollte die Arbeit des Gießroboters noch smarter und automatisierter ablaufen. In die Blumentöpfe wurde ein Flower Power-Sensor von Parrot gesteckt. Dieser erkennt, wenn die Erde im Topf nicht mehr die nötige Feuchtigkeit hat. In diesem Fall wird ein Signal über das Internet an den Gießroboter übermittelt. Dieser bewegt sich aus seiner Ladestation und bewässert die entsprechende Pflanze.

In einem großen Firmengebäude konnte die Idee auf einer Etage so umgesetzt werden, dass dem Roboter die genauen Koordinaten der jeweiligen Feuchtigkeitssensoren/Blumentöpfe einprogrammiert wurden. Sobald die Feuchtigkeit der Blumenerde unter einen festgelegten Wert sinkt, wird der Gießroboter aktiviert und bewässert die Pflanze. Auf Basis der gespeicherten Karte sucht sich der Roboter dann seinen Weg zur Pflanze. So können beispielsweise auch Ruhezonen umgesetzt werden, in dem auf der Karte ein Hindernis eingezeichnet wird.

Fazit:

Um ein so komplexes Projekt wie einen Gießroboter umzusetzen, ist sorgfältige Recherche und Planung notwendig. Trotz guter Vorbereitung, kann man nicht alle Probleme voraussehen und muss während der Entwicklung kreative Lösungen erarbeiten. Auch die Zuverlässigkeit der verwendeten Hardware stellte sich oft erst bei der Benutzung heraus. Beispielsweise ist es für die Orientierung des Roboters essenziell, dass Kamera, Beschleunigungssensor, Gyroskop und vom Roboter gelieferte Werte korrekt sind. Ist nur einer dieser Werte fehlerhaft oder fehlt komplett, wird die Navigation schlechter bis hin zu unmöglich.

Trotz aller Herausforderungen, war es ein sehr spannendes und lehrreiches Projekt. Es war interessant zu sehen, wie der Roboter wächst und sich dem Ziel immer weiter nähert.

IoT im Kleinen, made by doubleSlash.

 

doubleSlash-Teaser-Blog_IoT

Zurück zur Übersicht

Ein Kommentar zur “IoT-Prototyp: Gießroboter ermöglicht automatisiertes Blumengießen

  1. Sehr informativer Beitrag. Wäre für mich gar nicht schlecht, weil mir immer die Blumen eingehen. )-:

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*Pflichtfelder

*