• No se han encontrado resultados

V. 2.1 ¿Qui´en deber´ıa vivir y qui´en deber´ıa morir? Teorema fun-

VI.1.1 Movimiento con evasi´on de obst´aculos

La navegaci´on con evasi´on de obst´aculos es una tarea cl´asica que necesita ser resuelta por la mayor´ıa de la gente trabajando en rob´otica m´ovil y que requiere de experiencia. Un robot es puesto en un ambiente con algunos objetos en ´el y se requiere cubrir la distancia m´as larga sin golpear los objetos.

Si la morfolog´ıa del robot (forma, motores y disposici´on de los sensores) es sim´etrica respecto a por lo menos un eje con dos ruedas a los costados, se puede resolver con un veh´ıculo de Braitenberg, Braitenberg , 1984. Pero el Pioneer P2-AT no tiene dos ruedas, sino que tiene cuatro con un motor independiente cada rueda. Pero podemos utilizar el concepto del veh´ıculo de Braitenberg para aplicarlo en el Pioneer P2-AT.

Conexión Exitatoria Conexión Inhibitoria

(a) (b)

Figura 40: (a) Un veh´ıculo de Braitenberg es un robot conceptual cuyas ruedas est´an directamente ligadas a los sensores a trav´es de conexiones ponderadas. (b) Robot Pioneer P2-AT, tiene un motor independiente en cada rueda, se controla mediante instrucciones b´asicas.

Los veh´ıculos de Braitenberg son robots conceptuales cuyas ruedas estan direc- tamente ligadas a los sensores a trav´es de conexiones ponderadas (con pesos) muy

similares a las de las redes neuronales artificiales. Si la conexi´on es positiva (exitato- ria), la velocidad de rotaci´on de la rueda es proporcional a la activaci´on del sensor. Adem´as, si la conexi´on es negativa (inhibitoria), la velocidad de rotaci´on de la rueda es inversamente proporcional a la activaci´on del sensor, posiblemente revirtiendo su direcci´on de rotaci´on. La Figura 40 (a) muestra el diagrama de la instalaci´on de un controlador tipo Braitenberg para el robot miniatura Khepera. Cada rueda est´a lig- ada a trav´es de conexiones excitatorias a los sensores en su propio lado y a trav´es de conexiones inhibitorias a los sensores en el lado opuesto. Un valor de compensaci´on aplicado a cada rueda, genera movimiento hacia delante mientras la suma de pesos de se˜nales entrantes dirigen al robot lejos de los objetos.

El robot m´ovil Pioneer P2-AT utiliza el sistema Saphira como sistema de control a partir del cual es posible enviar mandos b´asicos y directos de acci´on al robot en lenguaje Colbert para que este los ejecute; estos mandos son:

Movimiento Meta Continuas

move(int mm) speed(mm/sec) turnto(int deg) rotate(mm/sec) turn(int deg) stop

La diferencia principal entre los dos tipos de acciones, desde el punto de vista de Colbert, es si inducen a un movimiento con meta o no. Las acciones en la primer columna, las acciones movimiento meta, normalmente causan que el ejecutor Colbert pare hasta que su ejecuci´on termine. Las acciones en la segunda columna, las acciones

Continuas, regresan imediatamente y continuan la ejecuci´on, aunque sus efectos pueden tardar una cantidad arbitraria de tiempo.

Otra distinci´on es si el mando causa un movimiento de translaci´on o rotaci´on. Los dos tipos de movimiento son independientes, de manera que un mando move() se puede activar simult´aneamente con un mando rotate(). El mando stop que no toma

argumentos, detiene ambos movimientos, translacionales y rotacionales.

move(int mm) Mueve el robot hacia delante (mm positivos) o hacia atras (mm neg- ativos) una distancia de |mm| mil´ımetros.

turnto(int deg) Voltea al robot a apuntar en la direcci´on deg. Esta direcci´on est´a de acuerdo al sistema coordenado global del robot.

turn(int deg) Voltea al robot incrementalmente un ´angulo |deg|. Esta direcci´on es en contra de las manecillas del reloj para grados (deg) positivos, y en favor para grados negativos.

speed(int mmsec) Establece una velocidad para el robot de |mmsec| (en mm/seg). La velocidad es hacia delante si mmsec es positivo, de otra manera es hacia atras. El robot continuar´a teniendo esta velocidad hasta que un mando de translaci´on nuevo sea ejecutado.

