RoboSoccer Gruppe A4 - WS 17/18

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autor: Lukas Kriete


Einleitung

In diesem Artikel möchte wir (Moritz Oberg, Alessio Cebeci, Lukas Kriete, Gruppe A4) euch, unsern Roboter "Bobby" vorstellen. Dieser Roboter ist das Endergebnis unseres Informatikpraktikums Wintersemester 17/18. Die Aufgabe in unserem Praktikum war es, einen Roboter zu konstruieren und zu programmieren, der einen Inferotball erkennt, zu ihm hinfährt, in greift und danach ihn Richtung Tor schießt. Am Ende des Praktikums wir ein Robosoccertunier veranstaltet, in dem unser Robotor seine Fähigkeiten unter Beweis stellen muss. Dieses Projekt findet im Rahmen des Informatikpraktikums unter der Aufsicht von Prof. Schneider statt.

Teammitglieder

Im folgenden werden die Teammitglieder und ihre Aufgaben kurz vorgestellt.

  1. Moritz Oberg
    • Entwicklung und programmieren mithilfe von BridxCC
    • Film für Youtube
  2. Alessio Cebeci
    • Entwicklung und programmieren mithilfe von BridxCC
    • Konstruktion von Bobby in Lego Digital Designer
    • Bau des Roboters
  3. Lukas Kriete
    • Bau des Roboters
    • Entwicklung einer Spielstrategie mithilfe von PAP-Designer
    • Entwicklung und programmieren mithilfe von BridxCC
    • Artikel auf dem Wiki der HSHL

Hardware:

Fahrzeugmerkmale: Beschriftung


1.Schussarm/ Greifarm:
Der vordere Teil des Arms dient dazu den Ball festzuhalten. Auf der entgegengesetzten Seite befindet sich der Teil zum schießen. Der Motor 3
ist für den Fang- / Schussarmzuständig. Durch genaue Winkeleinstellung, lässt sich die Schussvorrichtung auf ein Grad genau steuern.



2.Unterkonstruktion
Besteht aus 2 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.
Die Unterkonstruktion besteht aus zwei Servormotoren. An den sind extra große Reifen, wodurch es Bobby möglich ist, schnelle zum Ball zu fahren oder sich zu drehen.
Außerdem haben wir bei Bau darauf geachten die Unterkonstruktion möglichst tief zu bauen, da dadurch der Schwerpunkt von Bobby weiter unten ist.
Das dritte Rad ist eine Kugel, wodurch sich Bobby sehr gut drehen kann.


3.NXT-Brick
Der NXT- Brick ist das "Gehirn" von den Bobby. Bei ihm werden alle Sensoren und Motoren angeschlossen.


3.Infarot Sensor:
Empfangsbereiche: Infarotsensor
Der Inferotsensor (IRSEEKERV2 )besitzt 5 Detektoren, die in einem Radius von 240 Grad, Inferotsignale erfassen können. Diese 5 Detektoren lassen sich in 9 Sektoren unterteilen um eine genauere Richtung des Inferotsignales zu bestimmen. Basierend auf dem pyroelektrischen Prinzip, lässt sich sogar die Intensität der Inferotstrahlen in den Detektoren bestimmen. Dadurch kann ein Abstand des Inferotball`s ermittelt werden.











4.Tastsensor:
Dieser Sensor hat die Funktion, zu erkennen ob sich ein Ball in der Schussvorrichtung befindet. Prallt der Ball gegen den Splint des Tastsensors, bekommt der NXT das Signal 1. Dieses Signal kann mit Hilfe ::des :Programmes weiter verarbeitet werden.
5.Kompass:
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 Magnetfelderdes Roboter-Elektromotors, der Batterien usw. neutralisiert.
Die Werte können als relative oder absolute Werte angezeigt werden. Das erleichtert die Programmierung, wenn der Roboter einer bestimmten Richtung folgen soll.

Spielstrategie: PAP

Hauptproramm

Fahrzeugmerkmale: Hauptprogramm

Das Hauptprogramm besteht im Wesendlichen aus einer Dauerschleife welche die beiden Fubnktionen „zuballfahren“ und „ball“ enthält. Diese werden so lange ausgeführt bis das Programm manuell abgebrochen wird.


Zuballfahren

Fahrzeugmerkmale: Zuballfahren

In der Funktion wird zunächst die Intensität des Infrarotsignals überprüft. Überschreitet die Intensität einen bestimmten Wert reduziert der Roboter seine Geschwindigkeit. Ansonsten fährt der Roboter mit voller Geschwindigkeit zum Ball während er seine Richtung immer anhand des direction-Wert des Infrarotsensors anpasst. Ist der Tastsensor des Roboters ausgelöst und die Intensität des Signals groß genug, gibt die Funktion keine weiteren Fahrbefehle und der Roboter hält an.


Ball

Fahrzeugmerkmale: Ball

Die Funktion „ball“ schließt den vorhandenen Fang/Schuss-arm des Roboters sobald der Tastsensor eine Berührung registriert und ein bestimmter Infrarotwert überschritten wird. Wenn nach schließen des Arms der Tastsensor nicht gedrückt und das Infrarotsignal abgefallen ist, öffnet er den Arm wieder und bringt ihr in die Ausgangssituation. Ist der Ball gefangen ruft die Funktion eine weitere Unterfunktion „torausrichten“ auf welche so lange läuft bis der Roboter richtig ausgerichtet ist. Ist dies geschehen schießt der Roboter den Ball und bringt den Arm nach einer kurzen Wartezeit wieder in die Ausgangslage.



Torausrichten

Fahrzeugmerkmale: Torausrichten

Die Funktion richtet den Roboter zum Tor aus indem sie sich am Kompasssensor orientiert und den Roboter in die Richtung dreht, in die die wenigsten Grad zu drehen sind. Gibt der Kompass den geforderten Wert zurück, stoppt die Funktion.



Ansteuerung der Aktoren und Sensoren

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);

 

Spielfeld

Fahrzeugmerkmale: Zuballfahren
Breite Spielfeld : 183cm
Länge Spielfeld : 122cm
Länge 11-Meter-Raum :30cm
Breite 11-Meter-Raum : 74cm


































Was haben wir gelernt?

  1. Grafische Programmierung mithilfe von NXT 2.1
  2. Praktische Anwendung der Programmierkenntnisse in der Sprache C
  3. Umgang mit SVN
  4. Sensoren und ihre Funktionsweise
  5. Teamarbeit und Aufgabenverteilung
  6. Nachvollziehabre Dokumentation im Quellcode
  7. Erstellung eines Filmes und eines Werbeposters

Verwendete Software

Link zum Video

Um unseren Booby in Action zu sehen und um uns kurz vorzustellen klicke auf den Link

Regelwerk

→ zurück zum Hauptartikel: Informatikpraktikum WS 17/18