RoboSoccer Gruppe B5 - WS 18/19

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Einleitung

In diesem Wiki-Arktikel wird näher auf unseren Roboter, die Realisierung der Aufgaben und Lösungsansätze für Probleme eingagangen. Das Ziel des Informatikpraktikums ist es einen Lego Mindstorms NXT mit BricksCC so zu programmieren, dass er ein Fußballturnier, nach dem Regelwerk des RoboSoccer, gegen die Roboter der anderen Gruppen spielen, und bestenfalls auch gewinnen kann.

Regeln

Die Regeln nach denen der Roboter zu spielen hat, sind klar definiert.

    Spielablauf
       Es treten alle Gruppen im Robo-Soccer gegeneinander an. Gespielt wird nach dem KO-System.
       Gegner werden zu Beginn ausgelost.
       Es ergeben sich 4x Achtelfinale, 2x Halbfinale und 1x Finale, d.h. 7 Matches.
       Spielzeit pro Match fasst insgesamt 10 Minuten. Es werden 2 Runden mit jeweils 5 Minuten gespielt. Die Halbzeitpause dazwischen dauert 1 Minuten.
       Es gibt eine Verlängerung bei "unentschieden" bis das erste Tor gefallen ist. 
       Anstoß
       Ausgangsposition der Roboter beim Anstoß ist die eigene Torlinie mit gleichem Abstand zur Mitte. Der Ball befindet sich in der Mitte.
       Nach einem Tor starten die Roboter in der Ausgangsposition, doch der Gegner erhält den Ball. Der Ball wird direkt vor den gegnerischen Roboter gelegt.
       Nach Halbzeit werden die Torseiten gewechselt. Ausgangsposition der Roboter beim Anstoß ist die eigene Torlinie mit gleichem Abstand zur Mitte. 
       Der Ball befindet sich in der Mitte. 
       Ballbesitz
       Der Ballbesitz ist auf 5 Sekunden begrenzt. Im Ballbesitz dar sich der Roboter zum Schuss ausrichten.
       Das Fahren beim Ballbesitz ist nicht erlaubt.
       Torschüsse gelten nur, wenn der Roboter den Ball geschossen hat. Den Ball in das Tor fahren ist nicht erlaubt. Der Roboter darf beim Torschuss nicht
       hinter die gegnerische Torlinie fahren.
       Wenn sich ein Roboter, der im Ballbesitz ist, "festgefahren" hat, d.h. länger als 5 Sekunden keine Bewegung ausführen kann, bekommt der Gegner den Ball. 
       Siegbedingung
       Sieger ist, wer nach Ende der Spielzeit des Matches die meisten Tore geschossen hat.
       Wenn es nach Ablauf der Spielzeit unentschieden steht, wird so lange weitergespielt, bis das erste Tor gefallen ist. Dieses Team ist Sieger des Matches. 
       Fouls
       Wenn sich die Roboter ineinander verhaken oder sich umwerfen, werden die Gegner getrennt und in die Ausgangsposition gestellt und der Ball in die Mitte
       gelegt (gemeinsames Foul).
       Wenn ein Roboter ohne gegnerischen Einfluss umkippt oder sich verhakt, werden die Roboter in die Ausgangsposition gestellt und der Gegner bekommt den
       Ball (einseitiges Foul).
       Als Foul zählt, wenn der Roboter beim Torschuss hinter die gegnerische Torlinie fährt (einseitiges Foul).
       Als Foul zählt wenn sich ein Roboter, der im Ballbesitz ist, "festgefahren" hat, d.h. länger als 5 Sekunden keine Bewegung ausführen kann (einseitiges 
       Foul).
       Wenn ein Roboter 3 Fouls angesammelt hat, bekommt er eine Auszeit von 10 Sekunden. In der Zeit darf der andere Roboter sich allein auf dem Spielfeld 
       bewegen und Tore schießen. 

Gruppenmittglieder

Die Mitglieder der Gruppe haben sich unterschiedlichen Themen bei der Gestaltung des Roboters zugewandt.

  1. Tobias Schupp
    • Programmierung
    • Gestaltung des Plakats
  2. Berta Nissen
    • Programmierung
    • Fotos und Dokumentation
  3. Aaron Pälmke
    • Programmierung
    • Wiki-Artikel

Software

Der Roboter wurde, für das Turnier, mit dem Bricks Command Center, kurz BricksCC oder BCC, programmiert. Im Laufe des Informatikpraktikums wurde die Programmiersprache in der Gruppe erarbeitet, sodass jedes Mitglied der Gruppe über die nötigen Kenntnisse verfügt, um den Roboter selbst zu Programmieren, oder an ihm weiter zu arbeiten. Es wurden jedoch auch andere Sprachen im Laufe des Praktikums verwendet.

Verwendete Programmiersprachen

  • BricksCC (zur Programmierung ab dem dritten Praktikumstermin)
  • LEGO Mindstorms EV3 (zur Programmierung bis zum dritten Praktikumstermin)
  • LEGO Mindstorms NXT 2.0-Software (zur Programmierung bis zum dritten Praktikumstermin)
  • HiTechnic Add-Ons (Add-Ons für HiTechnic Produkte in NXT 2.0)
  • LEGO Digital Designer (zur Erstellung der Bauanleitung)


Hardware

Der Roboter wurde natürlich mit diversen Sensoren ausgestattet, um dem Ball folgen zu können. Auf die Sensoren wird hier im folgenden einzeln Eingegangen.

  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].

Quelltext

Details siehe: Quelltext_einbinden.


Bei lang= muss die richtige Sprache eingetragen werden (matlab, c,...).

 
for i=1:10 
%     try
%         image = CAMERA_DumpFrame(s);       
%     catch err
%         error('MATLAB:RWTHMindstormsNXT:Sensor:unknown', 'An unknown Error occured while fetching the image. Please check that the Camera is connected and try again');
%     end
    image = CAMERA_GetImage(com);
    handle = imshow(image);
    %pause(0.1)
    currTime(i) = toc(startTime);
    disp(['Aktuelle Zeit: ',num2str(currTime(i))])
    %imwrite(image,sprintf('NXTCamImage%03d.png',i));
    %imwrite(img,fullfile(workingDir,sprintf('HexBug%03d.png',n)));
    % ca. alle 4.8 Sekunden ein Bild
end;

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?

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

Literaturverzeichnis