[PYTHON] Erleben Sie den Traum, den Sie verpasst haben, noch einmal! (Beschränkt jedoch auf Pfeffer)

Ursprung

Die goldene Woche ist vorbei. Als ich zum ersten Mal seit langer Zeit wieder zur Arbeit kam, war Pepper enttäuscht und lehnte ab und bewegte sich nicht. Pepper, der seine Abwesenheit behielt, lief schließlich aus und ging mit Patrasche. Es gibt so etwas nicht, ich habe den Strom einfach nicht eingeschaltet, aber Leute, die als schlechte Dinge behandelt wurden, wie den Kopf zu schlagen, wenn es mitten in der Entwicklung einen Fehler gab, und das Bein zu treten, wenn sie plötzlich reagierten Das Typobjekt hat möglicherweise das Gefühl, eine stille Anziehungskraft zu haben.

Und mir wurde klar, als ich versuchte, die Aufgabe zu erfüllen, von Pfeffer zu träumen, was zu einer täglichen Routine geworden ist.

Oh, was für einen Traum hatte Pepper während der Goldenen Woche?

Experiment

Verbinde dich mit Python und finde heraus, was Peppers Traum ist.

$python >>> from naoqi import ALProxy >>> bahav = ALProxy("ALBehavoirManager", "192.168.10.10", 9559) >>> behavList = [b for b in behav.getInstalledBehaviors() if 'pepper-dream365' in b] >>> behavList ['sbr_00160_pepper-dream365_044/0427', 'sbr_00160_pepper-dream365_044/0428', 'sbr_00160_pepper-dream365_044/0429', 'sbr_00160_pepper-dream365_044/0430', 'sbr_00160_pepper-dream365_044/0501', 'sbr_00160_pepper-dream365_044/0502', 'sbr_00160_pepper-dream365_044/0503', 'sbr_00160_pepper-dream365_045/0504', 'sbr_00160_pepper-dream365_045/0505', 'sbr_00160_pepper-dream365_045/0506', 'sbr_00160_pepper-dream365_045/0507', 'sbr_00160_pepper-dream365_045/0508', 'sbr_00160_pepper-dream365_045/0509', 'sbr_00160_pepper-dream365_045/0510', 'sbr_00160_pepper-dream365_046/0511', 'sbr_00160_pepper-dream365_046/0512', 'sbr_00160_pepper-dream365_046/0513', 'sbr_00160_pepper-dream365_046/0514', 'sbr_00160_pepper-dream365_046/0515', 'sbr_00160_pepper-dream365_046/0516', 'sbr_00160_pepper-dream365_046/0517', 'sbr_00160_pepper-dream365_047/0518', 'sbr_00160_pepper-dream365_047/0519', 'sbr_00160_pepper-dream365_047/0520', 'sbr_00160_pepper-dream365_047/0521', 'sbr_00160_pepper-dream365_047/0522', 'sbr_00160_pepper-dream365_047/0523', 'sbr_00160_pepper-dream365_047/0524', 'sbr_00160_pepper-dream365_048/0525', 'sbr_00160_pepper-dream365_048/0526', 'sbr_00160_pepper-dream365_048/0527', 'sbr_00160_pepper-dream365_048/0528', 'sbr_00160_pepper-dream365_048/0529', 'sbr_00160_pepper-dream365_048/0530', 'sbr_00160_pepper-dream365_048/0531']

Da der Verhaltensname ein Datum ist, können Sie den Traum vom angegebenen Datum möglicherweise ausführen, indem Sie die letzten 4 Zeichen auswählen.

Quelle

Ich musste autonom ausschalten und den Eingabemodus auf 2 ändern, bevor ich ihn ordnungsgemäß ausführen konnte.

itsudemo_yumewo.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from naoqi import ALProxy

if (len(sys.argv) < 2):
    print "Usage: 'python itsudemo_yumewo.py IP [PORT]'"
    sys.exit(1)

IP = sys.argv[1]
PORT = 9559
if (len(sys.argv) > 2):
    PORT = sys.argv[2]

try:
    behav = ALProxy("ALBehaviorManager", IP, PORT)
except Exception,e:
    print "Could not create proxy to ALBehaviorManager"
    print "Error was: ",e
    sys.exit(1)

