[PYTHON] J'ai fait une boîte pour me reposer avant que Pepper ne se fatigue

Étant donné que le moteur peut chauffer pendant la lecture continue de l'application ou lors de la création d'animation pendant le développement, le développement peut s'arrêter au milieu, j'ai donc créé une boîte qui fera une pause sans autorisation avant de me fatiguer. Si vous le mettez dans Init ou Main de l'application, même si vous obtenez de la chaleur pendant la lecture, il ne s'arrêtera pas au milieu, faites simplement une pause et essayez de donner l'impression qu'il recommencera à bouger lorsque la chaleur se refroidira.

API utilisée

ALMotionProxy

Méthode utilisée

getIdlePostureEnabled(const std::string& pChainName) setIdlePostureEnabled(const std::string& pChainName, const bool& pEnable)

variable

Comment ça fonctionne

Si vous souhaitez arrêter cette fonction en la plaçant dans le boîtier de gestion / surveillance, déclenchez un événement pour l'arrêter. スクリーンショット 2016-01-15 14.47.24.png

Example.py


    def onLoad(self):
        self.timer = None
        self.memory = ALProxy("ALMemory")
        self.motion = ALProxy("ALMotion")
        self.parts = ["Head", "LArm", "RArm", "Legs"]

    def onTimer(self):
        partList = []
        tempList = []
        partCount = { "Head":False, "LArm":False, "RArm":False, "Legs":False }
        sNameList = ["HeadPitch", "HeadYaw", "LElbowRoll", "LElbowYaw", "LHand", "LShoulderPitch", "LShoulderRoll", "LWristYaw", "RElbowRoll", "RElbowYaw", "RHand", "RShoulderPitch", "RShoulderRoll", "RWristYaw", "KneePitch", "HipRoll", "HipPitch"]

        for sName in sNameList:
            sKeyName = "Device/SubDeviceList/%s/Temperature/Sensor/Value" % sName
            try:
                partList.append(sName)
                tempList.append(int( self.memory.getData(sKeyName) ))
            except:
                self.logger.error("No temperature found for this hardware: " + str(sName))

        for pName in partList:
            if ( "Head" in pName ):
                act = "Head"
            elif ( "LElbow" in pName or "LHand" in pName or "LShoulder" in pName or "LWrist" in pName ):
                act = "LArm"
            elif ( "RElbow" in pName or "RHand" in pName or "RShoulder" in pName or "RWrist" in pName ):
                act = "RArm"
            elif ( "Ankle" in pName or "Hip" in pName or "Knee"):
                act = "Legs"

            i = tempList[partList.index(pName)]

            if i >= int(self.getParameter("Motion stop temperature(or more)")):
                if partCount[act] == False:
                   partCount[act] = True

        for part in self.parts:
            if partCount[part] and self.motion.getIdlePostureEnabled(part) == False:
                self.logger.warn("%s Motion Stopped" % part)
                self.motion.setIdlePostureEnabled(part, True)
            elif partCount[part] == False and self.motion.getIdlePostureEnabled(part):
                self.logger.info("%s Motion Start" % part)
                self.motion.setIdlePostureEnabled(part, False)

finalement

La source est sale, mais pardonnez-moi s'il vous plaît.

échantillon

[Bibliothèque de robots] de Robot Start (https://robo-lib.com/repositories/summary/49) https://robo-lib.com/repositories/summary/49

Recommended Posts

J'ai fait une boîte pour me reposer avant que Pepper ne se fatigue
J'ai fait un script pour afficher des pictogrammes
J'ai créé un outil pour compiler nativement Hy
J'ai créé un outil pour obtenir de nouveaux articles
〇✕ J'ai fait un jeu
J'ai fait une bibliothèque pour bien séparer les phrases japonaises
J'ai créé une boîte de changement de seuil pour Pepper's Dialog
J'ai fait un script pour mettre un extrait dans README.md
J'ai créé un module Python pour traduire les commentaires
J'ai créé un code pour convertir illustration2vec en modèle Keras
J'ai fait une commande pour marquer le clip de la table
J'ai créé une bibliothèque python qui fait rouler le rang
J'ai créé un package pour filtrer les séries chronologiques avec python
J'ai fait une commande pour générer un commentaire pour une table dans Django
J'ai créé un outil pour créer un nuage de mots à partir de wikipedia
J'ai fait une fonction pour vérifier le modèle de DCGAN
J'ai fait un texte Python
J'ai fait un robot discord
[Titan Craft] J'ai créé un outil pour invoquer un géant sur Minecraft
Je vous ai fait exécuter des commandes depuis un navigateur WEB
J'ai fait un script pour dire bonjour à mon Koshien
J'ai créé une bibliothèque qui lit facilement les fichiers de configuration avec Python
Une histoire sur l'ajout d'une API REST à un démon créé avec Python
J'ai créé un serveur Web avec Razpai pour regarder des anime
J'ai fait une commande pour afficher un calendrier coloré dans le terminal
J'ai créé un site d'apprentissage C ++
J'ai fait un Line-bot avec Python!
J'ai créé un script de traduction basé sur CUI (2)
Créer une boîte à Tweet pour Pepper
J'ai fait une loterie avec Python.
J'ai créé un script de traduction basé sur CUI
J'ai créé un démon avec Python
J'ai créé un conteneur Docker pour utiliser JUMAN ++, KNP, python (pour pyKNP).
J'ai créé un plugin pour générer une table Markdown à partir de csv avec Vim
[Python] J'ai fait un décorateur qui ne semble pas avoir d'utilité.
J'ai fait un générateur de mot de passe pour enseigner Python3 aux enfants (bonus) * Complètement refait
J'ai créé un outil pour parcourir automatiquement plusieurs sites avec Selenium (Python)
J'ai créé une application Web en Python qui convertit Markdown en HTML
[Django] a créé un champ pour saisir des dates avec des nombres à 4 chiffres
J'ai fait une minuterie de cuisine à afficher sur la barre d'état!
J'ai créé un outil CLI pour convertir les images de chaque répertoire en PDF
J'ai créé un programme pour vous avertir par LINE lorsque les commutateurs arrivent
J'ai créé un réseau pour convertir des images noir et blanc en images couleur (pix2pix)
J'ai créé un script en python pour convertir des fichiers .md au format Scrapbox
J'ai créé un programme pour saisir ce que j'ai mangé et afficher les calories et les sucres
J'ai créé un konoha de bibliothèque qui fait passer le tokenizer à une belle sensation
J'ai créé un outil pour convertir Jupyter py en ipynb avec VS Code
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
J'ai fait une webAPI! Construire un environnement à partir de Django Rest Framework 1 avec EC2
J'ai créé une fonction pour voir le mouvement d'un tableau à deux dimensions (Python)
J'ai essayé de créer un linebot (implémentation)
J'ai créé un nouveau compartiment AWS S3
J'ai créé un docset de tableau de bord pour Holoviews
Je veux imprimer dans la notation d'inclusion
J'ai essayé de créer un linebot (préparation)
J'ai fait Othello pour enseigner Python3 aux enfants (4)
J'ai fait un programme de gestion de la paie en Python!
J'ai touché "Orator" alors j'ai fait une note
J'ai fait un compteur de caractères avec Python