Als Aufgabe des Ferialpraktikums bei conova sollte ich die automatisierte Überwachung eines Staubsaugerroboters (iRobot Roomba 581) realisieren. Die Kommunikation mit dem Roboter erfolgt über die in den Roboter eingebaute serielle Schnittstelle. Auf den Roboter wurde eine FoxboardG20 Embadded Linux Board gebaut welches über die Roboterbatterie versorgt wird.

Da das FoxboardG20 mit 3.3V und der Roboter mit 5V High Voltage Pegel kommuniziert wurden diese über einen Logic Level Converter verbunden. Um das Board mit der unregulierten Batteriespannung des Roboters versorgen zu können, wurde auch ein Schaltnetzteil eingebaut. Nachdem die Kommunikation über die serielle Schnittstelle möglich war schrieb ich, um die Kommunikation zu testen, einige Python Scripts. Nachdem ich ein Python Interface, welches die Kommunikation mit dem Roboter sehr vereinfacht, geschrieben hatte, schrieb ich ein Script welches den Roboter überwacht und in regelmäßigen Abständen Daten, wie z.B. Ladung und Temperatur, aber auch andere Informationen, wie die Strecke die der Roboter zurückgelegt hatte, an das Monitoring System übermittelt.
Als nächsten Schritt schrieb ich einen HTTP Server in Python welcher die Grundlage für ein Web-Remoteinterface bildete so das der Roboter bei Fehlverhalten einfach über das Webinterface gesteuert werden kann und man sich nicht in das Datacenter begeben muss. Eine Webcam wurde ebenfalls auf den Roboter gebaut und der Stream in das Webinterface eingebettet und sowohl der HTTP Server als auch das Monitoring Script wurden so umgeändert das sie bei Systemstart selbstständig gestartet werden.
Zum Schluss schrieb ich ein Programm welches QR-Codes ausliest und anhand der Entfernung und dem Winkel zum QR-Code die Position des Roboters bestimmt.
Es war eine tolle Erfahrung und vielen Dank an Bernd, für die super Betreuung!