las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la...

15
Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar objetos coloca al robot en un entorno junto con varios objetos que debe encontrar y transportar hacia un determinado lugar. Este problema es estudiado en varios trabajos basándose en el comportamiento que ciertos insectos muestran al encontrar comida y transportarla a su nido u hogar (home) [Kube1992, Kube1993, Mataric1994, Mataric1995, Mataric1997, Mataric1998, Werger1999]. También se ha estudiado por su similitud con tareas de recolección de rocas en planetas desconocidos [Brooks1989] o aplicaciones de limpieza [Parker1998, Jung1999]. Caso de estudio: recolección Gonzalo Tejera, INCO, Universidad de la República del Uruguay

Upload: chica-de-noia

Post on 23-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual.

Recolectar Objetos

La tarea de recolectar objetos coloca al robot en un entorno junto con varios objetos que debe encontrar y transportar hacia un determinado lugar. Este problema es estudiado en varios trabajos basándose en el comportamiento que ciertos insectos muestran al encontrar comida y transportarla a su nido u hogar (home) [Kube1992, Kube1993, Mataric1994, Mataric1995, Mataric1997, Mataric1998, Werger1999]. También se ha estudiado por su similitud con tareas de recolección de rocas en planetas desconocidos [Brooks1989] o aplicaciones de limpieza [Parker1998, Jung1999].

Caso de estudio: recolección

Gonzalo Tejera, INCO, Universidad de la República del Uruguay

Page 2: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

El comportamiento de recolectar objetos se implementó a partir de varios comportamientos reactivos muy simples. Estos comportamientos utilizan reglas que evalúan los sensores y

determinan la potencia de los actuadores.

El comportamiento que recolecta objetos se basa en una máquina de estados, donde el estado indica el comportamiento activo y las transiciones se indican como predicados sobre los sensores. El comportamiento activo es

elegido para interactuar con el entorno.

Page 3: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

Comportamientos simples:

IrPorComida,

ExplorarZona,

RodearHorario,

RodearAntiHorarios,

MirarAlHome,

Empujar y

EvitarObstaculos.

Los predicados:

veoAlgo,

enZonaComida,

cercaDelHome,

fueraDeRumbo,

homeALaIzquierda,

comidaLaIzquierda,

comidaLaDerecha,

miroAlHome y

perpendicularAlHome.

Page 4: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar
Page 5: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

El comportamiento recolectar objetos obtiene de los sensores la siguiente información:

valor de sensores infrarrojos del robot Khepera,

posición y dirección del robot Khepera en el mundo,

posición de los objetos (centro de la zona de recolección) y

posición del home,

y debe controlar en todo momento los dos motores del robot.

Page 6: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

Predicado veoAlgo

. ( ) _( )

true i sensoresKhepera i UMBRAL RUIDOveoAlgo sensoresKhepera

false en otro caso

Predicado enZonaComida

( , )

( ( , ) _ )

enZonaAlimento posRobot posAlimento

distancia posRobot posAlimento CERCA ALIMENTO

Predicado cercaDelHome

( , )

( ( , ) _ )

cercaDelHome posRobot posHome

distancia posRobot posHome CERCA HOME

Page 7: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

Predicado fueraDeRumbo

( , , )

( ( , , ) _ )

( ( ,

alineado puntoAlinear posRobot dirRobot

anguloEntre puntoAlinear posRobot dirRobot DIF ANGULO

anguloEntre puntoAlinear

, ) _ )posRobot dirRobot DIF ANGULO

( , , ) ( , , )fueraDeRumbo posHome posRobot dirRobot alineado posHome posRobot dirRobot

Page 8: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

darAccion(in double sensoresIR[8], out double actuadores[2])

const double pesos[2][8]begin for iterAct=0 to 1 actuadores[iterAct]=pesos[iterAct][0] for iterSens=0 to 7 do actuadores[iterAct] + = sensores[iterSens]*pesos[iterAct][iterSens] end endend

Comportamiento EvitarObstáculos

Page 9: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

darAccion(in double posRobot[2],in double dirRobot,

in posMirar, out double actuadores[2])

const double ERR_ANGULO, VEL_GIRO, VEL_DETENIDObegin if abs(anguloEntre(posMirar,posRobot,dirRobot))>ERR_ANGULO actuadores[0]=VEL_DETENIDO+VEL_GIRO actuadores[1]=VEL_DETENIDO-VEL_GIRO else actuadores[0]=VEL_DETENIDO actuadores[1]=VEL_DETENIDO endend

Comportamiento MirarA

Page 10: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

Comportamiento IrPorComida

Page 11: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

Comportamiento RodearHorario

darAccion(in double sensoresIR[8], out double actuadores[2])

const double VEL_IZQ_DOBLAR_IZQ, VEL_DER_DOBLAR_IZQ, VEL_IZQ_DOBLAR_DER, VEL_DER_DOBLAR_DER, VEL_IZQ_GIRAR, VEL_DER_GIRAR, VEL_AVANCE const double DEBO_ABRIRME, MIN_DEBO_CERRARME, MAX_DEBO_CERRARMEbegin if (sensoresIR[4]>DEBO_ABRIRME) actuadores[0] = VEL_IZQ_DOBLAR_IZQ actuadores[1] = VEL_DER_DOBLAR_IZQ else if (sensoresIR [5]<MAX_DEBO_CERRARME)&& (sensoresIR [5]>MIN_DEBO_CERRARME) actuadores[0] = VEL_IZQ_DOBLAR_DER actuadores[1] = VEL_DER_DOBLAR_DER else if (sensoresIR [5]<=MIN_DEBO_CERRARME) actuadores[0] = VEL_IZQ_GIRAR actuadores[1] = VEL_DER_GIRAR else actuadores[0] = VEL_AVANCE actuadores[1] = VEL_AVANCE endend

Page 12: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar

Comportamiento Empujar

darAccion(in double sensoresIR[8], out double actuadores[2])

const double VEL_AVANCE, AJUSTE, UMBRAL_DERECHObegin if (sensoresIR[2] + sensoresIR[3])>UMBRAL_DERECHO) actuadores[0] = VEL_AVANCE actuadores[1] = VEL_AVANCE else if (sensoresIR[2] < sensoresIR[3]) actuadores[0] = VEL_AVANCE actuadores[1] = VEL_AVANCE+AJUSTE else actuadores[0] = VEL_AVANCE+AJUSTE actuadores[1] = VEL_AVANCE endend

Page 13: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar
Page 14: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar
Page 15: Las tareas que requiere la misión deben permitir al robot recolectar objetos y reportar la actividad actual. Recolectar Objetos La tarea de recolectar