Grundlegendes zur Python for Pepper-Entwicklung. -Einführung in Python Box-

Vorwort

Kenntnisse in Python sind für die Entwicklung von Pepper und NAO unerlässlich. Daher möchte ich kurz die Python-Box in Naoqi erklären.

Entwicklungsumgebung

Modellname: MacBook Pro OS : Yosemite 10.10.3 Prozessorname: Intel Core i5 2,6 GHz Speicher: 16 GB Grafik: Intel Iris 1536MB Choreographe : 2.3.1

Hauptthema

Python-Box

Was ist eine Python-Box?

Zunächst möchte ich die Python-Box kurz erläutern. Die Python-Box finden Sie in der Box-Bibliothek unter:

Wenn nicht, suchen Sie bitte anhand der Lupenmarkierung.

** [Programmierung] -> [Vorlage] -> Python Box **

Untitled_-Choregraphe__バーチャルロボットに接続.png

input : "onStart" "onStop" output : "onStopped"

Es ist eine Box bestehend aus.

Skript

Alle Boxen in Choreographe werden grundsätzlich basierend auf der folgenden Konfiguration erstellt. Das Skript sieht folgendermaßen aus:

#Sie können sehen, dass die abgeleitete Klasse von GeneratedClass MyClass ist.
class MyClass(GeneratedClass):
	#Das erste, was aufgerufen wird, wenn das Verhalten geladen wird__init__(self)ist.
    def __init__(self):
        #Generierte Klasse__init__(self)Sie können sehen, dass es überschreibt.
        GeneratedClass.__init__(self)
        #Lassen Sie uns hier sagen, was heißt, wenn das Verhalten geladen wird.

    def onLoad(self):
        #put initialization code here
        #Lassen Sie uns hier den Initialisierungsprozess einfügen.
        #Wird aufgerufen, nachdem das Verhalten geladen und alle Init aufgerufen wurden.
        pass

    def onUnload(self):
        #put clean-up code here
        #OnInput am Ende der Anwendung_Wird aufgerufen, wenn eine Eingabe für onStop vorliegt.
        pass

    def onInput_onStart(self):
        #self.onStopped() #activate the output of the box
        #Wird aufgerufen, wenn in onStart eine Eingabe erfolgt.
        #self.onStopped()Bitte beachten Sie, dass die Ausgabe nur erfolgt, wenn dies beschrieben wird.
        pass

    def onInput_onStop(self):
    	 #Wird aufgerufen, wenn eine Eingabe für onStop vorliegt.
        self.onUnload() #it is recommended to reuse the clean-up as the box is stopped
        self.onStopped() #activate the output of the box

Überprüfung

Überprüfen Sie, wie die Python-Box aufgerufen wird. Ich habe Logger in jede Funktion eingefügt und die Ausführungsreihenfolge überprüft.

  1. Ich habe die nicht verbundenen Boxen angeordnet. スクリーンショット 2015-07-17 15.44.12.png

[INFO] init 0 [INFO] init 1 [INFO] init 2 [INFO] init 3 [INFO] onLoad 0 [INFO] onLoad 1 [INFO] onLoad 2 [INFO] onLoad 3 #Doppelklicken Sie hier auf root onStop [INFO] onUnload 0 [INFO] onUnload 1 [INFO] onUnload 2 [INFO] onUnload 3 ``` Sie können sehen, dass init und onLoad aufgerufen werden. Danach wird onUnload der Reihe nach aufgerufen und endet. 2. Ich habe versucht, mich in Reihe zu verbinden. Screenshot 2015-07-17 15.54.44.png

```

[INFO] init 0 [INFO] init 1 [INFO] init 2 [INFO] init 3 [INFO] onLoad 0 [INFO] onLoad 1 [INFO] onLoad 2 [INFO] onLoad 3 [INFO] onInput_onStart 0 ``` Wie ich oben geschrieben habe, wird keine Ausgabe durchgeführt, wenn Sie der Methode "onInput_onStart" nicht self.onStopped () hinzufügen. Lassen Sie uns als nächstes mit dem mit self.onStopped () überprüfen. 3.2 mit self.onStopped () in 2. Self.onStopped () zur Methode "onInput_onStart" hinzugefügt.

```

[INFO] init 0 [INFO] init 1 [INFO] init 2 [INFO] init 3 [INFO] onLoad 0 [INFO] onLoad 1 [INFO] onLoad 2 [INFO] onLoad 3 [INFO] onInput_onStart 0 [INFO] onInput_onStart 1 [INFO] onInput_onStart 2 [INFO] onInput_onStart 3 [INFO] onUnload 0 [INFO] onUnload 1 [INFO] onUnload 2 [INFO] onUnload 3 ``` Es wurde bis zum Ende korrekt ausgegeben. 4. Ich habe das Skript so belassen, wie es war, und es mit ☓ verbunden. Screenshot 2015-07-17 16.05.47.png

