Aldebaran Robots Programmbeispiele

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

Allgemeines

Ich weiß noch nicht so recht wie ich diese Seite(n) gestalten soll. Ich habe schon viele Programme aus dem Aldebaran Store, von Github und anderen Quellen ausprobiert. Der Erfolg war durchwachsen. Ich will den Erstellern keine Vorwuerfe machen, es ist ja sehr lobenswert, dass sie den Quellcode ueberhaupt zur Verfuegung stellen, aber sind doch nicht selten Anpassungen notwendig um ein Programm ueberhaupt zum Laufen zu bewegen. Manchmal war der Aufwand sogar so groß, oder das Programm so bescheiden dokumentiert, dass sich jeder weitere Aufwand kaum lohnt.

Ich koennte mir vorstellen, jedes Programm hier im Wiki mit einer Art Steckbrief zu versehen, so dass man moeglichst schnell einen Eindruck des Umfangs und der Leistung bekommt. Dazu koennte ich mir vorstellen einen Parser für die CRG-Files zu schreiben der einem das Grundgeruest des Steckbriefes liefert.

Ich fang mal an einzelne Codeschnipsel zu kommentieren.

AIDA-bot (Github)

Screenshot 20230224 115407.png

Random-Box

Steckt in der Welcome-Box, in der Nao_bored->Actions-Box und in der GoodBye-Box.

Screenshot 20230223 220616.png

class MyClass(GeneratedClass):
    def __init__(self):
        GeneratedClass.__init__(self)

    def onLoad(self):
        #put initialization code here
        pass

    def onUnload(self):
        #put clean-up code here
        pass

    def onInput_onStart(self):
        #self.onStopped() #activate the output of the box
        pass
        animations = [self.action1,self.action2,self.action3]
        action = animations[int(random.randint(0, len(animations) - 1))]
        action()

    def onInput_onStop(self):
        self.onUnload() #it is recommended to reuse the clean-up as the box is stopped
        self.onStopped() #activate the output of the box

Interessant sind dabei die 3 folgenden Zeilen:

       animations = [self.action1,self.action2,self.action3]
       action = animations[int(random.randint(0, len(animations) - 1))]
       action()

animations wird eine Liste mit den EInsprungpunkten der drei "Ausgangs-Bangern". action bekommt per Zufall eine der drei Funktionen zugewiesen und ruft diese mit action() dann auf.

Screenshot 20230224 100155.png

Auf die Idee waere ich so nicht gekommen. Ich haette es mit random und nachfolgend einem switch ralisiert.


Request for Comments


Kommentar hinzufügen
TippvomTibb freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, registriere dich bitte oder melde dich an.