3.9. Tarjeta principal
4.4.3. Programa de evasión de obstáculos
El programa creado para el cálculo matemático sobre un PIC 18F452 fue editado bajo el entorno de programación MikroBasic de MikroElectronica, este software de programación cuenta con una gran cantidad de librerías útiles que facilitan la edición de programas para los PICs de Microchip. La librería matemática y la capacidad de realizar cálculos con datos decimales fueron las principales características para la elección de este software.
El método del campo de fuerzas virtuales (VFF)
Para la evasión de obstáculos se implementó la teoría del Campo de Fuerzas Virtuales descrita por Borenstein J. (3), con esta técnica el robot tiene que viajar hacia un objetivo, que ejerce una fuerza atractiva sobre él, simulando un tirón gravitatorio, en nuestro caso el punto determinado por las coordenadas de latitud y longitud.
Esta fuerza es mayor, cuanto más lejos esté el robot del objetivo, la dirección de la fuerza de atracción está determinada por el rumbo. Sin embargo no es esta la única fuerza que actúa sobre el robot. Puesto que el fin último de esta técnica es evitar los obstáculos más cercanos al móvil, estos generan una fuerza repulsiva sobre el robot y es mayor cuanto más cerca está de éste.
La atracción y repulsión son modeladas como vectores que representan fuerzas virtuales a las que se ve sometido el robot y poseen una magnitud y un ángulo relativo al robot mismo. Así el movimiento del robot se ve gobernado por la suma vectorial de todas las fuerzas que afectan al robot. Esta técnica garantiza el alejarse de los obstáculos y recuperar el rumbo hacia el objetivo una vez se han superado éstos.
Al hacer un barrido de mediciones de distancia con los sensores de ultrasonido es posible encontrar obstáculos en algunas posiciones o no encontrar ninguno en absoluto, caso en el cual el robot no experimenta repulsión. En el caso de encontrar un obstáculo hacia un determinado ángulo, el robot “siente” una fuerza en la misma dirección pero en sentido contrario, cuya magnitud depende de la distancia medida. En caso de encontrar varios obstáculos al hacer el barrido, todas las fuerzas se suman vectorialmente para obtener un vector repulsivo resultante (Figura IV.14).
Figura IV.14: Campo de fuerzas repulsivas generadas por la presencia de obstáculos en el área de trabajo del robot, Borenstein J. (3).
Como sólo se dispone del ángulo relativo al robot pero no se conoce a qué distancia se encuentra la meta, se da a esta fuerza un valor constante en magnitud. Entonces, durante el movimiento del robot, se computa continuamente la sumatoria vectorial que permite obtener la dirección deseada de movimiento para evitar los obstáculos, teniendo en cuenta en todo momento la meta a alcanzar.
4.5. Calculo del rumbo (Vector Fuerza Atracción)
El rumbo es el ángulo formado por la línea que une el punto de partida y el destino con respecto al polo norte como es mostrado en la figura IV.15, el robot debe seguir este ángulo para alcanzar un objetivo especifico, dadas sus coordenadas geográficas (latitud y longitud). El tipo de navegación utilizado es la navegación loxodrómica.
Se denomina loxodrómica, a la línea que une dos puntos cualesquiera de la superficie terrestre cortando a todos los meridianos con el mismo ángulo SOUTHWINGS (27)
manteniendo el mismo rumbo. En el proceso
distancias menores a 600 millas náuticas y latitudes menores de 60º, utilizando fórmulas que consideran diferencia de latitud, apartamiento, diferencia de longitud, que se basa en la resolución de un triángulo rectángulo a través del u
Figura IV.16: Triángulo formado por el punto de salida, llegada y el polo norte, SOUTHWINGS (28). Figura IV.15: Determinación del rumbo, Chinea (6).
Se denomina loxodrómica, a la línea que une dos puntos cualesquiera de la superficie terrestre cortando a todos los meridianos con el mismo ángulo SOUTHWINGS (27). La loxodrómica, por tanto, es fácil de seguir manteniendo el mismo rumbo. En el proceso de cálculo se asumen distancias menores a 600 millas náuticas y latitudes menores de 60º, utilizando fórmulas que consideran diferencia de latitud, apartamiento, diferencia de longitud, que se basa en la resolución de un triángulo rectángulo a través del uso de trigonometría plana (figura IV.16).
Figura IV.16: Triángulo formado por el punto de salida, llegada y el polo norte, SOUTHWINGS (28).
Se denomina loxodrómica, a la línea que une dos puntos cualesquiera de la superficie terrestre cortando a todos los meridianos con el mismo ángulo, . La loxodrómica, por tanto, es fácil de seguir de cálculo se asumen distancias menores a 600 millas náuticas y latitudes menores de 60º, utilizando fórmulas que consideran diferencia de latitud, apartamiento, diferencia de longitud, que se basa en la resolución de un triángulo
so de trigonometría plana (figura IV.16).
El cálculo del rumbo es realizado mediante las siguientes formulas
ℓ = % ∗
cos! (4.1)
* = % ∗
sen! (4.2)
= - ± ℓ (4.3)
Latitud media en el mismo hemisferio
= 1 + 22
(4.4)
Latitud media en distinto hemisferio
= 1 − 22
(4.5)
0 = * ÷ cos (4.6)
3 = 3- ± 0 (4.7)
∅ = 60(*÷ ℓ) (4.8)
Donde: PS = Punto de salida PL = Punto de Llegada LS = Latitud de Salida GS = Longitud de Salida LL = Latitud de Llegada GL = Longitud de LlegadaD = Distancia navegada en Millas Náuticas. RV = Rumbo verdadero en grados
ℓℓℓℓ = Diferencia de Latitud; representa la diferencia, en minutos o grados de latitud, hacia el N o hacia el S, entre el PS y el PL.
Signos diferentes entre LS y “l”, se restan y se conserva el del mayor para la LL.
Signos iguales entre LS y “l”, se suman y se conserva el del mayor para la LL.
Ap = Apartamiento; representa la distancia en MN, hacia el E o W, entre el PS y PL.
Se usa solo en millas náuticas, independiente de su magnitud y nunca se convierte a grados de Longitud. Su signo E o W es función del RV.
Lm = Latitud media; es el promedio entre LS y LL
g = Diferencia de Longitud; representa la diferencia, en minutos o grados de longitud, entre el PS y el PL. Adopta el mismo signo del ap.
Signos diferentes entre GS y g, se restan y se conserva el del mayor para la GL.
Signos iguales entre GS y “g”, se suman y se conserva el del mayor para la GL.
El proceso de cálculo es realizado en el PIC 18F452 (figura IV.17) a través de la función “rumbo” Anexo 2, el valor obtenido determina el ángulo que el robot debe seguir por medio de la brújula digital para alcanzar el destino, además este ángulo determina la dirección del vector fuerza de atracción necesaria para el algoritmo VFF.