```

[INFO] init 0 [INFO] init 1 [INFO] init 2 [INFO] init 3 [INFO] onLoad 0 [INFO] onLoad 1 [INFO] onLoad 2 [INFO] onLoad 3 [INFO] onInput_onStop 0 [INFO] onUnload 0 [INFO] onInput_onStop 1 [INFO] onUnload 1 [INFO] onInput_onStop 2 [INFO] onUnload 2 #Beachtung [INFO] onUnload 3 [INFO] onInput_onStop 3 [INFO] onUnload 0 [INFO] onUnload 1 [INFO] onUnload 2 [INFO] onUnload 3 ``` Ich habe es gerade als Aufmerksamkeit beschrieben, aber Sie können sehen, dass die Reihenfolge von onInput_onStop und onUnload umgekehrt und aufgerufen wird. Ich habe es mehrmals wiederholt, aber ich weiß nicht, ob die Schreibreihenfolge umgekehrt oder die Anrufreihenfolge umgekehrt ist, aber manchmal funktioniert es in der richtigen Reihenfolge, z. B. 0 ~ 2 und 3 Es kann wie im Fall von umgekehrt werden. ** Die Ursache ist unbekannt. ** Es kann ein Fehler in Choreographe sein.

Beachten Sie auch, dass onUnload zweimal aufgerufen wird. Es wird zweimal aufgerufen, wenn Sie in ☓ eingeben und wenn das Verhalten endet.

Impressionen

Als Fortsetzung des Artikels möchte ich schreiben, wie ich meine eigenen Funktionen und externe Bibliotheken verwende.

Recommended Posts

Grundlegendes zur Python for Pepper-Entwicklung. -Einführung in Python Box-
Grundlegendes zur Python for Pepper-Entwicklung. -Python Box selbst erstellte Funktions Edition-
Einführung in Python For, While
Erste Schritte mit Python für Nicht-Ingenieure
Eine Einführung in Python für maschinelles Lernen
Eine Einführung in Python für C-Sprachprogrammierer
Einführung in Python Bereiten wir die Entwicklungsumgebung vor
Einführung in die Python-Sprache
Einführung in OpenCV (Python) - (2)
[Einführung in die Udemy Python3 + -Anwendung] 43. for else-Anweisung
Einführung in die Programmierung (Python) TA Tendenz für Anfänger
Aufbau der Python-Entwicklungsumgebung 2020 [Von der Python-Installation bis zur Einführung in die Poesie]
Versuchen Sie, Python selbst zu verstehen
Einführung in die serielle Kommunikation [Python]
[Einführung in Python] <Liste> [Bearbeiten: 22.02.2020]
[Zum Organisieren] Python-Entwicklungsumgebung
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
[Einführung in die Udemy Python3 + -Anwendung] 42. für Anweisung, break-Anweisung und continue-Anweisung
Einführung in Python, die auch Affen verstehen können (Teil 3)
Einführung in Python für VBA-Benutzer - Aufrufen von Python aus Excel mit xlwings-
[Python] Einführung in die Diagrammerstellung mit Corona-Virendaten [Für Anfänger]
Einführung in Python, die auch Affen verstehen können (Teil 1)
Einführung in Python, die auch Affen verstehen können (Teil 2)
[Einführung in die Udemy Python3 + -Anwendung] 58. Lambda
[Einführung in die Udemy Python3 + -Anwendung] 31. Kommentar
Einführung in die Python Numerical Calculation Library NumPy
Eine Einführung in Mercurial für Nicht-Ingenieure
Trainieren! !! Einführung in Python Type (Type Hints)
[Einführung in Python3 Tag 1] Programmierung und Python
Machen Sie eine Tweet-Box für Pepper
[Einführung in Python] <numpy ndarray> [edit: 2020/02/22]
[Einführung in die Udemy Python3 + -Anwendung] 57. Decorator
Einführung in Python Hands On Teil 1
[Einführung in Python3 Tag 13] Kapitel 7 Zeichenfolgen (7.1-7.1.1.1)
[Einführung in Python] So analysieren Sie JSON
[Einführung in die Udemy Python3 + -Anwendung] 56. Abschluss
[Einführung in Python3 Tag 14] Kapitel 7 Zeichenfolgen (7.1.1.1 bis 7.1.1.4)
Einführung in Protobuf-c (C-Sprache ⇔ Python)
[Einführung in die Udemy Python3 + -Anwendung] 59. Generator
Optionen für die Python-Entwicklungsumgebung für Mai 2020
[Einführung in Python3 Tag 15] Kapitel 7 Zeichenfolgen (7.1.2-7.1.2.2)
[Einführung in Python] Verwenden wir Pandas
Emacs-Einstellungen für die Python-Entwicklungsumgebung
[Einführung in Python] Verwenden wir Pandas
[Einführung in die Udemy Python3 + -Anwendung] Zusammenfassung
Einführung in die Bildanalyse opencv python
[Einführung in Python] Verwenden wir Pandas
Aufzeichnung der Python-Einführung für Neulinge
Einführung in Python Django (2) Mac Edition
[AWS SAM] Einführung in die Python-Version
[Einführung in Python3 Tag 21] Kapitel 10 System (10.1 bis 10.5)
[Python Tutorial] Eine einfache Einführung in Python
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 8 Einführung in Numpy
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 10 Einführung in Cupy
[Einführung in Python3 Tag 9] Kapitel 5 Py's Cosmetic Box: Module, Pakete, Programme (5.1-5.4)
Verwendung eines externen Editors für die Python-Entwicklung mit Grasshopper
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 9 Einführung in das Scikit-Lernen
[Einführung in die Udemy Python3 + -Anwendung] 18. Listenmethode
[Einführung in die Udemy Python3 + -Anwendung] 63. Notation zur Einbeziehung des Generators
[Einführung in die Udemy Python3 + -Anwendung] 28. Kollektiver Typ
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"