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
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à!
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
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.
Voyons le formulaire rempli dans la vidéo.
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"