Leçon SIX pour débutant
Correction de l’exercice de la leçon numéro 5
Dans le programme principal (inmoov.py) , il fallait ajouter
ear.addCommand(“action “, “python”, “action”)
Et voici un exemple de sous programme à créer un peu plus pas
def action():
tetedroite()
sleep(2)
tetegauche()
sleep(2)
biceps()
sleep(2)
compte123()
sleep(2)
bras()
sleep(2)
fermelamain()
yeux()
Effectivement une procédure peut appeler d’autres procédures, ici tetedroite , tetegauche , etc……
Evidement le nom des procédures dépends de se que vous avez crée
MAINTENANT On se dit si je continue comme cela mon programme va faire 50000 lignes et il va devenir une usine à gaz.
On va donc simplifier tout cela.
Notre ami Anthony a prévu un répertoire de travail.
……/InmoovScript/inmoovGestures/
Créer un fichier geste.py et un autre ordre.py
Vous avez compris que dans le premier nous aurons les scénarios des gestes et dans l’autre les ordres vocales
Exemple du contenu du fichier ordre.py
# commande vocales
ear.addCommand("ouvre", "python", "fingeropen")
ear.addCommand("ferme", "python", "fingerclose")
ear.addCommand("milieu", "python", "fingermiddle")
ear.addCommand("compte", "python", "compte123")
ear.addCommand("droite", "python", "tetedroite")
ear.addCommand("gauche", "python", "tetegauche")
ear.addCommand("regarde", "python", "yeux")
ear.addCommand("bras", "python", "bras")
ear.addCommand("biceps", "python", "biceps")
ear.addCommand("action", "python", "action")
ear.addCommand("regarde le ciel", "python", "ciel")
ear.addCommand("bonjour", "python", "bonjour")
Exemple du contenu du fichier ordre.py
def ciel():
i01.head.attach()
i01.setHeadSpeed(0.6, 0.6)
i01.head.neck.moveTo(180)
sleep(3)
talkBlocking("whaaaaaaa.. toutes ses aitoiles")
i01.head.detach()
def bras():
i01.leftArm.attach()
i01.setArmSpeed("left", 0.80, 0.80, 0.80, 0.85)
# parametres biceps , rotate, bras ,omoplate
talkBlocking("je tourne mon bras")
sleep(5)
i01.moveArm("left",30,100,180,0)
sleep(5)
talkBlocking("je leve mon bras")
sleep(5)
i01.moveArm("left",60,90,160,0)
sleep(5)
# position initiale
talkBlocking("je decend mon bras et le tourne")
sleep(3)
i01.moveArm("left",0,75,180,0)
sleep(2)
i01.leftArm.detach()
def biceps():
i01.leftArm.attach()
talkBlocking("je leve mon biceps")
sleep(5)
i01.moveArm("left",85,75,180,0)
sleep(2)
i01.leftArm.detach()
def action():
tetedroite()
sleep(2)
tetegauche()
sleep(2)
biceps()
sleep(2)
compte123()
sleep(2)
bras()
sleep(2)
fingerclose()
yeux()
ETC………………je liste pas tous les sous programmes
MAINTENANT comment MRL va faire pour chainer tout cela
Bien dans le fichier inmoov.py nous aurons seulement les commandes principale de lancement plus l’execution de nos programme grâce a la commande execfile
Exemple :
version='0.2.2'
mrlCompatible='1930'
webgui = Runtime.create("WebGui","WebGui")
webgui.autoStartBrowser(False)
webgui.startService()
# Then start the browsers and show the WebkitSpeechRecognition service named i01.ear
webgui.startBrowser("http://localhost:8888/#/service/i01.ear")
# Main inmoov service declaration
i01 = Runtime.createAndStart("i01", "InMoov")
##############
# robot checkup and initialisation ( skeleton & services)
RuningFolder="InmoovScript"
execfile(RuningFolder+'/system/InitCheckup.py')
#Allez plus loin! Et codez votre propre script dans un fichier séparé
execfile(RuningFolder+'inmoovCustom/ordre.py')
execfile(RuningFolder+'inmoovCustom/gestes.py')
Relancer votre Inmoov normalement tout doit marcher comme avant.
Au prochain tuto nous apprendrons a nous servir des instructions conditionnelles.
Attachments:
You must be
logged in to view attached files.