[PYTHON] J'ai essayé de laisser Pepper parler des informations sur l'événement et des informations sur les membres

Lors de l'événement suivant de Basecamp Nagoya , j'ai essayé de programmer le poivre pour la première fois.

Pepper Day "Développement d'applications pour Pepper dans Basecamp Nagoya"

Ce que j'ai défié cette fois

Cette fois, quand j'ai dit "Dites-moi Pepper?", Pepper a répondu "Oui", et quand j'ai demandé "Quel est l'événement d'aujourd'hui?", Quand j'ai demandé "Quel est l'événement d'aujourd'hui?" Nous avons créé un programme qui vous donnera des informations sur les membres qui s'enregistrent au camp de base lorsque vous demandez «Qui vient?» Pour le dernier événement.

Arrangement environnemental

Tout d'abord, téléchargez l'environnement de développement Pepper à partir du site suivant. https://community.aldebaran.com/en/resources/software/language/en-gb Après le téléchargement, diverses applications seront installées. Parmi elles, lancez l'application avec la marque C comme indiqué dans la figure ci-dessous.

Méthode de programmation Pepper

En gros, vous pouvez déplacer le poivre simplement en combinant les blocs qui ont déjà été programmés, mais si vous ne pouvez pas le faire avec les blocs existants, vous devez le programmer vous-même en utilisant Python. Le schéma de câblage du programme créé cette fois est le suivant. Les blocs utilisés sont les suivants.

Dites bloquer

Bloquer pour faire parler le poivre

Bloc de reconnaissance vocale

Un bloc pour faire reconnaître la voix au poivre. En séparant les mots par; de cette manière, vous pouvez séparer les mots à reconnaître. Les mots reconnus couvrent le bloc suivant.

Bloc de boîtier de commutation

Ceci est un bloc pour le branchement conditionnel. Cette fois, les conditions sont réparties selon les mots reconnus comme suit.

Bloc d'édition de texte

Un bloc pour passer une chaîne au bloc suivant. Je veux que Pepper extrait les données JSON des informations du membre et parle, donc je spécifie le fichier JSON que je veux obtenir comme suit. À ce stade, le fichier JSON de sortie est généré du côté CMS. En d'autres termes, CMS gère tout ce que Pepper parle. Cela abaissera le seuil de programmation du poivre.

http://basecamp-nagoya.jp/*****.json

Bloc de script Python

Je n'avais pas de bloc pour accéder au serveur et extraire les données JSON, alors je l'ai fait moi-même. Voici la source. Cependant, les bibliothèques dépendantes telles que json doivent être téléchargées séparément.

import json, urllib2, sys, os, xml
 
class MyClass(GeneratedClass):
    def __init__(self):
        GeneratedClass.__init__(self)
 
    def onLoad(self):
        self.framemanager = ALProxy("ALFrameManager")
        pass
 
    def onUnload(self):
        self.framemanager = None
        pass
 
    def remove_tags(text):
        return ''.join(xml.etree.ElementTree.fromstring(text).itertext())
 
    def rest_request(self, url):
        self.folderName = os.path.join(self.framemanager.getBehaviorPath(self.behaviorId), "./lib")
        if self.folderName not in sys.path:
            sys.path.append(self.folderName)
        import requests
        try:
            r = requests.get(url)
            if r.status_code == 200 :
                return r.json();
            else:
                return False
        except:
            return False
        pass;
 
    def onInput_onStart(self, p):
        result = self.rest_request(str(p));
        output_text = "";
        i = 0;
        length = len(result);
        while i < length:
            output_text += str(result[i]['name'].encode('utf-8'))
            output_text += "\\pau=1000\\"
            output_text += str(result[i]['profile'].encode('utf-8'))
            output_text += "\\pau=3000\\"
            i += 1
        self.onStopped(output_text) 
        pass
 
    def onInput_onStop(self):
        self.onUnload() 
        self.onStopped() 
 
    def import_service(self):
        pass

Emballage du programme

Une fois le programme terminé, vous pouvez empaqueter le programme créé et l'installer sur pepper en sélectionnant Application Robot dans le panneau inférieur droit et en cliquant sur l'icône en haut à gauche comme indiqué ci-dessous.

