-
Arquitectura Cliente-Servidor, el proyecto exige la separación en tres partes:
- La aplicación QrNav, que puede ejecutarse en cualquier dispositivo iOS.
- El programa que controla al Amigobot (ServidorQrNav), es decir, que envía las órdenes al robot usando el API de
ARIA y que está implementado en una máquina Debian.
- Programa MJPG-Streamer, servidor que transmite el flujo imágenes a través de HTTP.
-
Diagrama de clases:
-
Protocolo de comunicación, se ha creado un protocolo propio para la comunicación constante
entre el servidor de imágenes, que se encuentra en el ordenador que controla el Amigobot, y el cliente iOS.
-
Algoritmo que gestiona la ejecución, se encarga de administrar todo lo que ocurre en la vista de los mandos. Entre sus funciones se encuentran:
- Mostrar las imágenes recibidas en pantalla.
- Decodificar el código QR de la imagen cuando sea necesario.
- Realizar el algoritmo de colocación para la obtención de los parámetros área y Pto.
-
Navegación QR, consiste en dirigir al robot mediante los controladores
desde la posición en la que se encuentra hasta la dirección de navegación (X, Y, Th) de manera autónoma. Dicha
navegación es llevada a cabo por un hilo y realizada en forma de L.
-
Controlador de avance, es un perfil de velocidad que mueve al robot en
los eje X o Y la distancia a recorrer, dividiéndola en tres fases:
- Fase de aceleración:
El robot va acelerando hasta la velocidad máxima
- Fase constante:
El robot se mueve a velocidad máxima
- Fase de deceleración:
El robot va decelerando hasta llegar a su destino
|
|
-
Controlador de giro, es un perfil de velocidad cuya función consiste en girar al robot hasta la orientación (Th) que recibe como parámetro y decidir si debe girar a la derecha o izquierda para llegar hasta ella. Tiene el mismo funcionamiento que el anterior pero difieren en que debe comprobar si debe el giro debe pasar por 180º y cómo realizarlo.
-
Colocación QR, consiste en colocar al robot en un posición centrada y a una distancia apropiada para poder leer el QR, mediante el área y punto medio del cuadrado rojo recibidos:
- Desplazar al robot hacia izquierda o derecha para centrar el cuadrado (Pto. Medio ϵ [240-400] píxeles)
- Acercar o alejar al robot para que se encuentra a una distancia entre 40-50 cm (Área ϵ [25000-40000] píxeles)