Roboter Hund Bittle


In diesem Kurs geht es darum, einen Roboterhund mit individuellen Fähigkeiten zu entwickeln.


1. Learning Outcome

1.1. Einführung

Menschen haben Roboter erfunden, damit sie sehr langweilige oder schwere Arbeit nicht mehr selbst erledigen müssen. Ein Roboter ist in der Lage, komplexe Aktionen automatisch und sehr genau auszuführen. Roboter können von einem externen Steuergerät wie z.B. einem Joystick geführt werden oder die Steuerung befindet sich innerhalb des Roboters wie das Gehirn bei einem Menschen (🧠).

In diesem Kurs geht es um unsere Roboterhunde “Bittle” und ihre Erziehung. Mit deiner Programmierung können sie Aktionen ausführen oder Kunststücke machen.

1.2. Was du dafür brauchst

1.2.1. Hardware

1.2.2. Software


2. Einführung

Schaut euch zunächst die verschiedenen Arten von Robotern an:

Coole Roboter, oder? Auch die Programmierung ist nicht so schwierig. Man benötigt nur etwas Übung und Geduld 🧘‍♂.

Todo:

Diskutiere die folgenden Fragen mit deinem Nachbarn:

  1. Wo werden Roboter eingesetzt?
  2. Wie bewegen sich die Roboter im dargestellten Video?
  3. Hast du schonmal einen 4-beinigen Roboter wie eine Katze oder einen Hund gesehen?
  4. Wofür könnte man einen 4-beinigen Roboter nutzen?

Jetzt machen wir eine kurze Videopause 🥤. Das Video wurde an der DARPA Robotics Challenge (DRC) gemacht. Bei der Challenge sollten Roboter Rettungsaktionen ausführen. Ohne die richtige Programmierung ist für einen Roboter nichts selbstverständlich. Der Roboter kann nicht einmal von selbst das Gleichgewicht halten oder etwas greifen. Aber überzeuge dich selbst:


3. Grundlagen von Robotern und Programmierung

Jetzt kommen wir zu Bittle, unserem Roboterhund. In diesem Teil erhältst du Informationen über den Hund und lernst, wie ein Programmierer zu denken. Bittle sieht aus und funktioniert wie ein echter Hund.

intro_bittle

Bittle ist zu vielen Dingen fähig, sieh dir die kurze Demo an.

Um solche Roboter herzustellen, benötigt man einige wichtige Komponenten:

Der digitale Zwilling des Roboterhundes spielt auch bei der Herstellung des Hundes eine Rolle. Der digitale Zwilling ist die digitale Darstellung des Hundes und beschreibt alle seine Komponenten.

inside_me

Versuche einmal Bittle zu sagen, dass er sich setzen soll. Hat es etwas bewirkt? 🐶😵

Wahrscheinlich nicht. Derzeit versteht Bittle die Anweisungen nicht. Du musst dem Hund beibringen, was bei dem Befehl “Sitz!” zu machen ist. Wenn du Computern oder Robotern Anweisungen gibst, die sie verstehen und ausführen, wird das Programmieren genannt.

Ein Programm ist eine Liste von Anweisungen, die dann von dem Roboter ausgeführt werden. Oft ist es schwierig, die richtige Reihenfolge der Anweisungen zu erkennen. Man verwendet dann Flussdiagramme, um den Prozess zu planen. Ein Flussdiagramm zeigt einen Entscheidungsprozess, der ein bisschen wie ein Code aufgebaut ist. Wenn du zum Beispiel eine Tasse Tee zubereiten möchtest, dann könntest du ein Flussdiagramm wie dieses erstellen.

flow_chart

Die Bedeutung der Symbole ist unten angegeben:

flowchart_symbols

Ein weiteres Beispiel für ein Flussdiagramm kann wie folgt sein: Stell dir vor, du müsstest eine Straße überqueren und es gibt keine Ampel auf der Straße. Du musst also überprüfen, ob die Straße leer ist und ob du sie überqueren kannst. Wenn ein Auto in der Nähe der Kreuzung ist, dann wartest du solange, bis es wieder sicher aussieht. Dies wird Entscheidungsprozess genannt. Versuche, ein Flussdiagramm für die Situation mit der Straßenkreuzung zu zeichnen.

Der Entscheidungsprozess spielt eine wichtige Rolle bei der Programmierung. Bevor du mit einem Projekt oder einer Programmieraufgabe beginnst, solltest du dir folgende Fragen stellen:


4. Programmierung

In diesem Teil lernst du Bittle zu programmieren. Aufgeregt? 🤯

Um den Roboterhund zu programmieren, verwendest du die Codecraft-Software. Die Schnittstelle sieht so aus:

codecraft_ui_guide1

