Coilinator 300V

  • Mechanik
  • Elektronik
  • Informatik

Mechanik
Die Mechanik des Coilinator 300V besteht aus 3 Unterbaugruppen, der Fortbewegungsbaugruppe, auf welcher die Umgebungserkennungsbaugruppe und das Fang- und Wurfsystem befestigt sind.

Fortbewegung
Unser Roboter wird mit zwei angetriebenen Rädern und zwei Polymerrollen stabil gelagert und kann so um seine eigene Achse gedreht werden. Die beiden Räder werden durch zwei Motoren angetrieben. Ausserdem befindet sich auf der Grundplatte der Basisprint und der Akku kann dort wärend dem Betrieb gelagert werden.

Umgebungserkennung
Auf der Fortbewegungsbaugruppe wird die Umgebungserkennungsbaugruppe befestigt. Diese besteht hauptsächlich aus einem Servomotor auf welchem die drei ToF-Sensoren zur Umgebungserkennung mittels eines 3D-Druck Teils befestigt sind. Der Servomotor dreht sich während dem Betrieb hin und her um den kompletten Raum um den Coilinator 300V herum zu scannen. So erkennt er genau wo sich die Gegner und das Partnerteam befinden.

Fang- & Wurfsystem
Zu Oberst ist unser Fang- und Wurfsystem. Das Fangsystem besteht hauptsächlich aus unserem Trichter, mit welchem wir eine maximale Fangquote erzielen. Allerdings nicht zu vernachlässigen ist, ist unsere selbstentworfene und selbsterstellte Voice Coil, mit welcher wir den Ball übers Feld und in den Korb befördern können. Unter VoiceCoil versteht man Spule, wie sie auch in Lautsprechern verwendet wird. Dazu gehört noch der Voice Coil Print, um die nötige Power für die Voice Coil zu erzeugen bzw. speichern.

Elektronik
Die Elektronik des Coilinator 300V besteht aus 4 Printplatten, diversen Sensoren und Motoren und natürlich der namensgebenden Voice-Coil. 

Starten wir ganz unten: Auf der Grundplatte des Fahrwerks befindet sich neben den Antriebsmotoren und dem Akku unsere Basis-Printplatte. Hierauf sind der Raspberry Pi Zero W, die Motorentreiber, alle Anschlussstecker und vieles mehr untergebracht. Von hier aus gehen Signale an alle weiteren Komponenten im Roboter, was dem Gehirn des Coilinators entspricht. An den Antriebsmotoren sind Encoder angebracht, welche deren Umdrehungen überwachen. Zur zusätzlichen Bestimmung der Ausrichtung und der Beschleunigungen während der Fahrt ist ein 9-Achsen-Gyro auf dem Basis-Print im Einsatz.

Direkt über dem Basisprint sind 3 rotierende Time-of-Flight-Sensoren auf eigenen Break-out-Boards angeordnet, welche die Umgebung permanent scannen. Mit seinen Laser-Augen kommt unser Roboter seinem grossen Vorbild, dem Terminator, somit schon recht nahe.

Im oberen Teil des Roboters sitzt unsere selbstentwickelte Voice-Coil, welche den Ball beschleunigt. Im Fangtrichter integriert sind eine Infrarot-Diode und ein Phototransistor, welche dazu da sind zu erkennen, ob der Roboter in Ballbesitz ist. Für den Energiebedarf der Spule stehen 2 mit Kondensatoren vollbepackte Printplatten unterhalb des Fangtrichters zur Verfügung. So wird sichergestellt, dass das anvisierte Ziel auch aus grösseren Entfernungen mit dem Ball terminiert werden kann.

Auch wenn der Roboter technisch auf dem neusten Stand ist und über grosses Potenzial verfügt läuft ohne die Software die den Roboter steuert gar nichts und er ist ein regungsloser Klumpen aus verschiedenen Metallen und Kunststoffen. Um ihm Leben einzuhauchen wird die Software benötigt. Diese ist in der Programmiersprache Java geschrieben. Der Zustandsautomat unten bildet die Basislogik unseres Spielablaufs.

Umgebungserkennung
Die ToF-Sensoren scannen im Umkreis von 360° die komplette Umgebung und geben stetig Entfernungsdaten von Hindernissen an die Software. Diese registriert alle Entfernungsdaten als Punkte. Somit sind wir in der Lage eine 2D Karte zu erzeugen. Auf diese Weise erkennen wir die positionierten Gegner, unseren Partnerroboter, die Spielfeldgrenzen, sowie auch den Korb. Diese Karte wird immer wieder aktualisiert. Dadurch können wir ebenfalls stetig feststellen wo der Coilinator selbst im Feld steht. Als Beispiel wird in den Grafiken das Beispiel im frühen Stadium an einer Kiste gezeigt.

Abschuss- und Fangmechanismus
Die Kondensatoren, welche im Coilinator verbaut sind, werden Softwaregesteuert soweit aufgeladen, dass ein genauer Schuss abgegeben werden kann mit der Voice Coil. Die Schusskraft hängt direkt davon ab wie lange der dafür vorgesehene Pin bestromt wird. Dafür nötig ist die genaue Bestimmung der Entfernung des nächsten Ziels und die korrekte Ausrichtung des Roboters. Dies geschieht mit der gescannten Karte der Umgebungserkennung. Das Publikum soll ja keinen Schuss abbekommen.
Der Fangmechanismus muss nicht per Software gesteuert werden, da er fest verbaut ist. Die wichtige Funktion ist hier der eingebaute Sensor, der erkennt ob ein Ball im Trichter ist, was der Software ein Signal gibt, dass nicht mehr gefahren, sondern ausgerichtet und geschossen werden soll.

Fahrmodus
Die Motoren, welche für die Fortbewegung unseres Roboters zuständig sind, werden ebenfalls von der Software gesteuert. Von der Geschwindigkeit über die Drehrichtung und die Fortbewegungsdauer wird alles von der Software gesteuert. Für all dies wird ebenfalls die Karte der Umgebungserkennung verwendet. Rammen ist unerwünscht. 
Wenn der Ball in Besitz ist wird zum Mitspieler oder dem Korb gedreht.
Für die Fortbewegung auf dem Spielfeld ohne Ballbesitz wird der A* Algorithmus verwendet. Vielfach auch in Videospielen für Computergegner verwendet, kann mit diesem der kürzeste Fahrweg zum anvisierten Zielpunkt mit Rücksicht auf Hindernisse berechnet werden. Auch hierfür wird die Karte verwendet. Dadurch entsteht eine zu fahrende Route, welche dann mit den richtigen Inputs an die Motoren zurückgelegt wird.