[PYTHON] [AWS / Tello] J'ai essayé de faire fonctionner le drone avec ma voix Part2

introduction

Cet article Système d'avis d'évacuation à l'aide d'un drone Ceci est le troisième chapitre de. Veuillez vous y référer pour le contexte de production.

De plus, le contenu de ce chapitre est basé sur le contenu suivant, donc si vous ne l'avez pas encore lu, veuillez d'abord le lire. Chapitre 1 [AWS / Tello] Création d'un système d'exploitation de drones sur le cloud Chapitre 2 [AWS / Tello] J'ai essayé de faire fonctionner le drone avec la voix Part1

Configuration du système

system.png

Lambda

J'écrirai le code de lambda. Cependant, j'ai écrit le formulaire rempli, donc je le posterai. La documentation du kit SDK Alexa Skills pour Python était déroutante et j'ai eu du mal à écrire du code lol https://github.com/shoda888/alexa2tello/blob/master/lambda_function.py Il peut y avoir un code redondant, alors veuillez PR à ce moment-là!

Extrait et explication

session_attributes: Variables qui peuvent être conservées pendant la session Cette fois, le nom du slot est conservé. Cette fois, j'essaie de poser à nouveau la question de la personne qui n'a dit qu'un seul des endroits où la distance et la direction devraient être entrées comme un ensemble. A ce moment, il est nécessaire de mémoriser les éléments déjà mentionnés pendant une courte période pendant la session, et session_attributes est utilisé pour cela. (Je voulais réinitialiser session_attributes sur les lignes 126-128, mais je ne savais pas comment le réinitialiser, donc j'ai forcé None. Si vous savez comment le réinitialiser facilement: priez :)

session_attr = handler_input.attributes_manager.session_attributes
slots = handler_input.request_envelope.request.intent.slots

resolutions: Résolution d'entité (← le nom seul n'est pas précis) Si vous avez défini les synonymes de la valeur de l'emplacement, vous souhaiterez peut-être qu'ils soient reconnus comme un ID de groupe unique. Par exemple, si vous enregistrez les synonymes «monter» et «monter» pour la valeur de l'emplacement «up» et que vous enregistrez «up» comme ID de groupe, même si vous dites «monter», «monter» Même si vous dites ", il peut être reconnu comme ID" up ". En d'autres termes, lors de l'envoi en tant que commande au drone, il peut être incorporé afin que "up" puisse être envoyé indépendamment du fait que vous disiez "up" ou "rise".

direction = slots["direction"].resolutions.resolutions_per_authority[0].values[0].value.name

Communication avec IoT Core

iot = boto3.client('iot-data')
def publish(msg):
    #Spécifiez un sujet
    topic = 'test/pub'
    #Contenu du message
    payload = {
        "message": msg
    }  

    try:
        #Publier le message
        iot.publish(
            topic=topic,
            qos=0,
            payload=json.dumps(payload, ensure_ascii=False)
        )
        return True
    
    except Exception as e:
        print(e)
        return False

c'est tout! À propos, veuillez spécifier le rôle auquel la stratégie qui permet la publication sur IoT Core est attachée à lambda. (Sinon, vous ne pouvez pas communiquer) Le code de l'abonné pourra communiquer avec le drone en se référant au contenu du chapitre précédent et du chapitre précédent.

Résumé

Voyons le formulaire rempli dans la vidéo. IMAGE ALT TEXT HERE

Dans le chapitre suivant, construisons un système qui évalue quelque chose à partir de l'image et contrôle le retour d'information vers le drone. "Construction d'un système qui estime et notifie l'état à partir d'informations telles que la posture de la personne dont l'image a été analysée"

Recommended Posts

[AWS / Tello] J'ai essayé de faire fonctionner le drone avec ma voix Part2
[AWS / Tello] J'ai essayé de faire fonctionner le drone avec ma voix Part1
J'ai essayé d'exécuter la partie DNN d'OpenPose avec le processeur Chainer
J'ai essayé d'implémenter DeepPose avec PyTorch PartⅡ
J'ai essayé de jouer avec l'image avec Pillow
J'ai essayé un petit vol en formation de drone Tello avec ESP32: Vol en formation de drone DJI Tello
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé de "différencier" l'image avec Python + OpenCV
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé de "binariser" l'image avec Python + OpenCV
J'ai essayé de connecter AWS Lambda à d'autres services
J'ai essayé de jouer avec la calculatrice avec tkinter
[Introduction à AWS] J'ai essayé de porter une application de conversation et de jouer avec text2speech @ AWS ♪
J'ai essayé d'entraîner la fonction péché avec chainer
J'ai fait une analyse émotionnelle d'Amazon Comprehend avec l'AWS CLI.
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de résoudre Soma Cube avec python
[MQTT] J'ai essayé de parler avec un appareil utilisant AWS IoT Core et Soracom Beam.
J'ai essayé AWS CDK!
J'ai essayé d'effacer la partie négative de Meros
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé AWS Iot
[Introduction à AWS] J'ai essayé de jouer avec la conversion voix-texte ♪
J'ai essayé de classer les voix des acteurs de la voix
J'ai essayé de frapper l'API avec le client python d'echonest
Je voulais utiliser la feuille de calcul Google avec AWS lambda, alors je l'ai essayé [Partie 2]
J'ai essayé de visualiser la consommation électrique de ma maison avec Nature Remo E lite
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé la "correction gamma" de l'image avec Python + OpenCV
J'ai essayé de simuler la propagation de l'infection avec Python
J'ai essayé d'analyser les émotions de tout le roman "Weather Child" ☔️
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai essayé de notifier les informations de retard de train avec LINE Notify
J'ai essayé de remplacer le disque dur Windows 10 par un SSD plus petit
J'ai essayé de sauvegarder l'historique des demandes d'API DRF avec django-request
J'ai essayé de lancer le cluster ipython au minimum sur AWS
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
J'ai essayé Learning-to-Rank avec Elasticsearch!
J'ai essayé le clustering avec PyCaret
J'ai essayé la bibliothèque changefinder!
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
J'ai essayé d'utiliser AWS Chalice
J'ai essayé de savoir comment rationaliser le flux de travail avec Excel × Python, mon résumé d'article ★
J'ai essayé de déverrouiller l'entrée 2 lock sésame d'une simple pression sur le bouton AWS IoT
J'ai essayé de gratter le classement du calendrier de l'avent Qiita avec Python
J'ai essayé de décrire le trafic en temps réel avec WebSocket
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
J'ai essayé le déploiement autonome de play avec fabric [opération AWS avec boto] [déploiement de lecture]
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
J'ai essayé la validation croisée basée sur le résultat de la recherche de grille avec scikit-learn
J'ai essayé de traiter l'image en "style croquis" avec OpenCV
J'ai étudié avec Kaggle Start Book basé sur kaggle [Partie 1]
Lorsque j'exécute le fichier exe avec pyinstaller, mon PC se bloque.
J'ai essayé de démarrer avec Bitcoin Systre le week-end
J'ai essayé d'utiliser PyEZ et JSNAPy. Partie 4: Automatisez la configuration du FAI avec PyEZ et JSNAPy