try:
    tts = ALProxy("ALTextToSpeech", IP, PORT)
except Exception,e:
    print "Could not create proxy to ALTextToSpeech"
    print "Error was: ",e
    sys.exit(1)

try:
    autonomous = ALProxy("ALAutonomousLife", IP, PORT)
except Exception,e:
    print "Could not create proxy to ALAutonomousLife"
    print "Error was: ",e
    sys.exit(1)

try:
    motion = ALProxy("ALMotion", IP, PORT)
except Exception,e:
    print "Could not create proxy to ALMotion"
    print "Error was: ",e
    sys.exit(1)

#Holen Sie sich einen Traumverhaltenspass
behavList = [b for b in behav.getInstalledBehaviors() if '_pepper-dream365_' in b]
# behavMaps[month][date]Ersetzen mit
behavMaps = {}

for b in behavList:
	month = b[-4:-2]
	date = b[-2:]
	if month not in behavMaps:
		behavMaps[month] = {}
	behavMaps[month][date] = b

#Träume von einem bestimmten Datum
def seeDream(month, date):
    print 'This is a %s/%s\'s dream' % (month, date)
    
    behav.runBehavior(behavMaps[month][date])

#Wählen Sie ein Datum
def selectDream():
    print "Which month?"
    print behavMaps.keys()
    
    input_month = raw_input('>>> ')
    if input_month in behavMaps:
        print "What's the date?"
        print behavMaps[input_month].keys()
        input_date = raw_input('>>> ')
        if input_date in behavMaps[input_month]:
            seeDream(input_month, input_date)
    next()

#Ob noch zu sehen
def next():
    input = raw_input('more?[Y/n]>>> ')
    if input != 'n':
        selectDream()

#Vorbehandlung (schaltet autonom aus)
autonomous.setState('disabled')
motion.wakeUp()
tts.setParameter("inputMode", 2)

#Traumauswahl
selectDream()

#Aufräumen (Autonomous neu starten)
tts.setParameter("inputMode", 3)
autonomous.setState('solitary')

Wie benutzt man

Geben Sie den Monat und das Datum in der Befehlszeile zweistellig an. Wenn Sie mehr bekommen, drücken Sie Y, um fortzufahren und die Träume des anderen Tages zu verwirklichen. Drücken Sie zum Beenden n.

$ python itsudemo_yumewo.py 192.168.10.10 Which month? ['04', '05'] >>> 04 What's the date? ['27', '28', '29', '30'] >>> 29 This is a 04/29's dream more?[Y/n]>>> Which month? ['04', '05'] >>> 05 What's the date? ['30', '02', '03', '26', '01', '06', '07', '04', '05', '08', '09', '28', '29', '14', '24', '25', '27', '20', '21', '11', '10', '13', '12', '15', '22', '17', '16', '19', '18', '31', '23'] >>> 01 This is a 05/01's dream more?[Y/n]>>> n

Nachtrag

Anders als Pepper denke ich, dass jemand anderes als ich es vorbereiten wird, also warten Sie geduldig auf einen großartigen Hack. Seit ich dieses Skript erstellt habe, dachte ich, es wäre in Ordnung, die Traum-App zusammenzustellen, aber in einer einsamen Situation, in der Pepper nicht so involviert ist. Es ist auch eine Idee, dass es bequem sein wird.

Recommended Posts

Erleben Sie den Traum, den Sie verpasst haben, noch einmal! (Beschränkt jedoch auf Pfeffer)
Bitten Sie NAO (Pfeffer), Ihnen das Wetter mitzuteilen
Sie, die das Protokoll ausmalen, um es besser sehen zu können
[Pfeffer] Wie benutzt man es?
Wenn es schwierig ist, das zu kopieren, was Sie mit vue erstellt haben
Wie einfach ist es, ein Medikament auf dem Markt zu synthetisieren?
Wenn Sie es so verwenden möchten, wie es ist, wenn Sie es mit Lambda-Memo verwenden
Ist es möglich, die Profilinformationen der Person aus dem Chat-Protokoll zu extrahieren?
Wenn Sie nicht wissen, wie Sie das gewünschte Diagramm mit matplotlib zeichnen sollen, können Sie sich die Galerie bequem ansehen