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')
import PiBot
import sys, time
sys.path.insert(0, '/usr/local/lib/python2.7')
sys.path.insert(0, '/opt/jderobot/lib/python2.7')
import PiBot
In [ ]:
# Creamos el objeto robot
robot = PiBot.dameRobot()
while True:
(coordenadas, area) = robot.dameObjeto()
print (robot.dameObjeto())
print (area)
if coordenadas != None:
x = coordenadas[0]
if (x < 320):
robot.girarIzquierda (0.4)
elif (x > 320):
robot.girarDerecha (0.4)
if (area < 700):
robot.avanzar (0.6)
elif (area > 700):
robot.retroceder (0.6)
else:
robot.girarDerecha(0.7)
time.sleep(0.1)