Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

projektewise18:petbotpublic:start

Petbot

Team

Rebecca Morrison

Miwa

Robin Vodegel

Einleitung

Wir hatten die Idee von einem haustierähnlichen Roboter, welcher auf Menschen zufährt und gestreichelt werden möchte. Dabei haben wir uns unter anderem an den Furby orientiert. Fürs Auge bzw. für die Haut haben wir überlegt, dass wir einen fellartigen Stoff auf den Roboter kleben. Unser PetBot ist ein Roboter, welcher nach Menschen sucht, sie findet und auf sie zufährt, um gestreichelt zu werden. Sobald er ein Hindernis wahrnimmt, weicht er diesem aus.

Methoden/Umsetzung

Überblick

{{ :projektewise18:petbot:petbot.jpg?nolink&200 | Abbildung 1: PetBot

Baugruppen

Der PetBot besteht aus einem Unterbau, an dem die Räder und die Stepper befestigt sind, einem Hauptbau, der aus einer Keksdose besteht, in der die Elektronik gelagert ist, inklusive des Piezo Summers, und an der zwei Ultraschallsensoren befestigt sind, und einem Überbau, der Kuppel, auf der ein Servo mit einem Thermalsensor angebracht ist, sowie ein Draht, der Berührungen feststellen soll.

Aufgabe des PetBots

Der PetBot soll Menschen suchen, sie finden und auf sie zu fahren (um gestreichelt zu werden). Er soll Hindernissen ausweichen. Wir gehen davon aus, dass er auf einer glatten Oberfläche fährt, damit er keine Unebenheiten im Gelände befahren oder Abgründe erkennen können muss.

Fortbewegung

Unser PetBot bewegt sich mithilfe von 3 Rädern und zwei Steppern (Schrittmotoren) fort. Diese sind in einem gleichschenkligen Dreieck angebracht, damit er sich auf der Stelle um eine bestimmte Gradanzahl drehen kann und die Drehung dabei relativ präzise sein kann.

Abbildung 2: Unterseite des PetBots

Suche nach Menschen

Um nach dem Menschen zu Suchen hat der Petbot ein Suchmuster, bei dem er immer abwechselnd eine Suche mit dem Thermalsensor macht und eine Bewegung. Der Thermalsensor wird mit dem Servo von 0-150 Grad gedreht und misst in 5 Grad Schritten die Temperatur vor dem Sensor. Wenn diese zwischen 23 und 38 Grad liegt, beginnt er, sich in Richtung der Wärmequelle zu drehen und auf sie zuzufahren. Der Sensor kann Menschen mindestens in einer Entfernung zwischen 0 und 4 Metern wahrnehmen, teilweise auch weiter. Zunächst dreht sich der Petbot zwischen den Messungen 5 Mal um 90 Grad nach links, dann fährt er ein Stück nach vorne und dreht sich noch einmal um 90 Grad nach links. Dies wiederholt er 5 Mal. Danach wiederholt er den gesamten Vorgang mit Drehungen nach rechts. Dieser Vorgang wird selten bis zum Ende durchgeführt, da der Petbot, sobald er einen Menschen wahrnimmt, auf ihn zufährt.

Beim geradeaus fahren überprüft der Petbot mit den Ultraschallsensoren, ob links oder rechts vor ihm Gegenstände (in einer Entfernung von 1-30 cm) im Weg sind. Falls dies der Fall ist, weicht er ihnen aus. Wenn nur links oder nur rechts ein Gegenstand im Weg ist, dreht er sich dabei nur um 45 Grad in die entgegengesetzte Richtung, um einen ähnlichen Kurs beizubehalten und schneller den Menschen wiederfinden zu können. Bei Objekten, die auf beiden Seiten vor dem Roboter sind, dreht sich der Petbot um 90 Grad nach links.

Findet der Petbot keinen Menschen mehr vor sich, wird das Suchmuster neu gestartet.

Interaktion mit Menschen

Wenn der Petbot mit dem Thermalsensor einen Menschen entdeckt hat, bewegt er sich „aufgeregt“ auf der Stelle hin und her und macht dabei quietschende Piep-Geräusche. Dies sollte ein tierähnlicher Mechanismus sein, mit dem der Petbot die Aufmerksamkeit vom Menschen gewinnt.

Wenn der Petbot vor dem Menschen angelangt ist und von ihm berührt wird, macht er ein miau-ähnliches Geräusch und bewegt sich dann wieder mit Piep-Geräuschen auf der Stelle. Die Berührung wird über zwei Drähte (eines der Drähte ist die ganze Zeit unter Spannung, das andere ist spannungsfrei) festgestellt, die den Petbot umkreisen. Wenn beide Drähte berührt werden, schließt dies einen Stromkreis, welches über einen Pin am Arduino festgestellt wird.

Die beiden Geräusche werden von dem Piezo-Summer hergestellt. Den Code dafür haben wir so im Internet unter https://learn.adafruit.com/adafruit-trinket-modded-stuffed-animal/animal-sounds gefunden.

Technische Daten:

Liste der verwendeten Bauteile:

Name Anzahl
Arduino Nano 1
Rad 3
Ultraschallsensor 2
Servomotor 1
Stepper 2
Draht
Batterie 1
Keksdose 1
Styropor 1
Infrarotsensor (Thermalsensor) 1
Piezolautsprecher 1
Stepper Motor Treiber A4988 2
Widerstand 1
Kondensator 3

Abbildung 3: Steckplatine

Abbildung 4: Inhalt im PetBot

Ergebnis und Diskussion

Endstand des Projekts

Noch bestehende Fehler

Infrarotsensor/Thermalsensor

Der Sensor findet zwar Menschen, nimmt aber auch andere warme Gegenstände (Laptop, durch Sonnenstrahlen erhitzte Gegenstände) als „Menschen“ wahr. Wenn er einen Menschen erkennt, fährt er nicht richtig oder nur kurz auf den Menschen zu und fängt mit der Suche von vorn an.

Code

Der Code ist etwas unübersichtlich und dadurch ist es schwierig zu erkennen, welche Bestandteile des Codes verbessert werden müssten, um bestehende Probleme im Verhalten des Roboters zu lösen.

Metalldraht

Der Roboter reagiert nicht auf Berührungen. Wahrscheinlich liegt der Fehler in der Verdrahtung oder an der Stelle der Abfrage der Berührung im Code (d.h. der Roboter kommt eventuell nicht dazu, diese Abfrage zu machen).

Ultraschallsensoren

Weicht nicht in jedem Fall Hindernissen aus.

Verbesserungs- & Erweiterungsvorschläge

Code

Den Code könnte man überarbeiten, um Fehler zu beseitigen bzw. auch Klassen deklarieren um den Code übersichtlicher zu machen.

Leitungen in der Dose

Die Leitungen liegen unsortiert in der Dose rum. Beim Öffnen und/oder Schließen der Dose ist es wahrscheinlich, dass man Leitungen rauszieht ohne, dass man es merkt/sieht. Außerdem ist der Inhalt der Dose nicht gegen ein Kurzschluss gesichtert. Vorschlag: Leitungen mit klebbaren Kabelbindern von anderen Leitungen und Stromkreisen sichern und trennen, eventuell die Dose mit einem nicht-leitfähigem Material auslegen.

Code

projektewise18/petbotpublic/start.txt · Zuletzt geändert: 2019/04/02 23:15 von d.golovko