RoboSoccer Gruppe C2 - WS 17/18: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 37: Zeile 37:
Der Ultraschallsensor könnte beispielsweise zur rechtzeitigen Erkennung der Spielfeldbegrenzung genutzt werden. Mit jenem Sensor lässt sich jedoch nicht eindeutig bestimmen, ob das erkannte Hindernis tatsächlich die Wand der Spielfeldbegrenzung, der gegnerische Roboter oder der Spielball ist. Aus diesem Grund, findet der Sensor bei unserem Roboter ebenfalls keine Verwendung.
Der Ultraschallsensor könnte beispielsweise zur rechtzeitigen Erkennung der Spielfeldbegrenzung genutzt werden. Mit jenem Sensor lässt sich jedoch nicht eindeutig bestimmen, ob das erkannte Hindernis tatsächlich die Wand der Spielfeldbegrenzung, der gegnerische Roboter oder der Spielball ist. Aus diesem Grund, findet der Sensor bei unserem Roboter ebenfalls keine Verwendung.


Damit der Roboter nun jedoch den Spielball finden und sich dann zum Tor ausrichten kann, benötigt es zusätzliche Sensoren, die in dem LEGO – Mindstorms – Set nicht enthalten sind. Das wäre zum einen ein [http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=nsk1042 Infrarotsensor], um den Ball suchen zu können und zum anderen ein [http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NMC1034 Kompassensor] zur Positionsbestimmung und zum Ausrichten zum Tor. Beide Sensoren werden von der Firma [http://www.hitechnic.com/# HiTechnic] hergestellt. Die Servomotoren sowie der Tastsensor werden im Folgenden noch kurz vorgestellt..
Damit der Roboter nun jedoch den Spielball finden und sich dann zum Tor ausrichten kann, benötigt es zusätzliche Sensoren, die in dem LEGO – Mindstorms – Set nicht enthalten sind. Das wäre zum einen ein [http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=nsk1042 Infrarotsensor], um den Spielball suchen zu können und zum anderen ein [http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NMC1034 Kompassensor] zur Positionsbestimmung und zum Ausrichten zum Tor. Beide Sensoren werden von der Firma [http://www.hitechnic.com/# HiTechnic] hergestellt.  
Die Servomotoren sowie der Tastsensor werden im Folgenden noch kurz vorgestellt.


=== Aktuatoren ===
=== Aktuatoren ===
Zeile 45: Zeile 46:


=== Sensoren ===
=== Sensoren ===
'''Tastsensor:''' Der Tastsensor funktioniert im Grunde wie ein normaler Lichtschalter und besitzt entweder die Position 1 (gedrückt) oder 0 (nicht gedrückt). Durch das Drücken des Tasters gegen einen leichten mechanischen Federwiderstand wird der Sensorstromkreis geschlossen und somit der elektrische Impuls mit einer ungefähren Stromstärke von 2,2 mA abgesetzt. Wird der Taster losgelassen, so wird der Stromkreis wieder durch die meachanische Feder unterbrochen.
'''Tastsensor:''' Der Tastsensor funktioniert im Grunde wie ein normaler Lichtschalter und besitzt entweder die Position 1 (gedrückt) oder 0 (nicht gedrückt). Durch das Drücken des Tasters gegen einen leichten mechanischen Federwiderstand wird der Sensorstromkreis geschlossen und somit der elektrische Impuls mit einer ungefähren Stromstärke von 2,2 mA abgesetzt. Wird der Taster losgelassen, so wird der Stromkreis wieder durch die meachanische Feder unterbrochen.
 
 


== Spielstrategie ==
== Spielstrategie ==

Version vom 19. Januar 2018, 15:46 Uhr


Autor: Christoph Jutz

Einleitung

Teammitglieder

In diesem Abschnitt werden kurz die Teammitglieder, die an diesem Projekt beteiligt waren, und ihre Tätigkeiten vorgestellt.

  1. Christoph Jutz:
    • Bau des Roboters
    • Nachbau des Roboters als LEGO - Modell mit dem LEGO - Designer
    • Entwicklung eines Konzepts/einer Spielstrategie
    • Implementierung der Spielstrategie in BricxCC (Brixc Command Center)
    • HSHL - Wiki - Artikel
  2. Darius Wude
    • Bau des Roboters
    • Entwicklung einer Spielstrategie
    • Implementierung der Spielstrategie in BricxCC
  3. Anas Habbaba
    • Bau des Roboters

Ziel des Praktikums

Das Ziel des Praktikums besteht darin einen LEGO - Roboter zu konstruieren und zu programmieren, der selbstständig auf einem Spielfeld einen Spielball erkennt und diesen schnellstmöglich in das gegnerische Tor zu schießen.


Das Spielfeld

Gespielt wird auf einem 183cm langen und 122cm breiten RoboSoccer - Spielfeld. Die beiden Tore sind 45cm breit und 14cm hoch. Weitere Abmessungen und Infos lassen sich hier finden.

Regelwerk

Das vollständige Regelwerk ist hier zu finden.

Hardware

Als Hardware wurde ein LEGO – Mindstorms - Set benutzt. In diesem Set sind 3 Servomotoren, ein Ultraschallsensor, zwei Tastsensoren, ein Lichtsensor und ein Geräuschesensor enthalten. Der Lichtsensor und der Geräuschesensor wird in unserem Projekt nicht verwendet, da es für diese Sensoren keinerlei sinnvolle Anwendung für ein erfolgreiches Fußballspiel gibt. Der Ultraschallsensor könnte beispielsweise zur rechtzeitigen Erkennung der Spielfeldbegrenzung genutzt werden. Mit jenem Sensor lässt sich jedoch nicht eindeutig bestimmen, ob das erkannte Hindernis tatsächlich die Wand der Spielfeldbegrenzung, der gegnerische Roboter oder der Spielball ist. Aus diesem Grund, findet der Sensor bei unserem Roboter ebenfalls keine Verwendung.

Damit der Roboter nun jedoch den Spielball finden und sich dann zum Tor ausrichten kann, benötigt es zusätzliche Sensoren, die in dem LEGO – Mindstorms – Set nicht enthalten sind. Das wäre zum einen ein Infrarotsensor, um den Spielball suchen zu können und zum anderen ein Kompassensor zur Positionsbestimmung und zum Ausrichten zum Tor. Beide Sensoren werden von der Firma HiTechnic hergestellt. Die Servomotoren sowie der Tastsensor werden im Folgenden noch kurz vorgestellt.

Aktuatoren

Der NXT benutzt Servomotoren, die je nach Belieben nach Zeit, Geschwindigkeit, Strecke und Winkel angesteuert werden können. Die Motoren können gradweise nach vorne oder hinten gesteuert werden. Der NXT-Stein bietet 3 Möglichkeiten um Servomotoren anzuschließen.

Die NXT-Servomotoren sind Elektromotoren mit eingebauten Rotationssensoren, die die Umdrehungszahlen in Grad speichern können. Über verschiedene Kommentare und Befehle lassen sich diese rotieren, vor und zurück fahren oder bremsen.

Sensoren

Tastsensor: Der Tastsensor funktioniert im Grunde wie ein normaler Lichtschalter und besitzt entweder die Position 1 (gedrückt) oder 0 (nicht gedrückt). Durch das Drücken des Tasters gegen einen leichten mechanischen Federwiderstand wird der Sensorstromkreis geschlossen und somit der elektrische Impuls mit einer ungefähren Stromstärke von 2,2 mA abgesetzt. Wird der Taster losgelassen, so wird der Stromkreis wieder durch die meachanische Feder unterbrochen.

Spielstrategie

Zur Realisierung einer Spielstrategie für das Spielprogramm wird zunächst ein Programmablaufplan mit dem Programm „PaP-Designer“ erstellt. Bei unserer Spielstrategie benutzen wir drei Unterfunktionen: Die Ballsuche und den Ballfang, das Ausrichten zum Tor und den Ballschuss. Diese drei Unterfunktionen werden dann in einem Multitaskingprogramm als Dauerschleife im Hauptprogramm zusammengeführt.

Ballsuche und Ballfang

(Screenshot für Ballsuche und Ballfang) Solange der Tastsensor nicht gedrückt ist, soll der Ball gesucht werden und sich die Fangmotorik drehen. Zur Ballsuche werden die Werte des Infrarotsensors eingelesen. Mit 5 if-Verzweigungen werden die 5 Richtungen unterschieden und die Motoren dann jeweils angesteuert.

Ausrichten zum Tor

(Screenshot vom Ausrichten) Wenn der Tastsensor gedrückt wurde/ist, wird die aktuelle Richtung des Kompassensors eingelesen und die Differenz zur Richtung des Tors berechnet. Danach werden die "Fahrmotoren" so angesteuert, dass sich der Roboter zum Tor bewegt. Sobald die Differenz mit einer kleinen Abweichung der Richtung des Tors entspricht, werden die "Fahrmotoren" gestoppt.

Ballschuss

(Screenshot vom Ballschuss) Der Schussmotor soll den Ball mit voller Leistung ins Tor schießen.


Software

Zur Realisierung des Konzepts und Implementierung der Unterprogramme und des Hauptprogramms wurde das Bricx Command Center (kurz: BricxCC) verwendet. Dieses benutzt die Programmiersprache NXC (Not eXactly C). Da an dieser Stelle eine vollständige Präsentation des Spielprogramms nicht vorgesehen ist, werden „nur“ die Befehle zur Ansteuerung der Motoren sowie Sensoren vorgestellt. …OnFwd(OUT_ ,75); OnRev(OUT_ ,75); OnFwdSync(OUT_ ,75, 50); OnFwdReg(OUT_ ,75,Regmode) Break(OUT_ ) Float(OUT_ )

Weitere nützliche Befehle, Beispiele und Erläuterungen lassen sich in dem Buch „Programmieren mit NXC“ von Daniel Braun finden, welches auch von uns genutzt wurde.


Unterabschnitt

  1. Nutzen Sie Aufzählungen
    • mit verschiedenen Schachtelungen
    • und so weiter
  2. zweite Ebene
    • mit erneuter Unterebene

Bilder

Bauen Sie Bilder ein, am besten mit darin gekennzeichneten Stellen, die Sie dann im Text erklären.

Beispielbild mit Quelle [1]

Tabellen

Eine tolle Tabelle ist hier dargestellt.

Spalte 1 Spalte 2 Spalte 3
blabla sowieso sowieso
test sowieso test1

Formatierung

Nutzen Sie zur Formatierung Beispiele, z. B. aus dem weltbekannten Wikipedia selbst (das ist die gleiche Syntax!) oder anderer Hilfeseiten wie z. B. [2].

Zusammenfassung

Was ist das Ergbnis? Das Ergebnis dieses Artikels ist eine Vorlage, mit der Nutzer des Wikis schnell und leicht eigene Artikel verwirklichen können. Diese Vorlage ist Bestandteil der Anleitungen aus den How-To's.


Ausblick

Was kann/muss noch verbessert werden?


Literaturverzeichnis


Korrektur/Rückmeldungen

Hier können Nutzer oder kritische Leser (meist Professoren) Verbesserungen fordern/vorschlagen.

YouTube - Video

Zur bildlichen Veranschaulichung wurde ein YouTube - Video erstellt, welches hier zu finden ist.


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