Title: Sin t
1Caso de estudio recolección Gonzalo Tejera,
INCO, Universidad de la República del Uruguay
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.
2El 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.
3Comportamientos simples IrPorComida,
ExplorarZona, RodearHorario, RodearAntiHorarios
, MirarAlHome, Empujar y EvitarObstaculos.
Los predicados veoAlgo, enZonaComida,
cercaDelHome, fueraDeRumbo, homeALaIzquierda, c
omidaLaIzquierda, comidaLaDerecha, miroAlHome
y perpendicularAlHome.
4(No Transcript)
5El 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.
6Predicado veoAlgo
Predicado enZonaComida
Predicado cercaDelHome
7Predicado fueraDeRumbo
8Comportamiento EvitarObstáculos
darAccion(in double sensoresIR8, out double
actuadores2) const double pesos28 begin
for iterAct0 to 1 actuadoresiterActpesosite
rAct0 for iterSens0 to 7 do
actuadoresiterAct sensoresiterSenspesosi
terActiterSens end end end
9Comportamiento MirarA
darAccion(in double posRobot2,in double
dirRobot, in posMirar, out double
actuadores2) const double ERR_ANGULO,
VEL_GIRO, VEL_DETENIDO begin if
abs(anguloEntre(posMirar,posRobot,dirRobot))gtERR_A
NGULO actuadores0VEL_DETENIDOVEL_GIRO
actuadores1VEL_DETENIDO-VEL_GIRO else
actuadores0VEL_DETENIDO actuadores1VEL_DE
TENIDO end end
10Comportamiento IrPorComida
11Comportamiento RodearHorario
darAccion(in double sensoresIR8, out double
actuadores2) 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_CERRARME begin if (sensoresIR4gtDEBO_AB
RIRME) actuadores0 VEL_IZQ_DOBLAR_IZQ
actuadores1 VEL_DER_DOBLAR_IZQ else if
(sensoresIR 5ltMAX_DEBO_CERRARME)
(sensoresIR 5gtMIN_DEBO_CERRARME)
actuadores0 VEL_IZQ_DOBLAR_DER
actuadores1 VEL_DER_DOBLAR_DER else if
(sensoresIR 5ltMIN_DEBO_CERRARME)
actuadores0 VEL_IZQ_GIRAR actuadores1
VEL_DER_GIRAR else actuadores0
VEL_AVANCE actuadores1 VEL_AVANCE end end
12Comportamiento Empujar
darAccion(in double sensoresIR8, out double
actuadores2) const double VEL_AVANCE, AJUSTE,
UMBRAL_DERECHO begin if (sensoresIR2
sensoresIR3)gtUMBRAL_DERECHO) actuadores0
VEL_AVANCE actuadores1 VEL_AVANCE else if
(sensoresIR2 lt sensoresIR3) actuadores0
VEL_AVANCE actuadores1
VEL_AVANCEAJUSTE else actuadores0
VEL_AVANCEAJUSTE actuadores1 VEL_AVANCE
end end
13(No Transcript)
14(No Transcript)
15(No Transcript)