Zum Programmieren kannst du den Blockkatalog öffnen und einen Block in den Arbeitsbereich ziehen. Gehe die folgende Anleitung durch, damit du mit dem Programmieren beginnen kannst.

4.1. Roboter mit PC verbinden

Um das Programm auf dem Roboter hochzuladen, musst du Bittle an einen PC anschließen. Du benötigst folgende Dinge:

Folge den unteren Schritten:

  1. Entferne die Abdeckung des Roboters.

body_and_cover1

  1. Stecke die Micro-USB-Seite des Kabels in den USB-Stecker und verbinde den USB-Stecker mit dem Roboterhund.

usb_connect1

  1. Verbinde das andere Ende des USB-Kabels mit dem PC.

  2. Unter dem Hund befindet sich ein kleiner Knopf. Halte den Knopf einige Sekunden lang gedrückt, bis ein blaues Licht neben dem Knopf leuchtet. So wird der Roboter eingeschaltet.

battery_button

  1. Öffne die Codecraft-Software über die Taskleiste.

codecraft_icon

  1. Wähle Bittle in der Hardwareauswahl aus.

codecraft_ui_bittle

  1. Klicke auf der linken Seite auf die Schaltfläche Verbinden. Wähle dein Gerät aus der Liste aus und bestätige mit OK.

connect_test

  1. Du siehst ein Pop-Up-Fenster, das die Verbindung bestätigt. Wenn nicht, dann wende dich an einen Betreuer.

connect_success

Sehr gut, der Hund ist mit dem Programm verbunden! Lies dir noch kurz eine Einleitung zu den Blöcken durch, dann kannst du mit dem Programmieren beginnen.

4.2. Programmierung mit Bausteinen

Um den Roboter zu programmieren, werden Blöcke verwendet. Blöcke haben verschiedene Formen und Farben. Hinter den Blöcken sind einzelne Code-Schnipsel. Der PC verwendet ein anderes Programm, um die einzelnen Schnipsel zu einem Programm zu fügen und auf den Roboter hochzuladen. Die Blöcke sind also nur eine Hilfestellung, um dir das Programmieren zu erleichtern.

4.2.1. Blockformen

Es gibt fünf verschiedene Blockformen in Codecraft:

codecraft_block_guide1

Beschreibung:

🥱 Ein letzter Abschnitt, dann kannst du endlich mit Bittle spielen.

4.3. Katalog 📚

Es gibt etwa 10 Kataloge, in denen die Blöcke nach ihrer Anwendung unterteilt sind. Die wichtigsten Kataloge sind:

Du kannst auch gerne die anderen Kategorien erkunden.

Es gibt einen wichtigen Block. Es ist ein spezieller Block, der nur einmal in einem Programm verwendet wird. Er heißt Setup & Loop Block. Du findest ihn im Systemkatalog. Dieser Block besteht, wie im Namen, aus 2 Teilen, Setup und Loop.

Wenn du mehrere Setup & Loop Blöcke in deinem Programm hast, dann funktioniert dein Programm nicht wie gewünscht.

Jetzt kannst du mit dem Programmieren beginnen. Hier sind ein paar Aufgaben.


5. Tasks

5.1. Aufgabe 1 👩‍🏭 - Erste Tests

Teil 1

  1. Füge einen Setup & Loop-Block hinzu.
  2. Füge in Setup eine Buzzer-Melodie (Der Block heißt: “Buzzer play melody”) hinzu.
  3. Klicke auf der linken Seite auf die Schaltfläche hochladen (Upload). Warte, bis der Upload abgeschlossen ist.

codecraft_upload

codecraft_upload_2

Teil 2 👩‍🏭

  1. Verschiebe nun die Buzzer-Melodie von Setup auf Loop.
  2. Klicke auf hochladen (Upload) und warte, bis der Upload abgeschlossen ist.

Was beobachtest du? Was verändert sich, wenn man den Melodie-Block von Setup in Loop verschiebt?

Erklärung: Wenn ein Block im Setup ist, dann läuft er nur einmal zu Beginn eines Programms ab. Wenn ein Block in einer Schleife (Loop) ist, dann wird er immer und immer wieder ausgeführt (bis der Akku leer ist).

5.2. Aufgabe 2 - Lassen Sie den Hund laufen

  1. Entferne die Buzzer-Melodie, wenn du sie nicht mehr hören möchtest.
  2. Füge den Walk-Block aus dem Skill-Katalog innerhalb der Schleife (Loop) hinzu.
  3. Füge den Bewegungsblock (Execute the movement) nach dieser Schleife (Loop) aus. Dieser Block ist wichtig, da nur mit ihm eine Bewegung ausgeführt wird.
  4. Klicke auf hochladen (Upload) und warte, bis der Upload abgeschlossen ist.

Bittle sollte jetzt anfangen zu laufen. Sei vorsichtig, da er immer noch mit dem PC verbunden ist. Entferne den USB-Anschluss, um mit ihm spazieren zu gehen.