rotate(int degsec) Establece una velocidad rotacional para el robot de |degsec| (en deg/seg). La velocidad es contra las manecillas del reloj si degsec es positivo, de otra manera es en favor de las manecillas. El robot continuar´a moviendose a esta velocidad hasta que otro mando rotacional sea ejecutado.

stop Detiene todos los movimientos del robot, cancelando cualquier mando de translaci´on o rotaci´on.

Utilizando s´olo tres de estos mandos es posible dise˜nar un esquema de veh´ıculo de Braitenberg para el robot Pioneer P2-AT, ya que este robot tiene cuatro ruedas y no dos, en la Figura 40 (b) se muestra un esquema del Pioneer. Los tres mandos que utilizamos para mover al robot son: speed(mmsec), move(mm), turn(deg), los argumentos de estos mandos dependen de las lecturas de los sonares en un momento

determinado, es decir, la velocidad, la distancia y los grados que el robot utilizar´a para moverse dependeran de las lecturas que recibe el robot de sus sonares. Estos argumentos se determinan de la misma manera que en un veh´ıculo de Braitenberg conceptual, el cual determina la velocidad de sus dos ruedas tal y como el que se describi´o anteriormente, s´olo que para el Pioneer P2-AT son tres los valores a c´alcular. Deber´ıa notarse que incluso este simple dise˜no requiere un an´alisis cuidadoso de perfiles de sensores y motores, y decisiones importantes respecto a la direcci´on de movimiento (hacia delante, hacia atras), su rectitud de trayectoria y su velocidad. Adem´as, los pesos de conexi´on deben igualar las propiedades de respuesta del sensor. Por ejemplo, si un sensor tiene un perfil de respuesta m´as bajo comparado con otros sensores, sus conexiones de salida tendr´ıan pesos m´as fuertes con el fin de obtener una buena trayectoria. El balance de pesos es igualmente importante. Por ejemplo, si las conexiones de salida del sensor m´as a la izquierda y de un sensor frontal tienen los mismos pesos, el robot tender´a a voltear demasiado cuando un objeto es percibido en el lado izquierdo o muy poco cuando un objeto es percibido justo en frente. Es claro que esto depende de que tan fuertes son los valores elegidos. Las fuerzas de las conexiones dependen tambi´en de las velocidades de compensaci´on, las cuales dependen de la taza de actualizaci´on de los sensores, de las propiedades de reflexi´on de los objetos, y del ambiente desordenado. En otras palabras diferentes robots y diferentes ambientes requieren diferentes conjuntos de valores escogidos cuidadosamente.

Es v´alido ahora preguntar si un enfoque evolutivo podr´ıa encontrar una soluci´on para el movimiento recto y evasi´on de obst´aculos sin asumir todo el conocimiento apriori acerca de los sensores, motores y el ambiente. Si tal soluci´on se encuentra por evoluci´on artificial, es tambi´en v´alido preguntar c´omo trabaja y c´omo se compara con una arquitectura predise˜nada tal como la del controlador tipo Braitenberg descrito

anteriormente. Nosotros hemos investigado estas preguntas con un robot Pioneer P2- AT.

Saphira cuenta con un software simulador del robot f´ısico y su ambiente. Esta car- acter´ıstica nos permite depurar las aplicaciones convenientemente en una computadora sin usar el robot f´ısico. El simulador tiene modelos de error realistas para los sonares. Incluso su interface de comunicaci´on es la misma que para un robot f´ısico, de modo que no es necesario reprogramar o hacer cualquier cambio especial al cliente para tenerlo corriendo en el simulador o en el robot. El simulador tambi´en permite construir mode- los en 2-D para ambientes reales o imaginarios, llamados mundos. Los modelos mundo son abstracciones del mundo real, con segmentos lineales representando las superficies verticales de corredores, puertas y objetos en ´el.

El ambiente en el que se mover´a el robot es un espacio rectangular delimitado por 4 paredes definiendo una ´area de 3.52 x 2.48 mts. (Figura 41). La evoluci´on se lleva a cabo completamente en el simulador, ya que la evoluci´on puede durar d´ıas y hacerla en el robot real no ser´ıa muy pr´actico, el Pioner P2-AT cuenta con baterias con duraci´on de hasta 4 horas, su tama˜no es de 70 cms de di´ametro, por esta y otras razones se decidi´o hacer la evoluci´on en el simulador y probar despu´es los resultados en el robot real.