Evasión de Obstáculos _Práctica con LEGO NX T

21
INFORME FINAL DE ROBÓTICA. ESPECIALIZACIÓN EN SISTEMAS Y AUTOMÁTICA INSDUSTRIAL. Ing.William roa 20142101011 – Universidad Distrital Francisco José de Caldas. Robótica Móvil. La Robótica es la rama de la Tecnología que se dedica al diseño, construcción, operación, disposición estructural, manufactura y aplicación de los Robots. Combina diversas disciplinas como los son: La Mecánica, Electrónica, Informática, Inteligencia Artificial, Control y la Física. Se considera a Isaac Asimov como el padre de la Robótica, que en su libro titulado ”Foundation”, que contempla las tres Leyes de la Robótica. Por el lado de la Cinematografía de Ciencia Ficción, Carel Capek acuño en su obra R.U.R Rossum´s Universal Robot la palabra checa “Robota”. La Robótica Móvil plantea tres características principales que se deben contemplar para el diseño y funcionamiento: Saber dónde se encuentra el Robot, Planteamiento del Problema de movimiento, Planificación de cómo se va a mover el Robot.

description

Práctica realizada con Lego NXT para resolver la trayectoria evadiendo Obstáculos, programando el Algoritmo de campos potenciales artificiales.

Transcript of Evasión de Obstáculos _Práctica con LEGO NX T

  • INFORME FINAL DE

    ROBTICA. ESPECIALIZACIN EN SISTEMAS Y AUTOMTICA

    INSDUSTRIAL.

    Ing.William roa 20142101011 Universidad Distrital Francisco Jos de Caldas.

    Robtica Mvil. La Robtica es la rama de la Tecnologa que se dedica al diseo, construccin, operacin, disposicin estructural, manufactura y aplicacin de los Robots. Combina diversas disciplinas como los son: La Mecnica, Electrnica, Informtica, Inteligencia Artificial, Control y la Fsica. Se considera a Isaac Asimov como el padre de la Robtica, que en su libro titulado Foundation, que contempla las tres Leyes de la Robtica. Por el lado de la Cinematografa de Ciencia Ficcin, Carel Capek acuo en su obra R.U.R Rossums Universal Robot la palabra checa Robota. La Robtica Mvil plantea tres caractersticas principales que se deben contemplar para el diseo y funcionamiento: Saber dnde se encuentra el Robot, Planteamiento del Problema de movimiento, Planificacin de cmo se va a mover el Robot.

  • MARCO TERICO:

    GRADOS DE LIBERTAD.

    Cuando se habla de los grados de libertad se refiere al movimiento de las piezas en un espacio tridimensional, como la traslacin en los tres ejes perpendiculares (adelante/atrs, izquierda/derecha, arriba/abajo), la rotacin en piezas cilndricas o la combinacin de movimientos anteriores.

    6 grados de Libertad de un cuerpo: Se refiere al movimiento en un espacio tridimensional, es decir, la capacidad de moverse hacia delante/atrs, arriba/abajo, izquierda/derecha (traslacin en tres ejes perpendiculares), combinados con la rotacin sobre tres ejes perpendiculares (Guiada, Cabeceo, Alabeo). El movimiento a lo largo de cada uno de los ejes es independiente de los otros, y cada uno es independiente de la rotacin sobre cualquiera de los ejes, el movimiento de hecho tiene seis grados de libertad.

    Figura 1. Seis grados de libertad.

    CINEMTICA DEL ROBOT.

    La cinemtica de un robot es el estudio de los movimientos de un robot. En un anlisis cinemtico la posicin, velocidad y aceleracin de cada uno de los elementos del robot son calculados sin considerar las fuerzas que causan el movimiento. La relacin entre el movimiento y las fuerzas asociadas son estudiadas en la dinmica de robots. CINEMTICA DIRECTA.

    Se denomina cinemtica directa a una tcnica usada en grficos 3D por computadora, para calcular la posicin de partes de una estructura articulada a partir de sus componentes fijas y las transformaciones inducidas por las articulaciones de la estructura. La cinemtica directa se refiere al uso de ecuaciones cinemticas para calcular la posicin de su actuador final a partir de valores especficos denominado parmetros. Las ecuaciones cinemticas de un robot son usadas en robots, juegos de computadoras y la animacin.

    CINEMTICA INVERSA.

    En Robtica, la Cinemtica inversa (IK) es la tcnica que permite determinar el movimiento de una cadena de articulaciones para lograr que un actuador final se ubique en una posicin

  • concreta. El clculo de la cinemtica inversa es un problema complejo que consiste en la resolucin de una serie de ecuaciones cuya solucin normalmente no es nica. El objetivo de la cinemtica inversa es encontrar los valores que deben tomar las coordenadas articulares del robot para que su extremo se posicione y oriente segn una determinada localizacin espacial. Depende de la configuracin del robot (existen soluciones mltiples).

    ARQUITECTURA DEL ROBOT LEGO.

    El Robot LEGO que se va a utilizar, cuenta con una arquitectura para su propulsin

    diferencial delantera (tipo triciclo pero invertida), en donde se emplea una sola rueda

    trasera pasiva y 2 ruedas delanteras tractoras.

    Figura 2. Arquitectura de Robot LEGO.

    BRICk NXT: El nuevo ladrillo inteligente NXT, "cerebro" del robot cuenta con un potente

    microprocesador de 32 bits y la memoria Flash, adems de soporte para Bluetooth y

    USB 2.0! El ladrillo inteligente NXT incluye:

    - Microprocesador de 32 bits ARM7.

    - Apoyo para la comunicacin inalmbrica Bluetooth.

    - 1 puerto USB 2.0.

    - 4 puertos de entrada.

    - 3 puertos de salida.

    - Desarrollado por 6 AA (1,5 V), no incluido, o litio Batera recargable (# 9798 o # 9693),

    que se vende por separado.

    - Hasta tres ladrillos NXT se pueden conectar al mismo tiempo; Sin embargo, slo se

    puede comunicar con un ladrillo NXT a la vez.

    - Este es el componente individual, y no incluye los sensores, motores, cables, software

    u otros accesorios.

  • Figura 3. Brick LEGO.

    NXT MOTOR: Este motor es especfico para el conjunto NXT (2006). Incluye un codificador

    de rotacin, volviendo a la NXT la posicin del eje con 1 resolucin. Debido al conector

    especial de este motor (tipo clavija telefnica no estndar), se requiere un adaptador de

    cable para conducir este motor con fuentes de 9V regulares. No se recomienda para su uso

    con un RCX que no puede entregar la alta corriente que este motor puede consumir.

    Velocidad de rotacin lenta, minimizando la necesidad de tren de engranajes externa.

    Figura 4. Motor para trasmisin de Potencia a las Ruedas.

    SOFTWARE LEGO MINDSTORMS NXT.

    LEGO MINDSTORMS NXT es la solucin robtica completa de aprendizaje a partir de 8 aos hasta la universidad potenciando la creatividad, aprendiendo jugando ciencia, tecnologa, ingeniera, matemticas y programacin. Permite a los estudiantes descubrir la programacin controlando dispositivos reales de entrada y salida. Su lenguaje de programacin visual posibilita una funcionalidad muy avanzada a la vez que intuitiva.

    PLANEACIN DE TRAYECTORIAS PARA ROBOTS MOVILES. Convencionalmente el problema de generacin de trayectorias para un robot mvil indica que dado un robot y un ambiente, se puede determinar una trayectoria entre dos puntos especficos si el robot est libre de colisiones y si satisface cierto criterio de desempeo.

  • Una primera clasificacin de los mtodos para planear los movimientos de robots mviles, es dinmica o esttica. En el caso dinmico, no se tiene informacin completa del espacio de trabajo y los obstculos se consideran mviles. Para el caso esttico, se tiene conocimiento completo del espacio de trabajo y los obstculos no se mueven. De los mtodos para planear trayectorias, se tiene en un primer lugar, los basados en grafos entre los cuales se distinguen: grafos de visibilidad, diagramas de Voronoi, modelado del espacio libre, y descomposicin en celdas. Otro tipo de mtodos empleados para la planeacin de trayectorias emplea un enfoque estocstico que da lugar al algoritmo de planeacin aleatoria de trayectorias (Randomized Path Planner RPP), al algoritmo de mapas probabilsticos (Probabilistic Road Map Method PRM), y al algoritmo de rboles de exploracin rpida (Rapidly Exploring Random Tree RRT). Enfoques adicionales para planear trayectorias utilizan mtodos heursticos de optimizacin como algoritmos genticos, colonias de hormigas, quimiotaxis bacteriana, y optimizacin mediante enjambres de partculas.

    ALGORTMO DE CAMPOS POTENCIALES ARTIFICIALES.

    El mtodo de campos potenciales es una de las tcnicas ms populares en la generacin de

    trayectorias para robots mviles, por ser una forma prctica de solucionar este problema.

    Entre los primeros desarrollos, existe el presentado por Khatib O, que propone que los

    obstculos y el robot tengan una carga elctrica del mismo signo, con la finalidad de generar

    una repulsin, mientras que la meta tiene asociada una carga elctrica de signo opuesto,

    para atraer el robot al punto destino. La propuesta presentada por Khatib O, se denomin

    FIRAS (sigla en francs que se traduce al ingls como The Force Involving and Artificial

    Repulsion from the Surface Function).

    En modo convencional, los potenciales atractivos y repulsivos se generan de forma separada y el potencial total del espacio de trabajo se obtiene como la suma de aquellos. Otra propuesta con este mismo enfoque, fue desarrollada por Krogh B. A y es llamada GPF (Generalized Potential Field). Para generar la trayectoria con estos potenciales, slo se requiere calcular los gradientes; sin embargo, los campos potenciales pueden ser no convexos, presentando mnimos locales que dejara estancado al robot en un punto diferente al objetivo. Otra desventaja es la estimacin de los parmetros del campo potencial para lograr una adecuada evasin de obstculos. Modificaciones al planteamiento original de campos potenciales se realizan, considerando las anteriores limitaciones; Volpe y Khosla, proponen las funciones potenciales super-cuadrticas (Super-quadric Artificial Potential Functions), donde se emplea un amplio conjunto de formas desde rectngulos hasta elipses que estn descritos por frmulas super-cuadrticas. Una propuesta basada en la solucin de la ecuacin de Laplace para transferencia de calor, es desarrollada de forma separada por Connolly, y adicionalmente por Kim y Khosla; este mtodo se implementa mediante funciones potenciales armnicas (Harmonic Potential Functions). En el caso de tener obstculos en movimiento, S.S. Ge y Y.J. Cui, proponen un nuevo conjunto de funciones potenciales que dependen de la posicin y de la velocidad de los obstculos.

  • Un problema adicional identificado tanto por S.S. Ge y Y.J. Cui, y por R. Volpe y P. Khosla, aparece cuando el campo potencial de un obstculo encierra el objetivo, lo cual ocurre cuando estos dos se encuentran muy cercanos. Este problema se denomina GNRON (Goals Nonreachable With Obstacle Nearby); los anteriores autores proponen en sus trabajos diferentes tipos de campos potenciales para solucionar este problema. Los mtodos presentados anteriormente, se denominaron campos potenciales locales, debido a su caracterstica de adicin de campos asociados a los obstculos. En contraste con esta orientacin, existen los campos potenciales globales donde se considera la totalidad de los obstculos, como tambin el objetivo para construir el campo potencial como un todo y no como la adicin de partes; con esta orientacin, se busca eliminar el problema de los mnimos locales. Bajo este nuevo enfoque aparecen las funciones de navegacin (Navigation Function), propuestas por Rimon y Koditschek, que son explcitamente diseadas para presentar un nico mnimo local en el objetivo, y si existe otro tipo de puntos de equilibrio, se enmascara (rellena). Para construir las funciones de navegacin, es necesario conocer completamente el espacio de trabajo, con la desventaja de perder la simplicidad que presentan los otros mtodos antes expuestos.

    EVASIN DE OBSTACULOS.

    Los algoritmos de planeacin exactos, tales como los discutidos hasta ahora, se dedican a tratar de encontrar soluciones ptimas para problemas especficos, el concepto de optimizacin se reduce a optimizar tiempos, energa, distancia, costo, etc. Pero si estos mtodos se desean aplicar a problemas prcticos, el concepto de optimizacin es mucho ms vago. Por ejemplo, el vehculo debe de moverse rpido, interactuar con personas, alargar el tiempo de recarga de bateras, resolver rpidamente el camino a tomar, etc. An ms, el problema se complica cuando se tienen muchas posibles rutas, y es entonces cuando los modelos de campos potenciales son usados para resolver el problema. Como un ejemplo de campos potenciales (ver Figura 1), imaginemos que tenemos un espacio de configuracin donde los objetos estn definidos por polgonos irregulares, dibujemos esos polgonos en una manta y hagamos que se levanten, poniendo objetos por debajo de estos polgonos, formando una superficie con altas (objetos) y bajas (trayectorias libres de colisin o la meta). Definamos un punto inicial y un punto final sobre la manta. Levantemos la manta lo necesario para que el punto inicial sea el ms alto y el punto final sea el ms bajo. Entonces, pongamos un baln en el punto inicial y observemos como el baln es atrado al punto ms bajo (meta), evitando los obstculos. De esta manera la manta funciona como la fuerza repulsiva que mantiene al baln lejos de los obstculos y al mismo tiempo gua al robot al punto final.

  • Figura 5. Ejemplo _Campo potencial artificial representado por dos obstculos y la meta.

    Modelar estos campos potenciales no es fcil, sin embargo, es posible modelar las fuerzas de repulsin debidas a los objetos, con una funcin inversamente proporcional a la distancia a la que el robot se encuentra de ellos como lo mostrado en la Figura 6. Entonces, la fuerza repulsiva (suma total de las fuerzas de repulsin debidas a los objetos en el punto donde se encuentra el robot) sumada a la fuerza de atraccin (fuerza asociada a la meta) produce una fuerza resultante. Esta fuerza resultante vara de acuerdo a la posicin del robot y lo gua durante todo su trayecto, desde el punto inicial hasta el punto final. Un problema grande, en este mtodo, es que pueden encontrarse hondonadas en el camino, como resultado de la ausencia de fuerzas actuantes en el robot, debido a la anulacin de la fuerza resultante. Esto ocurre cuando la fuerza de atraccin aplicada es de la misma magnitud a la fuerza de repulsin, pero exactamente en el sentido contrario a sta, por lo que la suma vectorial es cero. Este problema es llamado mnimo local, y resulta en un estancamiento de robot en un punto no deseado.

    Figura 6. Modelado de Fuerzas.

  • LIMITACIONES DEL METODO.

    En general, estos mtodos estn limitados por la confiabilidad de los sensores que utilizan, por los modelos imprecisos que se tienen de los mecanismos del robot y por las caractersticas no ideales de las llantas que, hasta cierto punto, permiten el deslizamiento. Entonces, la idea bsica para la utilizacin de estos algoritmos est constituida, y limitada al mismo tiempo, por estos tres puntos bsicos: - El mtodo bsico es restringido a robots representados por un punto y todo el campo potencial se construye alrededor del anlisis de ese punto, por lo que no es aplicable a todos los tipos de robot. - Es difcil de evitar los mnimos locales en el campo potencial producidos por objetos cercanos al robot. - La mayora de los vehculos son de movilidad restringida (No Holonmicos), que para cambiar su orientacin deben moverse de su posicin actual.

    APLICACION DEL MTODO PARA EL CLCULO DE TRAYECTORIA.

    Si la arquitectura del Robot LEGO contara con sensores para medicin de distancia, el siguiente grfico sera una representacin vlida para su utilizacin; donde el centro de rotacin del Robot estara en el centro del eje del eje transmisin tomado desde el centro de cada una de las ruedas. Al igual que para el origen de los vectores.

    Figura 7. Configuracin de la arquitectura del Robot.

    En nuestro caso el Robot LEGO no cuenta con dichos sensores, por lo tanto consideramos los siguientes parmetros para su Navegacin:

  • - Para los sensores se considerar los siguientes rangos de medicin: Smax = 1 (Es la distancia mxima de medicin cuando el Robot est cerca al obstculo). Smin = 0,3 (Es la distancia mnima de medicin cuando el Robot est cerca al obstculo). AD = 1,2 (representa la distancia del paso a realizar en cada iteracin cuando se calcula las posiciones ( , ).

    CLCULOS. Potencial de atraccin: El bloque de atraccin genera el movimiento en la direccin del objetivo. Sus entradas son la estimacin de la posicin actual (X,Y) y la posicin final ( , ) por alcanzar.

    En la ecuacin (1) el mdulo es un parmetro de configuracin, y la distancia del objetivo en cada instante. La direccin hacia la meta, () referida al sistema de referencia al sistema de referencia fijo Fw, se puede calcular mediante la siguiente ecuacin:

    Potencial de Repulsin: El bloque de repulsin opera en funcin de la informacin dada por los sensores de distancia del Robot. La distancia que mide cada sensor, , puede asociarse al mdulo de un vector

    , orientado hacia + , y es mayor mientras ms cerca est del obstculo:

    En este caso, el modulo es un parmetro de configuracin, que se relaciona con la medida del sensor , con otros valores como el grado de la confianza en la medida , o las dimensiones del Robot en forma de su radio mayor .

    En la ecuacin (3), es ahora el nuevo parmetro de configuracin. Interpretando la medida dada por cada sensor de distancia como un vector de repulsin en la direccin del sensor. La informacin de los n vectores se integra mediante su forma de suma vectorial:

  • Fusin de comandos:

    La fusin de ambos vectores de comportamiento, consiste en una suma

    vectorial en Fw: (5), figura (4), que produce un vector de ngulo que apuntar hacia el objetivo por zonas libres de obstculos. La fusin de comandos se simplifica notablemente escogiendo parmetros , , tales que los mdulos de y

    sean siempre iguales, de donde se obtiene:

    Que se calcula fcilmente con , si los ngulos vienen dados en el

    intervalo . En este caso, el robot se desplaza en la direccin intermedia entre la meta y de mayor alejamiento de los obstculos. Para el ltimo paso del navegador del

    navegador, que es la eleccin de las referencias (V, ) al robot, se puede fijar de varias maneras, por ejemplo, = y = ( ) que impone una velocidad lineal constante y un control proporcional de la orientacin. En tal caso se introducen dos nuevos

    parmetros de configuracin: el valor de la velocidad constante y la velocidad de giro .

    TALLERES DESARROLLADOS. Taller 1 de Clase: Comprensin del entorno LEGO MINDSTORMS NXT _Movimiento en Lnea Recta.

    El taller pretende comprender el entorno de desarrollo y programacin LEGO MINDSTORMS NXT, al igual que las funciones y bloques de programacin, generando un movimiento bsico en el Robot, en este caso un movimiento lineal hacia adelante. El siguiente es es programa de control para el movimiento del Robot, hacia adelante y en lnea recta.

    Figura 8. Programa para el movimiento en Linea Recta en el entorno de Desarrollo NXT.

  • El programa consta de dos sensores de Rotacin, que en su configuracin de accin estn en reinicio, que hacen que el enconder para cada uno de los motores A y B se reinicien a 0, antes de entrar al Bucle. El bloque tipo Bucle est configurado como infinito, para que ejecute loque est dentro infinitas veces. Los bloques de Motor A y B, tienen configurada su potencia al 75% y su sentido de giro en la misma direccin. Los siguientes son los bloques a utilizar:

    Elemento de Programacin. Modo de Operacin.

    Operacin _Bucle

    Utilice este bloque para repetir secuencias de cdigo. Configure la condicin que har finalizar el bucle: el tiempo transcurrido, el nmero de repeticiones, una seal lgica o un sensor. Tambin puede configurar un bucle infinito.

    Sensor de Rotacin _Encoder

    Este bloque cuenta el nmero de grados (una rotacin completa es 360 grados) o de rotaciones completas que gira el motor. Mediante cables de datos, este bloque puede enviar el nmero actual de grados o rotaciones y una seal lgica (verdadero/falso) basada en si el nmero de grados o rotaciones es superior o inferior al punto de activacin.

    Motor.

    Este bloque le permite controlar con precisin la velocidad de un motor. Puede "aumentar" la velocidad hasta alcanzar una velocidad establecida o "disminuir" la velocidad hasta detenerlo. Si deselecciona "Esperar hasta finalizacin", el programa puede pasar al siguiente bloque una vez el bloque Motor ha hecho partir un motor.

  • Conclusiones:

    1. El Brick NXT, es un bloque que permite conectar y desarrollar prcticas de varios niveles de complejidad, aprovechando la potencia que tiene el hartware y su entorno de Programacin.

    2. Con esta prctica se visualizo y se demostro las capacidades del bloque, la velocidad de respuesta de los motores y de su facilidad para programar en en el entorno.

    3. Al contar con varios puertos de entrada y salida, hace que el Brick sea una buena plataforma de enseanza para prcticas academicas.

    Taller 2 de Clase: Generacin de Trayectoria _Seguidor de Lnea.

    Se realiza un programa para el Bloque NXT que ejecute el Algortmo para seguir una Linea negra en una pista. El algoritmo se basa en los datos obtenidos por el Sensor de Luz que se pude integran al bloque NXT, el cual enviar los datos al programa y ste a su vez los operara con los valores que se tienen para los rangos de LUZ reflejada en los colores Blanco y Negro. Al realizar las comparaciones de la seal actual del sensor con los valores ya medidos para luz blanca y negra, los motores actuaran dependiendo de la respuesta de la comparacin.

    Elemento de Programacin. Modo de Operacin.

    Bloque _Sensor de Luz.

    Este sensor detecta la luz ambiental. Mediante cables de datos, puede enviar el valor de luminosidad actual y una seal lgica (verdadero/falso) basada en si el valor de luminosidad actual es superior o inferior al punto de activacin.

    Bloque _Variable.

    Imagnese las variables como sitios donde almacenar valores dentro de la memoria integrada del NXT. Otros bloques de programacin pueden leer el valor actual de una variable (e incluso cambiarlo) conectndose al bloque mediante cables de datos.

    Bloque _Nmero a Texto.

    Este bloque convertir un nmero (por ejemplo, la lectura de un sensor) en texto, que puede visualizarse en la pantalla del NXT. El nmero de entrada puede digitarse o puede proporcionarse en forma dinmica con un cable de datos.

  • Bloque _Visualizar (Display).

    Este Bloque para visualizar una imagen, escribir texto o dibujar una forma en la pantalla de visualizar de NXT. Seleccione Borrar para empezar con unapantalla vaca.

    Bloque _Matemticas.

    Este bloque realiza operaciones aritmticas simples como la suma, la resta, la multiplicacin y la divisin. El bloque realiza tambin la operacin de valor absoluto y raz cuadrada. Los nmeros de entrada pueden digitarse o pueden proporcionarse en forma dinmica con cables de datos.

    El siguiente bloque tipo Bucle, contiene el sensor de LUZ que captura la seal y la almacenara en una variable tipo Numero llamada Intensidad, variable que se llama mas adelante en el programa.

    Figura 9. Bucle de captura de Datos tomados por Sensor de Luz.

    Luego de tener la variable intensidad almacenada, dicha variable es restada con el dato constante obtenido para la para obtener la diferencia entre ellas y luego multiplicarlo por una gananacia que generar la potencia de funcionamiento del motor.

    Los Datos obtenidos del sensor son: Superficie Blanca = 63, Superficie Negra = 35

  • Figura 10. Bucle con la operacin de resta entre el dato del sensor y la constante obtenida para el

    color Blanco.

    Figura 11. Bucle con la operacin de resta entre el dato del sensor y la constante obtenida para el

    color Negro.

    Conclusiones:

    1. Al conectar el sensor de Luz al birck se visualizo que se puede contar con herramientas que le permiten al Brick desenvolverse de una mejor manera si se configura como cualquier forma de Robot.

    2. Al poder variar la potencia de los motores con la variable de entrada, hace que se pueda controlar el movimiento del Robot sobre la lnea.

    3. Al contar con bloques de comparacin las variables del sensor de LUZ con las tomadas anteriormente para los colores BLANCO y NEGRO, se logra tener un mejor entendimiento de lo que se est haciendo con el algoritmo.

    4. La luz ambiente hace variar la toma de los datos para La calibracin de los sensores en las superficies Blanco y Negro. Por lo que se recomend mantener las mismas condiciones externas de luminocidad.

  • Taller 3 de Clase: Generacin de Cdigo de Trayectoria _cuadrado. Se pretende realizar la programacin del robot LEGO, para que genere un recorrido formando un cuadrado. Se adicionarn los sguientes bloques para su realizacin:

    Elemento de Programacin. Modo de Operacin.

    Bloque Texto

    Este bloque puede juntar grupos de caracteres textuales. stos son fragmentos de texto: abcd23, Perro, "Juan!". El texto puede contener nmeros e incluso caracteres especiales, como smbolos y signos de puntuacin. El texto es importante porque puede visualizarse en la pantalla del NXT.

    Bloque Esperar

    Este bloque permite que su robot detecte una determinada condicin a su alrededor antes de continuar. Utilice el control deslizante o digite un valor para configurar un punto de activacin de manera que el programa contine cuando los valores del sensor sean inferiores o superiores a ste.

    Bloque _Bifurcacin.

    Utilice este bloque para elegir entre dos secuencias de cdigo. Por ejemplo, si se ha configurado con un sensor contacto el bloque Bifurcacin podra ejecutar una serie de bloques cuando el sensor est presionado y otra serie cuando no lo est.

    El programa inicia con el reinicio de los sensores de Rotacin para cada motor, para tomar desde esa posicin el valor 0. Se inicia un ciclo tipo Bucle para clculo de Desplazamiento. Se utiliza el bloque de sensor de Rotacin y el dato obtenido se almacena en una variable tipo Nmero Encoder _A y Encoder _B correspondientemente. El dato obtenido en cada uno de ellos se multiplica por 175,9mm que corresponde al permetro de la circunferencia de la rueda del Robot.

  • = 2 , reemplazando valores = 2 56

    2 = 175,9 mm

    Los datos obtenidos, se almacenan en dos variables numricas, Xm_A y Xm_B.

    Figura 12. Clculo de Desplazamiento lineal para los Motores A y B.

    Se suman los datos Xm_A y Xm_B y los divido por 720, para obtener el clculo de la distancia total recorrida. Obteniendo la variable X, que es la distancia X.

    Figura 13. Bucle para el clculo de la Distancia total (x) recorrida del Robot.

    Dentro del Bucle que contiene el clculo de la distancia total recorrida, se realiza el clculo del giro que va a realizar el Robot, restando los valores encoders A y B y luego multiplicando por 0,28 obteniendo la variable W, que es la rotacin del Robot.

    Figura 14. Bucle para el clculo del ngulo final de giro del Robot.

    Luego de tener las variables X y W, se utilizan para ser comparados con una bifurcacin, dentro un ciclo Bucle con las variables fijas, Distancia y Angulo.

  • Figura 15. Bucle con reinicio de S. de rotacin y la comparacin de valores de X y Distancia.

    Figura 16. Bucle con reinicio de S. de rotacin y la comparacin de valores de W y Angulo.

    Se ejecutan el Bucle 4 veces, generando la trayectoria con un desplazamiento de 30 cm y 90 de rotacin del Robot para generar el cuadrado.

    Conclusiones:

    1. Aprovechando los sensores de Rotacin integrados dentro del Motor, se puede obtener una lectura de la posicin de la llanta, permitiendo controlar el angulo de giro de la misma.

    2. Al tener los datos del sensor de rotacin y poder manipularlos matemticamente, junto los datos del perimetro de la llanta se puede controlar los desplazamientos recorridos y lograr giros de la plataforma.

    3. En el momento que arranca el robot sobre el suelo, es posible que la llanta pierda aderencia dependiendo de los ajustes mecanicos de la Plataforma y de las unin superfie-llanta. Por lo que se recomienda ajustar estos paramtros antes de realizar las pruebas.

    4. El desplazamiento en este caso se hace sobre el centro del eje de soporte de las llantas, y por que cuenta con 2 llantas tractoras, se considera su tipo de Propulsion como Diferencial.

  • Taller 4 de Clase: Aplicacin de Algoritmo de Campos de Potencial Artificial. Se usa el algoritmo de Campos de Potencial Artificial para calcular la trayectoria a realizar con el Robot LEGO, programando su algoritmo y sus trayectorias para generar el movimiento en el entorno LEGO MINDSTORMS En la siguiente grfica se presenta el entorno al cual se le aplicar el Algoritmo para calcular la trayectoria.

    Grafica 1. Entorno con los obstculos a desarrollar con los puntos inicial y final. La siguiente tabla muestra los datos obtenidos con la ayuda de Excel, para el clculo de los puntos que generan la trayectoria.

    Tabla 1. Puntos en el espacio X y Y a graficar.

    En la Grfica _ se visualiza la trayectoria generada para el Robot. stas fueron obtenidas a partir de las frmulas del marco terico (1 a 6).

    Punto Posicion en X Posicion en Y

    P0 0 0

    P1 0,97 0,69

    P2 1,94 1,38

    P3 2,91 0,4

    P4 3,7 1,29

    P5 4,89 1,24

    P6 5,47 2,28

    P7 6,05 3,32

    P8 5,24 4,21

    P9 5,8 4

    P10 6,37 4,18

    P11 7 5

  • Tabla 2. Datos de magnitud de Paso y ngulo.

    Grafica 2. Trayectoria a realizar por el Robot.

    Los datos utilizados para la navegacin son los siguientes:

    DATOS DE NAVEGACIN.

    AD 1,2 Paso entre puntos.

    Smax 1 Distancia max de sensado.

    Smin 0,3 Distancia min de sensado.

    Tabla 3. Datos de sensores para Navegacin.

  • Los bloques estudiados anteriormente se utilizan en el algoritmo de Campos potenciales artificiales para obtener los movimientos bsicos del Robot. Adicional a ello se utilizaron los siguientes bloques para hacer la lectura de los datos obtenidos para el paso del Robot AD

    = 1,2 y del ngulo de Navegacin .

    Elemento de Programacin. Modo de Operacin.

    Bloque _Acceso a Archivos.

    Con este bloque puede guardar datos del robot en archivos en el NXT. Despus de escribir datos en un archivo, debe utilizar otro bloque Acceso a archivos para cerrar el archivo antes de poder leerlo o eliminarlo mediante un tercer bloque Acceso a archivos.

    Utilizando el Bloque de Acceso a Archivos, leemos los archivos y los comparamos con respecto al dato actual del ngulo W generado por el Robot, y el resultado entra a un bloque de bifurcacin que a su vez contiene otras dos bifurcaciones que compararn el dato W con la variable Giro, cada una con las siguientes dos condiciones: La primera es para cuando la condicin de comparacin SI se cumple, el Robot girar en un sentido. Y la segunda es para cuando la condicin de comparacin NO se cumple, el Robot girar en un sentido.

    Conclusiones:

    1. En algunos casos, uno de los principales obstculos es predecir su comportamiento, ya que reside en el hardware (Plataforma mvil, sensores, y algoritmo) interactuando con el entorno.

  • 2. Se logra una buena fidelidad de movimiento utilizando el algoritmo de campos potenciales artificiales para resolver la trayectoria que debe seguir el Robot a su punto final, debido a os clculos realizados con los sensores de Rotacin.

    3. Se podra afinar la trayectoria si se lograran sacar muchos ms datos con pasos AD ms pequeos, y si se lograra implementar un control con PID

    4. Se podran utilizar entornos como MatLab, para realizar las simulaciones de las trayectorias y realizar los clculos muchos ms precisos.