Publicado el 20 de Julio del 2017
592 visualizaciones desde el 20 de Julio del 2017
616,8 KB
25 paginas
Capítulo 3. Diseño y modelado del sistema
3.1 Aspectos Generales
Para poder elaborar un buen diseño es muy importante tener en claro desde un inicio
el punto de partida para el trabajo y a donde se quiere llegar. Es por esto que como un
primer paso la atención debe ser enfocada como se había comentado en el capítulo anterior
a la evidente necesidad de establecer las restricciones o suposiciones bajo las cuales se va a
trabajar, mismas que se listan a continuación:
• El ambiente para la exploración es de tipo estático, es decir, para una tarea de
exploración se define de antemano la disposición de los objetos en el ambiente y
esta estructura no cambia con el tiempo, aunque claro que para un diferente
experimento la configuración de dicho ambiente si puede ser alterada.
• Los objetos que se sitúan en el ambiente son todos volúmenes de un mismo tipo
(cilindros).
• El escenario para la exploración está bien delimitado midiendo 50cm x 50cm.
• Los dispositivos de percepción que se utilizarán son sólo sensores infrarrojos que
ayudan a detectar proximidad de objetos en un rango de entre 0.5 y 2 cm de
distancia.
• Para el rastreo de posición del robot se utilizan contadores de pulsos acoplados a
cada una de las ruedas del robot.
3.2 Módulos del sistema
De acuerdo a los aspectos de interés para el presente trabajo, el diseño general del
sistema se engloba en un conjunto de módulos de operación, cada uno de los cuales estará
especializado en una función determinada. Los módulos son los siguientes:
• módulo de la interfaz principal
• módulo para el control del robot
• módulo para navegación y análisis de obstáculos
42
• módulo para determinación de posición
• módulo para construcción del mapa
• módulo para la generación y navegación del modelo virtual
3.2.1 Módulo para control del robot
El módulo encargado de las instrucciones para controlar el robot y tener acceso a las
lecturas de sus sensores debe funcionar de manera transparente para el usuario
permitiéndole dar instrucciones tan simples como “mover hacia delante” o “girar un
número determinado de grados” sin preocuparse por conocer el tipo de comandos y la
sintaxis que deben seguir para poder ser interpretados por el robot. En realidad el módulo
de control del robot efectúa la transformación de las instrucciones de alto nivel que envía el
usuario a comandos reconocibles por el robot.
3.2.2 Módulo para la determinación de posición
El problema de la ubicación de los distintos obstáculos y del robot mismo en el
plano, en realidad será considerado como un caso de rastreo de posición dando como
supuesto que el robot conoce su posición inicial en el área a explorar, posición que es
definida por el usuario antes de la ejecución del algoritmo.
El robot de manera local no puede guardar un registro de los movimientos que ha
hecho en el plano, sin embargo dado el continuo intercambio de información con la
computadora de control, sí se puede llevar un registro del camino que ha seguido el robot
desde su punto de partida y estimar la posición en la que se encuentra para así también
estimar la posición de los objetos que encuentra a su paso.
Para poder atacar de mejor manera el problema de rastreo utilizando los datos que
se pueden obtener del robot, debemos hablar de los motores, los cuales pueden ser
manejados en dos modalidades, una basada en posición y otra basada en velocidad. Cada
uno de estos modos de control es seleccionado por el robot dependiendo del tipo de
comando que reciba, cambiando de un modo a otro. En el caso del modo de control basado
en velocidad existen un par de valores enteros que se envían como parámetros y que
43
corresponden a la velocidad de cada una de las ruedas, de esta forma el control del motor
mantiene esta velocidad. Cuando se usa el modo basado en posición el controlador recibe
como entrada una posición objetivo (en pulsos) para las ruedas, una aceleración y una
velocidad máxima, así con estos parámetros el controlador acelera las ruedas hasta alcanzar
la velocidad tope indicada y luego desacelera para alcanzar la posición objetivo.
El robot cuenta con un par de motores, cada uno acoplado a cada una de las ruedas
mediante un engranaje con una reducción de 25:1.Un codificador incremental está situado
en los ejes del motor y proporciona 24 pulsos por revolución del motor, lo cual permite una
resolución de 600 pulsos por revolución de la rueda y esto corresponde a 12 pulsos por
milímetro de camino recorrido por el robot. El procesador central del robot tiene un control
directo sobre los motores y puede leer los pulsos del codificador con lo cual a través de una
rutina se detecta cada pulso del codificador y se actualiza un contador de posición para cada
rueda.
Aunque la información que podemos obtener del robot utilizando el contador de
posición de cada una de las ruedas no es 100% confiable, sí es la única forma de rastrear la
trayectoria del robot ya que no cuenta con otro tipo de dispositivos más avanzados para tal
efecto. Así pues, debemos considerar la casi segura existencia de un error aunque sea
mínimo, generado durante cada movimiento del robot y así mientras mas movimientos haga
desde su partida, cada uno de estos mínimos errores irán sumándose de forma tal que el
error global vaya creciendo y sea más difícil hacer la estimación de la posición actual del
robot. Como una estrategia para eliminar un error acumulativo que afecte en mayor y
mayor medida, el sistema no utiliza lecturas acumulativas, es decir, entre cada movimiento
y parada del robot el módulo de rastreo de posición obtiene los datos de los sensores y una
vez que cuenta con dicha información se envía una señal al robot para que reinicie sus
contadores de posición y los deje listos para efectuar y medir el siguiente movimiento. De
esta manera el error que se pueda generar en cada lectura que se hace de los sensores no se
acumula tan dramáticamente sino que se puede decir que para cada movimiento del robot se
hace un borrado y se reinicia la cuenta.
La forma de operación sobre los motores que ha sido considerada como la más
apropiada para un trabajo como el presente ha sido la modalidad de velocidad. Debido a
que el robot de manera inicial no conoce nada del ambiente en el cual se encuentra resulta
44
impráctico considerar la modalidad de operación basada en posición dado que no hay
manera de establecer una posición objetivo si no se conoce la configuración que tiene el
ambiente y además para el robot no hay una posición objetivo única ya que su tarea es
explorar el escenario. Por otro lado, con el uso del modo de control basado en velocidad es
más fácil definir para el robot una dirección a seguir y una velocidad para su
desplazamiento, de esta forma el robot puede navegar en la dirección indicada hasta que
reciba una nueva instrucción o tenga que detenerse ante la detección de algún tipo de
obstáculo. Aquí debe quedar claro entonces que durante cualquier desplazamiento que lleve
a cabo el robot al mismo tiempo se efectúa una lectura continua de los sensores infrarrojos
para poder actuar ante la proximidad de algún objeto.
De cualquier manera, al elegir operar los motores del robot en la modalidad de
velocidad debemos también hacer una correcta selección del valor de ésta. El robot puede
operar a una velocidad mínima de 8mm/s teniendo como velocidad tope 1m/s, sin embargo
al trabajar con una velocidad muy baja obviamente se afecta el tiempo requerido para
realizar la tarea y por otro lado una velocidad alta presenta dificultades para evitar que el
robot colisione con los obstáculos encontrados en el ambiente, ya que aunque durante su
desplazamiento se mantiene una lectura constante de los sensores, con una alta velocidad y
manejando sensores de tan poco alcance como los utilizados por el robot Khepera, se
supera la capacidad de reacción del robot. Un caso puede ser que la lectura de los sensores
en un tiempo t no indique la presencia de ningún objeto estando a una distancia de 2.5 cm,
sin embargo el robot sigue desplazándose y en un tiempo t+1 se puede presentar una
colisión con el objeto dado que t+1 fue tiempo suficiente para desplazar el robot 2.5 cm y
fue muy poco tiempo para actualizar las lecturas de los sensores. Por estas razones es
importante hacer una selección cuidadosa de la velocidad probando los resultados y efectos
de una u otra, buscando la que mejor ayude a la navegación del robot.
3.2.3 Módulo para navegación y análisis de obstáculos
Para realizar la exploración se puede tomar uno de dos criterios con respecto a como
tratar con los límites del ambiente definido, ya que bien puede hacerse que el robot
investigue como un obstáculo más cada una de las paredes interiores del escenario o bien se
45
puede indicar al robot ignorarlas dando por hecho que son los límites y no puede ir más allá
de ellos. En el presente trabajo se toma el segundo criterio buscando ahorrar tiempo durante
la tarea de exploración para el robot asumiendo que el ambiente es un rectángulo del cual
no hay nada mas que conocer sobre sus paredes interiores y resaltando que la importancia
del trabajo se encuentra en ubicar los objetos que se encuentran al
Comentarios de: Capítulo 3. Diseño y modelado del sistema (0)
No hay comentarios