Impressions

Non. était amusant. Habituellement, tout tourne autour de la réception du Web, alors c'est parfois amusant de programmer des robots.

Recommended Posts

J'ai essayé de laisser Pepper parler des informations sur l'événement et des informations sur les membres
J'ai essayé d'obtenir les informations du Web en utilisant "Requests" et "lxml"
J'ai essayé de m'organiser à propos de MCMC.
J'ai essayé de laisser optuna résoudre le nombre
J'ai essayé de laisser VAE apprendre les animations
[Introduction au PID] J'ai essayé de contrôler et de jouer ♬
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2 2
J'ai essayé d'implémenter et d'apprendre DCGAN avec PyTorch
J'ai essayé d'ajouter un post-incrément à CPython. Présentation et résumé
J'ai essayé de lire et d'enregistrer automatiquement avec VOICEROID2
J'ai essayé d'ajouter des appels système et des planificateurs à Linux
J'ai essayé de déboguer.
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé d'implémenter Grad-CAM avec keras et tensorflow
J'ai essayé d'installer scrapy sur Anaconda et je n'ai pas pu
J'ai essayé de développer une application Web et j'ai réfléchi à la manière d'éviter que les débutants ne tombent malades.
J'ai essayé de prédire et de soumettre les survivants du Titanic avec Kaggle
J'ai essayé de découvrir les grandes lignes de Big Gorilla
J'ai essayé d'obtenir les informations de localisation du bus Odakyu
J'ai essayé de combiner Discord Bot et la reconnaissance faciale-pour LT-
J'ai essayé de notifier les informations de retard de train avec LINE Notify
J'ai essayé les champignons Pepper x IBM Bluemix Text to Speech
J'ai essayé d'illustrer le temps et le temps du langage C
[Python] J'ai essayé de visualiser des tweets sur Corona avec WordCloud
Je voulais m'inquiéter du temps d'exécution et de l'utilisation de la mémoire
J'ai essayé d'afficher l'heure et la météo d'aujourd'hui w
[Introduction au modèle de maladie infectieuse] J'ai essayé de m'adapter et de jouer
J'ai essayé d'énumérer les différences entre java et python
J'ai essayé de créer un bot pour annoncer un événement Wiire
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
J'ai essayé d'obtenir diverses informations de l'API codeforces
J'ai essayé d'organiser SVM.
J'ai essayé d'implémenter PCANet
J'ai essayé de réintroduire Linux
J'ai essayé de présenter Pylint
J'ai essayé de résumer SparseMatrix
jupyter je l'ai touché
J'ai essayé d'implémenter StarGAN (1)
J'ai essayé de faire une activité qui définit collectivement les informations de position
J'ai essayé de visualiser les signets volant vers Slack avec Doc2Vec et PCA
J'ai essayé de faire un processus d'exécution périodique avec Selenium et Python
J'ai essayé de créer des taureaux et des vaches avec un programme shell
J'ai essayé de détecter facilement les points de repère du visage avec python et dlib
J'ai essayé d'extraire des noms de joueurs et de compétences d'articles sportifs
[Python] J'ai essayé d'obtenir diverses informations en utilisant l'API de données YouTube!
Quand j'ai essayé d'écrire sur la régression logistique, j'ai fini par trouver la moyenne et la variance de la distribution logistique.
J'ai essayé de créer l'API Quip
J'ai essayé de toucher Python (installation)
J'ai essayé de mettre en place une validation contradictoire
J'ai essayé d'expliquer l'ensemble de données de Pytorch
J'ai essayé l'authentification vocale Watson (Speech to Text)
J'ai touché l'API de Tesla
J'ai essayé d'implémenter Realness GAN
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
J'ai essayé de résumer jusqu'à ce que je quitte la banque et devienne ingénieur
J'ai essayé de déplacer l'image vers le dossier spécifié en faisant un clic droit et un clic gauche
J'ai essayé de mettre en œuvre une blockchain qui fonctionne réellement avec environ 170 lignes
J'ai essayé de visualiser la tranche d'âge et la distribution des taux d'Atcoder