is-Logo Karel D. Robot
Die Roboter

S. Spolwig

[Delphi | OOP]
Startseite

Diese Beschreibung ersetzt nicht die Spezifikation

Bevor Sie Ihren ersten Roboter bauen, studieren Sie bitte 'Asimov's Three Laws of Robotics':

 
  1. A robot may not injure a human being, or, through inaction, allow a human being to come to harm.
     
  2. A robot must obey the orders given it by human beings except where such orders would conflict with the First Law.
     
  3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.

Der nachweislich erste Roboter war Robby the Robot, konstruiert von Doctor Edward Morbius nach einer Technik der Krell auf Altair. Die Begegnung und die Umstände wurden von einen Filmteam der MGM 1956 dokumentiert. Leider sind die Baupläne verschollen.

Man unterscheidet drei Arten von Robotern: Extern gesteuerte, halbautonome und autonome.

Ein Beispiel für eine Aufgabe, die der Roboter tun soll: Auf Feld C,4 liegt Müll, den der Roboter aufsammeln soll.

- extern gesteuert
  bedeutet, jede Aktion kommt als Anweisung:   Vor, Vor, RechtsDrehen, ..., AufNehmen.

- halbautonom
  bedeutet, der Roboter kann bestimmte komplexe Aktionen selbst ausführen kann.
  Die Anweisung lautet:   Gehe nach C,4, AufNehmen.
  Er findet also selbstständig einen Weg nach C,4.

- Autonom
  bedeutet, daß der Roboter völlig selbständig eine allgemein beschriebene Aufgabe löst:
  Beseitige allen Müll.

  Er sucht alle Plätze ab, kann Müll von anderem unterscheiden und beseitigen.
 


Die Sprache

Unsere Roboter verstehen eine eigene Sprache. Das sind die Wörter für Aufträge oder Anfragen, die der Roboter ausführen kann. Sie sind im folgenden Abschnitt beschrieben.
Daneben versteht er Schlüsselwörter aus Object Pascal (Delphi), die seinen eigenen Sprachumfang ergänzen. Das sind im wesentlichen solche zur allgemeinen Programmsteuerung, die Sie nach und nach bei Bedarf kennen lernen werden.
 


Der Roboter RD1 vom Typ TRobot

ist der Urgroßvater des legendären R2D2 aus Star Wars.

Er hat ein rotes Fahrgestell und vorn eine Lampe, die die Richtung anzeigt und bei Bereitschaft grün, bei Fahrt gelb und bei Problemen rot aufleuchtet.

Er ist ziemlich dumm, aber ungeheuer stark, denn er walzt wie ein wild gewordener Bagger auf seinem Weg alles nieder, wenn er nicht richtig programmiert wird: wo er war, ist nichts mehr;
d. h. das Objekt, welches er überfahren hat, ist weg und aus der Welt entfernt.
Er wurde geplant als universelle Reinigungs- und Staubsaugermaschine, reißt leider aber auch Mauern und Häuser ab.

Er verfügt nur über die aktiven Methoden

- Vor 
     d.h. gehe einen Schritt in der aktuellen Richtung vorwärts
     unabhängig davon, ob es frei ist oder besetzt. Wenn da
     was war, wird es entfernt.

- RechtsDrehen
     d. h. auf der aktuellen Position um 90 Grad um die eigene
    Achse drehen.

- BatterieAufladen
    
wenn er eine bestimmten Anzahl von Schritten gegangen
     ist, ist die Batterie leer und kann neu geladen werden.

 - MacheSpur
     er hinterläßt Fußabdrücke, damit man seinen Weg verfolgen
     kann.

 - KeineSpur
     Fußabdrücke abschalten.
------------------------------------------------------------

Daneben hat er Sensoren, die seine Umgebung checken können.
Diese sind bei RD1 aber noch nicht aktiviert!

- VorneFrei
     d. h. er kann nachsehen, ob auf dem nächsten Feld etwas
     steht oder frei ist.

- HindernisPruefen
    d. h. wenn er an ein Hindernis kommt, geht die rote
    Warnlampe an und er kann feststellen, was   für eine Art
    Hindernis es ist. Damit kann man ihm beibringen, sich
    adäquat zu verhalten; z. B. den Müll aufsaugen, aber Bäume
    stehen lassen usw.

- OffLimits
    
wenn er sich außerhalb der Welt befindet, fällt er sozusagen
    vom Tisch und ist zerstört.

- DaGewesen
     er hat ein Gedächtnis und merkt sich, auf welchem Feld er
     schon war und welche Anweisungen er bekam.

Außerdem wissen sie immer:

- wo sie stehen,
- in welche Richtung sie sehen,
- wie viele Schritte sie seit Start gelaufen sind,
- wie der Batteriestand ist.

------------------------------------------------------------

Mögliche Aufgaben:

- Dem Roboter neue Methoden beibringen
- Die Handsteuerung erweitern
- programmgesteuerte Aktionen ausführen lassen.
- Aus einem dummen extern gesteuerten Roboter
  einen autonomen machen.

 




  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Programmierhinweis:

Hindernis prüfen
z. B. ob es ein Baum ist

if (RD1.HindernisPruefen is TBaum)
then ...


 

Der Roboter Karel vom Typ TKarel

ist ein Exemplar der 2. Generation. Er basiert auf der Technik von RD1 und wurde darauf aufbauend weiter entwickelt. Säuberungs- und Entsorgungsaufgaben kann er spielend erledigen. Zur Unterscheidung hat er ein blaues Fahrgestell.

Sein Sprachumfang und seine Fähigkeiten sind wie bei TRobot, aber teilweise verbessert und für Transportaufgaben erweitert:

 - Vor
  
   wie oben, aber er bleibt stehen, wenn das Feld besetzt ist.

 - Aufnehmen
     Das Objekt von dem nächsten Feld in Laufrichtung
     wegnehmen und in seinen Container stapeln.

 - Ablegen
      Das oberste Objekt aus dem Container (LIFO) auf dem
      nächsten Feld in Laufrichtung absetzen.

 - Einlagern
      Ein Item aus dem Container nehmen und an das Lagerhaus
     abgeben.

 - Auslagern
      Ein Item vom Lagerhaus abholen und in den Container  laden.

- VorDemAbgrund
      Karel kann prüfen, ob er mit dem nächsten Schritt in den
     Abgrund fallen wird.
 

 

  


©  05. Oktober 2008    Siegfried Spolwig

page_top