[PYTHON] Prenez une photo avec Pepper et affichez-la sur l'écran du coffre -Chorégraphe 2.5.5

Prenez une photo avec l'appareil photo de Pepper Étapes pour afficher les photos prises sur l'écran de la poitrine de Pepper


1. Prenez une photo

1-1. Placez la case Prendre une photo

Sening > Vision > Camera Actions > Take Picture スクリーンショット 2019-12-25 21.59.11.png

1-2. Créez un dossier html

Explorer pour Windows Dans Finder pour Mac Ouvrez le dossier de l'application que vous créez actuellement.

Créez un nouveau dossier html directement sous le dossier de l'application. Préparez également un fichier factice dans le dossier html car tout va bien.

Revenir au chorégraphe et lorsque la boîte de dialogue ci-dessous s'affiche Sélectionnez "Oui à tous". スクリーンショット 2019-12-28 22.09.12.png

1-3. Enregistrez les photos que vous avez prises dans le dossier html

Double-cliquez sur la case Prendre une photo placée dans 1-1. Pour ajouter le code.


    def onLoad(self):
        self.bIsRunning = False
        try:
            self.photoCapture = ALProxy( "ALPhotoCapture" )
            #Ajouter à partir d'ici
            self.framemanager = ALProxy("ALFrameManager")
            #Ajouter ici
    def onInput_onStart(self):
        #Ajouter à partir d'ici
        import os
        self.recordFolder = os.path.join(
                self.framemanager.getBehaviorPath(self.behaviorId), "../html")
        #Ajouter ici
        if( self.bIsRunning ):
            return

avec ça Avant le changement: (répertoire personnel) / enregistrements / caméras / ↓ Après modification: (Répertoire d'application en cours d'exécution) / html / Ce sera.

1-4. Vérifiez le nom de fichier de la photo

Ouvrez les paramètres de la zone Prendre une photo Vérifiez le "Nom du fichier". スクリーンショット 2019-12-25 22.33.50.png

Vous pouvez voir qu'il est enregistré sous (répertoire de l'application en cours d'exécution) / html / image (.jpg).


2. Montrez la photo sur l'écran du coffre

2-1. Placer la zone Afficher l'image

Multimedia > Tablet > Show Image スクリーンショット 2019-12-28 22.16.55.png

2-2. Spécifiez le nom du fichier

Ouvrez les paramètres de la zone Afficher l'image Entrez le nom du fichier photo avec une extension dans "URL de l'image". スクリーンショット 2019-12-28 22.18.50.png


3. Contrôle de fonctionnement

Exécutez l'application dans Pepper et assurez-vous que vous pouvez prendre des photos et l'afficher.


4. Assurez-vous que l'image est mise à jour même si vous exécutez l'application plusieurs fois

4-1. Ajouter des paramètres de requête à l'URL de l'image

Double-cliquez sur la case Afficher l'image placée en 2-1 et ajoutez le code à deux endroits.


    def onInput_onStart(self):
        #Code supplémentaire:d'ici
        import time
        #Code supplémentaire:Jusque là
        # We create TabletService here in order to avoid
        # problems with connections and disconnections of the tablet during the life of the application
        tabletService = self._getTabletService()
        if tabletService:
            try:
                url = self.getParameter("ImageUrl")
                if url == '':
                    self.logger.error("URL of the image is empty")
                if not url.startswith('http'):
                    url = self._getAbsoluteUrl(url)
                #Code supplémentaire:d'ici
                url += "?" + str(time.time())
                #Code supplémentaire:Jusque là
                tabletService.showImage(url)
            except Exception as err:
                self.logger.error("Error during ShowImage : %s " % err)
                self.onStopped()
        else:
            self.logger.warning("No ALTabletService, can't display the image.")
            self.onStopped()

4-2. Contrôle de fonctionnement

Essayez d'exécuter l'application plusieurs fois et voyez si la photo se met à jour correctement.


Bonus 1: Affichez l'image et passez au processus suivant

*** (Attention) Afficher la boîte d'image (si le processus d'affichage d'image est réussi) ʻOnStopped` La sortie ne se déclenche pas. *** ***

Par conséquent, la méthode pour se connecter facilement au processus suivant est celle illustrée dans la figure ci-dessous. スクリーンショット 2019-12-28 23.03.24.png


Bonus 2: Masquer l'image

Si vous souhaitez effacer l'image de l'écran Déclenche l'entrée ʻonHideImage` dans la zone Afficher l'image. スクリーンショット 2019-12-28 23.14.26.png


Ci-dessus: vulcan_tone1: Il existe peut-être une manière plus intelligente d'écrire Je ne peux pas vérifier l'opération, donc pour le moment: baby_tone1:

Référence: Prendre une image avec Pepper et l'afficher sur une tablette

Recommended Posts

Prenez une photo avec Pepper et affichez-la sur l'écran du coffre -Chorégraphe 2.5.5
Prenez une image avec Pepper et affichez-la sur votre tablette
Faites de votre curseur une photo de votre choix sous Linux