Dobot Magician: Turm von Hanoi

Eine interaktive Übung zum Anwenden des rekursiven Algorithmus. Ziel: Alle Scheiben vom Startturm A auf den Zielturm C bewegen – immer nur eine Scheibe, nie eine größere auf eine kleinere.

1. Grundidee des Algorithmus

Regeln

  1. Es darf immer nur eine Scheibe bewegt werden.
  2. Es darf nur die oberste Scheibe eines Turms genommen werden.
  3. Eine größere Scheibe darf nie auf einer kleineren liegen.

Rekursiver Lösungsplan

Um n Scheiben von A nach C zu bewegen, benutzt man B als Hilfsturm:

  1. Bewege n−1 Scheiben von A nach B.
  2. Bewege die größte Scheibe von A nach C.
  3. Bewege n−1 Scheiben von B nach C.

Für den Dobot gedacht: Ein einzelner Algorithmusschritt entspricht einem Pick-and-Place-Befehl: Scheibe ansaugen oder greifen, anheben, zum Ziel fahren, ablegen. Erst die Strategie planen, dann in Bewegungsbefehle übersetzen. 🤖

hanoi(n, start, ziel, hilfe):
    wenn n == 1:
        bewege eine Scheibe von start nach ziel
    sonst:
        hanoi(n-1, start, hilfe, ziel)
        bewege eine Scheibe von start nach ziel
        hanoi(n-1, hilfe, ziel, start)

2. Interaktive Übung

Klicke zuerst auf einen Turm mit Scheibe, dann auf den Zielturm.

3. Vom Algorithmus zum Dobot-Programm

Für den realen Dobot Magician braucht jeder Turm feste Koordinaten. Zusätzlich braucht man sichere Höhenpositionen, damit der Arm nicht gegen Scheiben oder Türme fährt.

AktionBeschreibungDobot-Idee
1. AnfahrenZur obersten Scheibe des Startturms fahrenmove_to(start_x, start_y, z_oben)
2. AufnehmenSauger oder Greifer aktivierensuction_on() oder gripper_close()
3. AnhebenAuf sichere Transporthöhe fahrenmove_to(start_x, start_y, z_sicher)
4. TransportÜber den Zielturm fahrenmove_to(ziel_x, ziel_y, z_sicher)
5. AblegenAuf passende Stapelhöhe absenken und loslassensuction_off() oder gripper_open()