Pepperアプリ開発 Python Box 入門

1

Choregrapheの画面で 右クリック >
ボックスの新規作成 から、以下の4種類のボックスが作成できます。

・ダイアグラム Box内に子のPythonBoxを持つことができるBox
・タイムライン ロボットの動作を設定できるBox
・Pythonスクリプト Pythonスクリプトを設定できるBox
・ダイアログ qichatで書かれたtopファイルを実行するBox

作成したPythonBoxの中身は以下のようになっています。 ※コメントアウトされている行はいらないので削除してます。


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

    def onLoad(self):
        pass

    def onUnload(self):
        pass

    def onInput_onStart(self):
        pass

    def onInput_onStop(self):
        self.onUnload()
        self.onStopped()

Behaviorが実行されると GeneratedClassを継承しているBoxのinitが実行されます。

他のメソッドは下記のタイミングで実行されます。

・onLoad
親ボックスのonStartが実行された時
・onUnload
親ボックスのonStopが実行された時
・onInput_onStart
自身のボックスのonStartから信号が入力された時
・onInput_onStop
自身のボックスのonStopから信号が入力された時

上記以外にも明示的に self.onInput_onStart()
と呼ぶと実行されますが、 initで信号出力しようとするとBehaviorの実行時にエラーが出ます。
PythonBoxの入出力は追加することができます。

2

このようにInputやOutputを増やすことで、 1つのBoxに複数の機能を持たせることができます。

Start, Stop入出力以外にもEvent属性の入出力を作成することができます。

3

コメントを残す

メールアドレスが公開されることはありません。