Inhaltsverzeichnis:
- Schritt 1: Zusammenbau der Motorsteuerplatine
- Schritt 2: Servomotorbaugruppe
- Schritt 3: Software
- Schritt 4: Webcam-Halterung
- Schritt 5: Fazit
Video: Autonomer Tischkicker - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:22
Das Hauptziel des Projekts war die Fertigstellung eines funktionierenden Prototyps für einen autonomen Tischkicker (AFT), bei dem ein menschlicher Spieler einem Robotergegner gegenübersteht. Aus menschlicher Sicht des Spiels ist der Tischkicker einem regulären Tisch sehr ähnlich. Die Spieler auf der menschlichen Seite werden über eine Reihe von vier Griffen gesteuert, die ein- und ausgefahren und gedreht werden können, um die Spieler linear über das Spielfeld zu bewegen und den Ball in Richtung des gegnerischen Tores zu kicken. Die autonome Seite besteht aus:> Acht Servomotoren, die verwendet werden, um die Griffe des Tischkickers zu manipulieren> Ein Mikrocontroller, um die Servomotoren zu aktivieren und mit dem Computer zu kommunizieren> Eine über dem Kopf montierte Webcam, um den Ball und die Spieler zu verfolgen> Ein Computer zur Verarbeitung die Webcam-Bilder, die Implementierung künstlicher Intelligenz und die Kommunikation mit dem Mikrocontroller. Es stellte sich heraus, dass geeignete Motoren, um die Spieler mit einer wettbewerbsfähigen Geschwindigkeit zu bewegen, sehr teuer waren, sodass Servos der unteren Preisklasse verwendet werden mussten. Während diese spezielle Implementierung durch Kosten und Zeit begrenzt war, würde ein größeres Übersetzungsverhältnis einen schneller spielenden Roboter ergeben, obwohl dies würde mehr als den Grundpreis von 500 US-Dollar kosten (Preis ohne Netzteil und Computer).
Schritt 1: Zusammenbau der Motorsteuerplatine
Die beigefügten Bilder sind ein vollständiger Schaltplan sowie ein Bild des Endprodukts für die Motorsteuerplatine. Alle diese erforderlichen Teile können in den meisten großen Online-Elektronikgeschäften (einschließlich Digi-Key und Mouser) erworben werden. Als Randnotiz waren alle hier verwendeten Teile Durchgangslöcher, und daher können die Teile auf einem Protoboard/Breadboard montiert werden, oder unter Verwendung des beigefügten PCB-Designs. Ein viel kleineres Gehäuse könnte durch die Verwendung einer Reihe von SMD-Teilen erstellt werden. Als wir das Design implementierten, teilten wir die Motorsteuerungen in 2 Kreise auf, obwohl dies keinen anderen Vorteil bietet als irgendein spezielles Verkabelungsschema verwendet. Die kleine blaue Platine implementiert die PWM-Steuerungsschaltung, die im Grunde nur ein getakteter PIC-12F mit etwas speziellem Code ist.
Schritt 2: Servomotorbaugruppe
Es werden zwei verschiedene Arten von Servos verwendet. Zunächst wird die seitliche Bewegung von einer Gruppe von vier drehmomentstarken Servos gesteuert: Robotis Dynamixel Tribotix AX-12. Diese vier laufen auf einer einzigen seriellen Leitung und bieten erstaunliche Funktionalität. Das hohe Drehmoment ermöglicht es, diese Servos so zu übersetzen, dass eine hohe Tangentialgeschwindigkeit für seitliche Bewegungen entsteht. Wir konnten einen Satz 3,5-Zoll-Zahnräder und -Schienen von Grainger zu einem Preis von jeweils etwa 10 US-Dollar finden. Die Servos bieten einen Drehmomentüberlastungsschutz, ein individuelles Servo-Adressierungsschema, schnelle Kommunikation, interne Temperaturüberwachung, Zwei-Wege-Kommunikation usw. Der Nachteil dieser Servos ist, dass sie teuer und nicht sehr schnell sind (obwohl das Getriebe ihnen hilft). Um schnellere Bewegungen beim Treten zu erzielen, werden Hitec HS-81s verwendet. Die HS-81s sind relativ preiswert, haben eine recht hohe Winkelgeschwindigkeit und sind einfach anzuschließen (Standard-PWM). Die HS-81s drehen sich jedoch nur um 90 Grad (obwohl es möglich ist – und nicht empfohlen – zu versuchen, sie auf 180 Grad zu ändern). Darüber hinaus haben sie interne Nylonzahnräder, die sich leicht ablösen, wenn Sie versuchen, das Servo zu ändern. Es wäre das Geld wert, ein um 180 Grad rotierendes Servo zu finden, das diese Art von Winkelgeschwindigkeit hat. Das gesamte System ist mit Stücken aus mitteldichter Faserplatte (MDF) und hochdichter Faserplatte (HDF) zusammengebunden. Dies wurde aufgrund seiner geringen Kosten (~ $ 5 für ein 6'x4'-Blatt), der Einfachheit des Schneidens und der Fähigkeit, sich mit praktisch jeder Oberfläche zu verbinden, ausgewählt. Eine dauerhaftere Lösung wäre, Aluminiumhalterungen zu bearbeiten, um alles zusammenzuhalten. Die Schrauben, die die PWM-Servos an Ort und Stelle halten, sind Standard-Maschinenschrauben (# 10s) mit Sechskantmuttern, die sie von der anderen Seite halten. 1 mm metrische Maschinenschrauben, etwa 3/4 lang, halten den AX-12 in das MDF, das die beiden Servos miteinander verbindet. Eine doppelt wirkende Schubladenschiene hält die gesamte Baugruppe nach unten und in einer Linie mit der Schiene.
Schritt 3: Software
Der letzte Schritt besteht darin, die gesamte auf dem Gerät verwendete Software zu installieren. Dieser besteht aus wenigen einzelnen Code-Stücken:> Der Codelauf auf dem Bildverarbeitungs-PC> Der Codelauf auf dem PIC-18F-Mikrocontroller> Der Codelauf auf jedem der PIC-12F-MikrocontrollerEs gibt zwei Voraussetzungen für die Installation auf dem Bildverarbeitungs-PC PC. Die Bildverarbeitung erfolgt über das Java Media Framework (JMF), das hier über Sun erhältlich ist. Die ebenfalls über Sun erhältliche Java Communications API wird verwendet, um über die serielle Schnittstelle des Computers mit der Motorsteuerplatine zu kommunizieren. Das Schöne an Java ist, dass es auf jedem Betriebssystem *laufen sollte*, obwohl wir Ubuntu, eine Linux-Distribution, verwendet haben. Entgegen der landläufigen Meinung ist die Verarbeitungsgeschwindigkeit in Java nicht allzu schlecht, insbesondere beim einfachen Looping (das bei der Bildanalyse ziemlich häufig verwendet wird). Wie im Screenshot zu sehen, werden bei jedem Frame-Update sowohl der Ball als auch die gegnerischen Spieler verfolgt. Außerdem ist der Umriss des Tisches optisch eingezeichnet, weshalb blaues Malerband verwendet wurde, um einen visuellen Umriss zu erzeugen. Tore werden registriert, wenn der Computer den Ball 10 aufeinanderfolgende Frames lang nicht lokalisieren kann, was normalerweise anzeigt, dass der Ball außerhalb der Spielfläche ins Tor gefallen ist. In diesem Fall löst die Software ein Sound-Byte aus, um sich je nach Zielrichtung entweder selbst anzufeuern oder den Gegner auszubuhen. Ein besseres System, obwohl wir nicht die Zeit hatten, es zu implementieren, wäre die Verwendung eines einfachen Infrarot-Sender/Sensor-Paares, um den ins Tor fallenden Ball zu erkennen. Die gesamte in diesem Projekt verwendete Software ist in einer einzigen ZIP-Datei verfügbar, Hier. Verwenden Sie zum Kompilieren des Java-Codes den Befehl javac. Der PIC-18F- und PIC-12F-Code wird mit der MPLAB-Software von Microchip vertrieben.
Schritt 4: Webcam-Halterung
Es wurde eine Philips SPC-900NC-Webcam verwendet, die jedoch nicht empfohlen wird. Die Spezifikationen für diese Kamera wurden entweder von den Ingenieuren oder Vertriebsmitarbeitern von Philips gefälscht. Stattdessen würde jede billige Webcam ausreichen, solange sie vom Betriebssystem unterstützt wird. Weitere Informationen zur Verwendung von Webcams unter Linux finden Sie auf dieser Seite. Wir haben den Abstand gemessen, den die Brennweite der Webcam benötigt, um den gesamten Tischkicker in den Rahmen zu passen. Für dieses Kameramodell stellte sich heraus, dass diese Zahl etwas mehr als 5 Fuß betrug. Wir haben Regalgestelle verwendet, die in jedem großen Baumarkt erhältlich sind, um eine Halterung für die Kamera zu bauen. Die Regalböden ragen von jeder der vier Ecken des Tisches nach oben und werden von abgewinkelten Aluminiumwinkeln quer versteift. Es ist sehr wichtig, dass die Kamera zentriert ist und keine Winkeldrehung hat, da die Software davon ausgeht, dass die x- und y-Achse am Tisch ausgerichtet sind.
Schritt 5: Fazit
Alle zugehörigen Projektdateien können auf dieser Site heruntergeladen werden. Ein Backup des Großteils des Site-Inhalts kann hier auf meinem persönlichen Webhost gefunden werden. Dazu gehören der Abschlussbericht, der eine Marketinganalyse sowie Dinge enthält, die wir ändern würden, unsere ursprünglichen Ziele und eine Liste, welche Spezifikationen tatsächlich erreicht wurden. Das Projekt soll NICHT der wettbewerbsfähigste Spieler der Welt sein. Es ist ein gutes Werkzeug, um mehr der Schritte zu zeigen, die beim Entwerfen eines solchen Tieres verwendet werden, sowie einen anständigen Prototyp dieses Robotertyps, der zu unglaublich niedrigen Kosten gebaut wurde. Es gibt andere solcher Roboter auf der Welt, und sicherlich würden viele von ihnen diesen Roboter "besiegen". Dieses Projekt wurde von einer Gruppe von vier Elektro-/Computeringenieuren am Georgia Tech als Senior-Design-Projekt entworfen. Es wurden keine Maschinenbauingenieure unterstützt und keine Drittmittel in Anspruch genommen. Es war ein großartiger Lernprozess für uns alle und eine angemessene Nutzung der Zeit des Senior-Design-Kurses. Ich möchte> Dr. James Hamblen, unserem Abteilungsberater, für seine kontinuierliche Hilfe bei technischen Strategien danken> Dr, dafür, dass Sie uns nicht davon abgehalten haben, ein ehrgeizigeres Projekt zu versuchen> James Steinberg und Edgar Jones, die leitenden Administratoren des Konstruktionslabors, für die ständige Hilfe bei der Bestellung von Teilen, der Fehlerbehebung und dem Finden der "coolen Sachen", die man kostengünstig in das Projekt werfen kann und hohe Funktionalität> Und natürlich die anderen drei Mitglieder meines Teams, von denen das alles nicht möglich gewesen wäre: Michael Aeberhard, Evan Tarr und Nardis Walker.