RoboSoccer Gruppe A1 - WS 18/19
Autoren: Mohamed Soliman und Richard Stanislawiski und Noah Greis
Einleitung
Im Laufe des Semester haben wir versucht und geübt den Roboter Schritt für Schritt zu Programmieren , dass er im Spielfeld Soccer spielen kann . Im Informatik-Praktikum war es unsere Aufgabe einen funktionierenden Roboter mithilfe von LEGO Mindstorms zu konstruiren und mit Bricxcc zu programmieren. Dieser Roboter soll dann an einem Robo-Soccer Tunier (Spielregeln) an der Hochschule Hamm-Lippstadt in Lippstadt teilnehmen.
Konstrunktion
Unterkonstruktion
- Der Roboter besteht aus 3 Motoren . Die Motoren können die Rotationen auf einen Grad genau bestimmen. Dabei ist die maximale Umdrehungen 160 Umdrehungen/ Minuten und das maximale Drehmoment ca. 0,2 Nm. Der Dritte Mototr wird für das schießen des Balls benutzt .
NXT-Brick
- Der NXT- Brick ist das "Gehirn" von Dem Roboter . Bei ihm werden alle Sensoren und Motoren angeschlossen. LEGO Mindstorms NXT System behandelt die Hardwarespezifikation und Hardwareevaluation verschiedene Sensoren für das LEGO Mindstorms-System. Um Kenntnisse über die Genauigkeit und Zuverlässigkeit der Sensoren und Motoren und deren Zusammenspiel mit dem NXT-Baustein zu erhalten wurden zunächst die Hardware des NXT und verschiedener Sensoren spezifiziert.
Ultraschallsensor
- Der Ultraschallsensor ist im Lego Mindstorms NXT Bausatz enthalten. Wie bei sämtlichen Ultraschallsensoren, können mit diesem Sensor Entfernungen zu eventuellen Hindernissen gemessen werden, die sich vor dem Roboter befinden. So kann sich der Roboter zwischen Ausweichmanöver und Annäherung entscheiden.
- Die Entfernungsmessung erfolgt in Zoll oder Zentimetern
Tastsensor
- Mithilfe des Tastsensors werden bestimmte Reaktionen auf einen physischen Druck ausgelöst. Er stellt sozusagen die „Finger“ des Lego Mindstorms NXT Roboters dar.
Infarotsensor
- Der Infrarotsensor (IRSEEKERV2 )besitzt 5 Detektoren, die in einem Radius von 240 Grad, Infrarotsignale erfassen können. Diese 5 Detektoren lassen sich in 9 Sektoren unterteilen um eine genaue Richtung des Infrarotsignales zu bestimmen. Basierend auf dem pyroelektrischen Prinzip, lässt sich sogar die Intensität der Infrarotstrahlen in den Detektoren bestimmen. Dadurch kann ein Abstand des Infrarotball`s ermittelt werden.
Kompasssensor
- Er misst das Erdmagnetfeld und berechnet damit einen Steuerkurs für den Roboter. Der Sensor führt 100 Messungen pro Sekunde durch und übermittelt eine Zahl zwischen 0 und 359, die den Winkel zum Nordpol ausdrückt. Der Sensor verfügt über zwei Modi:
- 1.Im Lesemodus übermittelt der Sensor jedes Mal einen Wert, wenn er vom intelligenten Lego Mindstorms NXT-Stein einen Lesebefehl erhält.
- 2.Im Kalibriermodus kann der Sensor so eingestellt werden, dass er störende Magnetfelder des Roboter-Elektromotors, der Batterien usw. neutralisiert
- Es wird einfacher sein , wenn der Roboter auf eine bestimmte Richting , die er folgen soll , eingerichtet wird .Die Werte können als relative oder absolute Werte angezeigt werden.
Hauptprogramm
- Das Hauptprinziep des Hauptprogramms ist eine Endlosschleife, die aus "Ballsuche", "Ballfang", "Ausrichtung" und "Schuss" besteht.Die Schleife wiederholt sich bis sie Manuel abgebrochen wird . Davor wird die Richtung des Tores mit Hilfe des Kompasssensors eingepeichert .
Ansteuerung der Aktoren
Als Aktuatoren haben wir nur die Motoren von NXT. Die nachfolgenden Befehle, beziehen sich auf die Möglichkeiten der Ansteuerung der Motoren
- OnFwd() oder OnRev()
- RotateMotor()
- OnFwdReg() oder OnRevReg()
- OnFwdSync() oder OnRevSync()
- Off() oder Float()
- Motor fährt geradeaus mit einer angegeben Geschwindigkeit
- OnFwd(Ausgang_Motor, Leistung);
- Motor fährt rückwärts mit einer angegeben Geschwindigkeit
- OnRev(Ausgang_Motor, Leistung);
- Motor rotiert mit einer angegeben Geschwindigkeit bis zu dem angegebenen Winkel
- RotateMotor(Ausgang_Motor, Leistung, Winkel);
- Regulierungsmodus, zum synchronen Motorenlauf in Fahrtrichtung Vorwärts
- OnFwdReg(Ausgang_Motor, Leistung, REGMODE);
- Regulierungsmodus, zum synchronen Motorenlauf in Fahrtrichtung Rückwärts
- OnRevReg(Ausgang_Motor, Leistung, REGMODE);
- Automatisches fahren einer Kurve durch Angaben eines Radius in Fahrtrichtung Vorwärts
- OnFwdSync(Ausgang_Motor, Leistung, Radius);
- Automatisches fahren einer Kurve durch Angaben eines Radius in Fahrtrichtung Rückwärts
- OnRevSync(Ausgang_Motor, Leistung, Radius);
- Motor bremst sofort ab
- Off(Ausgang_Motor);
- Motor läuft aus
- Float (Ausgang_Motor);
- Begriffe:
- On = An; Fwd = Vorwärts; Rev = Rückwärts; Rotate = rotieren; Reg = Regulation; Off = Aus; Flout = gleiten
Link zum Video
Um unseren Roboter in Action zu sehen und um uns kurz vorzustellen klicke auf den / Link
→ zurück zum Hauptartikel: Informatikpraktikum WS 18/19