Erklärung: In der obigen Aufgabe hast du den Befehl Walk (Gehen) und dann die Bewegung ausführen (Execute the movement) verwendet. Der Befehl Walk wird nur zur Vorbereitung für die Aktion gebraucht. Ausgelöst wird die Bewegung mit dem Bewegung-ausführen-Block (Execute the movement).

5.3. Aufgabe 3 - Steuere den Hund mit der Fernbedienung. 👩‍🏭

  1. Füge die Blöcke wie im Bild ein und verbinde sie passend.

remote_stop_task

  1. Klicke auf hochladen (Upload) und warte, bis der Upload abgeschlossen ist.
  2. Zunächst beginnt Bittle zu laufen. Drücke nun die obere linke Taste auf der Fernbedienung.

Was siehst du? Hält der Roboter an?

Erklärung: In dieser Aufgabe hast du einen if-Block verwendet. Der If-Block ist eine Anweisung mit einer Bedingung, die vorher abgefragt wird. Wenn eine bestimmte Bedingung erfüllt ist, wird dieser Teil des Codes ausgeführt. Der Code wird übersprungen, wenn die Bedingung nicht erfüllt ist. Der If-Block ähnelt den Überlegungen aus deinem täglichen Leben.

if_else_rain

Hier hast du den if-Block verwendet, um die Verbindung zwischen Roboter und Fernbedienung zu überprüfen. Wenn Bittle das Signal empfängt, dann ist die Bedingung des ersten If-Blocks korrekt und die Bedingung des zweiten If-Blocks wird überprüft. Jetzt wird geprüft, welche Taste gedrückt wurde. Wenn du die von dir programmierte Taste gedrückt hast, dann ist auch die zweite Bedingung korrekt und die Anweisung des zweiten If-Blocks wird ausgeführt. Wenn du eine andere zufällige Taste gedrückt hast, dann wird der if-Block übersprungen und der Rest des Codes läuft weiter.

Wow, du bist schon fertig und hast das Ende der heutigen Reise erreicht.

Schon fertig und noch Zeit?

Unten findest du noch zusätzliche Aufgaben 😉


6. Weitere Informationen zu Bittle

Möchtest du mehr über den Roboterhund erfahren? Diese Websites können dir helfen:

Grundlagen / Ich habe gerade erst angefangen:

Mittelstufe / Ich weiß etwas:

Fortgeschritten / Bring it on:

Scanne diesen QR-Code und erhalte alle Links direkt aufs Handy.

iaam_linktree

Wenn du Projektvorschläge oder andere Ideen hast, dann schreibe uns gerne eine E-Mail!

iaam_email


7. Zusätzliche Aufgaben

7.1. Aufgabe 4 🎮 - Programmiere eine Fernbedienung, um die Bewegung des Hundes zu steuern.

Erstelle einen Code für die Fernsteuerung wie im Bild.

remote_control

Wenn du also die Vorwärts-Taste drückst, dann muss der Hund vorwärts gehen. Wenn du die Links-Taste drückst, dann muss Bittle nach links gehen. Am besten verwendest du if-Blöcke ähnlich wie in der vorherigen Aufgabe.

Du musst den if-Block mit „Infrared Receiver started“ nur einmal hinzufügen.

  1. Klicke auf hochladen (Upload) und warte, bis der Upload abgeschlossen ist.

Hat alles geklappt? Gute Leistung! 🔥

Versuche dich an der nächsten Aufgabe.

7.2. Aufgabe 5 - Roboterübung 🧘‍♂️

Schaue dir das unten an und hilf dem Roboter, einige Übungen zu machen.

Du kannst verschiedene fixed poses (Programmblöcke für einzelne Kunststücke) verwenden, damit die Hunde die Fitnessübungen machen. An dieser Stelle kannst du auch kreativ werden und dir eigene Fitnessübungen für Bittle überlegen.

7.3. Aufgabe 6 - Digitaler Zwilling

Ein digitaler Zwilling (oder „digital twin“ auf Englisch) ist eine digitale Nachbildung (zum Beispiel von einer Maschine). Dabei werden alle Daten über die Maschine wie die Betriebsanleitung, Sensordaten oder Programme gesammelt und verwaltet. Die Daten sind nicht nur aus der Anwendung des Bittle. Es können auch Daten aus der Konstruktion sein. Und sogar die Daten, die beim Recycling eines Bittle generiert werden, können im digitalen Zwilling gespeichert werden.

Was für ein Zweck hat ein digitaler Zwilling? Überlegt zusammen nach möglichen Vorteilen für ein Unternehmen, wenn es von einer Maschine einen digitalen Zwilling anfertigt.

Das ist alles, was wir für heute haben. Danke dass du so gut mitgemacht hast 🥳