In [1]:
from poppy.creatures import PoppyErgoJr
poppy = PoppyErgoJr()
QUESTIONS
In [3]:
pos = [-20, -20, 40, -30, 40, 20]
i = 0
for m in poppy.motors:
m.compliant = False
m.goto_position(pos[i], 0.5, wait = True)
i = i + 1
In [7]:
# importation des outils nécessaires
import cv2
%matplotlib inline
import matplotlib.pyplot as plt
from hampy import detect_markers
# affichage de l'image capturée
img = poppy.camera.frame
plt.imshow(img)
# récupère dans une liste les marqueurs trouvés dans l'image
markers = detect_markers(img)
valeur = 0
for m in markers:
print('Found marker {} at {}'.format(m.id, m.center))
m.draw_contour(img)
valeur = m.id
print(valeur)
In [8]:
markers
Out[8]:
In [ ]:
import time
RIGH = 82737172
LEFT = 76697084
NEXT = 78698884
PREV = 80826986
# la variable liste_moteur permet de n'avoir à modifier
# le nom du conteneur du robot qu'une fois.
# Si on ne l'a pas instancié en tant que poppy par exemple
liste_moteur = [m for m in poppy.motors]
num_moteur = 0
#éteindre toutes les leds des moteurs
for i in range (0,6):
liste_moteur[i].led = 'pink'
# tant que le dernier moteur n'est pas atteint
while num_moteur < 6:
#capturer une image et détecter si elle comporte un marqueur
img = poppy.camera.frame
markers = detect_markers(img)
valeur = 0
for m in markers:
print 'Found marker {} at {}'.format(m.id, m.center)
m.draw_contour(img)
valeur = m.id
print(valeur)
# mettre la led du moteur courant au rouge
liste_moteur[num_moteur].led = 'red'
# effectuer l'action correspondant au marqueur détecté
if valeur == RIGH:
liste_moteur[num_moteur].led = 'green'
liste_moteur[num_moteur].goto_position(
liste_moteur[num_moteur].present_position - 5,
0.5,
wait = True)
liste_moteur[num_moteur].led = 'pink'
valeur = 0
if valeur == PREV:
if num_moteur != 0:
liste_moteur[num_moteur].led = 'pink'
num_moteur = num_moteur - 1
liste_moteur[num_moteur].led = 'red'
time.sleep(2.0)
valeur = 0
if valeur == LEFT:
liste_moteur[num_moteur].led = 'green'
liste_moteur[num_moteur].goto_position(
liste_moteur[num_moteur].present_position + 5,
0.5,
wait = True)
liste_moteur[num_moteur].led = 'pink'
valeur = 0
if valeur == NEXT:
if num_moteur != 6:
liste_moteur[num_moteur].led = 'pink'
num_moteur = num_moteur + 1
if num_moteur != 6:
liste_moteur[num_moteur].led = 'red'
time.sleep(2.0)
valeur = 0
Auteur : Georges Saliba, Lycée Victor Louis, Talence, sous licence CC BY SA
In [ ]: