Ejercicio - ¡Sigue la pelota, PiBot!.

Tabla resumen de los sensores y actuadores.

Recuerda que la función dameObjeto() retorna dos valores: el centro y el área.

Función

Descripción

 

dameObjeto()

Esta función hará todo el trabajo sucio por ti, ya que es la que se encarga de hacer el filtro de color para aislar la pelota naranja y devolverá 2 números: centro y área.

- centro: son las coordenadas (pixelX, pixelY) del centro de la pelota en la imagen.

- area: es la superficie (numero de pixeles) que ocupa la pelota dentro de la imagen.

girarIzquierda(vel)

Esta función hará que el robot sobre sí mismo hacia la izquierda a la velocidad dada como parámetro ($rad/s$).

girarDerecha(vel)

Esta función hará que el robot sobre sí mismo hacia la derecha a la velocidad dada como parámetro ($rad/s$).

avanzar(vel)

Esta función hará avanzar al robot a una velocidad dada como parámetro ($m/s$)

retroceder(vel)

Esta función hará retroceder al robot a una velocidad dada como parámetro ($m/s$).


In [ ]:

# -*- coding: utf-8 -*-
import sys, time
sys
.path.insert(0, '/usr/local/lib/python2.7')
sys
.path.insert(0, '/opt/jderobot/lib/python2.7')
from pibot.pibot import PiBot


In [ ]:

robot= PiBot() # Creamos el objeto robot
import cv2
import time 
while True: # Creamos un bucle infinito
 
   (coordenada, area)
=robot.dameObjeto()
   
print(coordenada)
   
if coordenada!= None :
       
if coordenada [0] < 0:
           robot
.girarIzquierda(0.7)
           robot
.avanzar(0.7)
           time
.sleep (0.4)
           
           
       
elif coordenada[0] >340:
           robot
.girarDerecha(0.7)
           robot
.avanzar(0.7)
           time
.sleep (0.4)
       
 
       
else:
           robot
.avanzar(0.7)
           time
.sleep (0.4)
   
else :
       robot
.girarIzquierda(0.7)
       time
.sleep(0.5)