Gutierrez Suarez Bryan Algoritmo Trayectorias Robot Movil PDF
Gutierrez Suarez Bryan Algoritmo Trayectorias Robot Movil PDF
Gutierrez Suarez Bryan Algoritmo Trayectorias Robot Movil PDF
La robótica móvil ha buscado desde sus inicios la autonomía móvil en su desplazamiento hacia
sus objetivos. Conforme fue evolucionando esta área de la robótica se desarrollaron diversas
metodologías para hacer más eficiente el movimiento autónomo de los robots. Gran cantidad
de estas metodologías se desarrollaron para movilizar al robot en un entorno con obstáculos no
estables. Se obtuvieron buenos resultados a costa de la alta complejidad de sus algoritmos, así
como la gran cantidad de sensores implementados en el robot y entorno. La presente tesis
busca reducir la complejidad de algoritmos para calcular las trayectorias más cortas hacia el
objetivo de recorrido de un robot móvil en un entorno con obstáculos estables (entorno
estructurado).
Para la solución del problema se elige trabajar con un robot móvil de tracción diferencial. Se
elaboró un programa en lenguaje C++/CLI con una interfaz gráfica de usuario (IGU) para
poder, en esta, detallar información sobre el entorno y la posición final del robot y, también,
para habilitar la comunicación usuario-robot. Posteriormente en el algoritmo principal del
programa se hacen cálculos matemáticos para determinar la trayectoria que es más corta a
recorrer con las condiciones especificadas previamente en la IGU. Con la trayectoria obtenida
se generan las señales de control que son enviadas al robot móvil para que recorra dicha
trayectoria.
Se concluye que las velocidades a las que se desempeñan los motores deben ser corregidas
para disminuir el error de precisión en las pruebas experimentales del sistema. Finalmente, la
precisión del sistema depende de la longitud y forma de las trayectorias a seguir.
ÍNDICE
INTRODUCCIÓN
curvas…………………………………………………………….……...19
carga…………………………………………………………….…..….30
CONCLUSIONES…………………………………………………………………………….44
RECOMENDACIONES………………………………………………………………………45
BIBLIOGRAFÍA……………………………………………………………………………….46
INTRODUCCIÓN:
Es entonces que se requiere que todos estos robots, aparte de realizar eficientemente
su función principal, sean lo suficientemente autónomos e inteligentes para movilizarse
en su campo de operación de manera segura y eficiente, esquivando obstáculos y
haciendo recorridos cortos en sus tareas. Para esto, posteriormente se diseñaron
diferentes sistemas para crear un robot autónomo y con inteligencia de resolver
problemas de desplazamiento en áreas estructuradas y no estructuradas. Para la
robótica móvil se han desarrollado múltiples metodologías de diseño de sistemas para
la movilización eficaz y autónoma de los robots móviles para diversas aplicaciones.
1
CAPÍTULO 1: LOS ROBOTS MÓVILES DE TRACCIÓN DIFERENCIAL
La robótica ha sido ampliamente aplicada a las industrias debido a que presenta las
siguientes ventajas: aumento de la productividad, flexibilidad, alta calidad y mejora de
la seguridad. Los robots móviles aparecen, inicialmente, como exploradores y
transportadores en donde la mano de obra humana corre algún riesgo. En un inicio
estos robots eran tele-operados para llegar a los objetivos indicados pero con el
desarrollo de la robótica se han logrado implementar sistemas de navegación para los
robots móviles de manera autónoma [1].
2
Figura 1.2: Configuración Ackerman
3
conectado a cada rueda posee acoplado un codificador rotativo (encoder) para poder
controlar la posición de estos robots mediante cálculos odométricos. Se entiende por
odometría a la técnica que tiene por objetivo estimar la posición y orientación de un
móvil a partir del número de vueltas dadas por sus ruedas ( obtenidas por el número
de cuentas encoder del motor).
El modelo cinemático del robot móvil depende de las velocidades de cada rueda a las
cuales denominaremos Vl y Vr como se observa en la figura 1.5. Debido a que el
direccionamiento y velocidad del robot móvil está sujeto a las velocidades de sus
ruedas se genera un momento angular con ω para cada velocidad constante de Vl y
Vr. Este momento angular describe el radio de curvatura de arco que está siguiendo el
robot en dicho instante. El modelo cinemático del robot móvil con respecto a las
velocidades de sus ruedas se muestra en la figura 1.5 [2].
4
Figura 1.5: Modelo cinemático de la configuración diferencial
(1.1)
(1.2)
( )
(1.3)
( )
Se puede acotar de las ecuaciones anteriores que cuando Vl y Vr son diferentes entre
sí el robot móvil sigue un arco de circunferencia (ecuaciones 1.2 y 1.3). Cuando Vl y Vr
son idénticos el momento angular ω será igual a cero (ver ecuación 1.1), por
consiguiente, el robot avanzará en línea recta. Cuando Vl= -Vr el robot girará sobre su
propio eje en sentido antihorario.
5
(1.4)
(1.5)
(1.6)
( ) (1.7)
( ) (1.8)
( ) (1.9)
6
CAPÍTULO 2: ALGORITMO DE GENERACIÓN DE TRAYECTORIAS PARA LA
SOLUCIÓN DEL PROBLEMA
Desde la aparición de los robots móviles, sus diseños fueron básicamente para
operaciones en las que el ser humano ponía en peligro su integridad física.
Inicialmente fueron diseñados para ser guiados mediante distancias remotas y fueron
catalogados como robots tele-operados. Por ejemplo, los robots usados por la NASA
son controlados por un tele-operador vía radio en Marte [4].
La robótica móvil actual necesita de sistemas autónomos del movimiento de los robots
[5], sistemas con los cuales el robot pueda ubicarse en un entorno y decidir una vía de
movilización segura y eficiente. Para lograr esos objetivos se está usando sistemas
inteligentes que utilizan redes neuronales artificiales. Se predice que en un futuro los
automóviles tendrán incorporados estos sistemas con los cuales se facilitaría al
conductor llegar al destino utilizando un sistema generador y seguidor de trayectorias
en un espacio determinado eficientemente y sin colisiones.
7
metodología es muy útil en espacios donde los cuerpos obstáculos no son variables.
Por otro lado existen los sistemas en tiempo real, los cuales están en constante
actualización de los datos leídos por sus sensores.
Entre los sistemas en tiempo real están los sistemas inteligentes de navegación de
robots móviles, los cuales están basados en el uso de redes neuronales artificiales
(RNA) (figura 2.1). Las RNA funcionan con el principio de tratar de imitar en lo mayor
posible a los sistemas nerviosos animales, es decir, consta de varias entradas
(sensores), las cuales son transmitidas por una serie de ”n” capas neuronales hacia
una sola salida o respuesta [6].
8
Las RNA le permitirán al robot móvil ubicarse en un espacio determinado tomando
como entradas las señales que le envían los sensores mediante el conocimiento de la
presencia de obstáculos y distancias a estos; esto le dará datos al robot para mapear
y evaluar el entorno en el que se encuentra [7].
Una vez que el robot tiene un conocimiento del espacio en el que se ubica, procederá
a realizar los cálculos para generar sus trayectorias en el espacio indicado. Este
proceso se realiza constantemente con una frecuencia determinada. Finalmente con la
dirección de movimiento elegida, el robot procederá a actuar y seguir la misma para
llegar a acercarse a su objetivo [8].
De manera similar está el robot PIONEER-1 (el cual regenera su trayectoria cuando
ocurren cambios en el entorno). Un ejemplo es el robot PIONEER-1 (figura 2.3) que
está equipado con siete sensores ultrasónicos distanciados en 15 ° (figura 2.4) [5].
9
el robot consigue información en tiempo real de su entorno y busca una salida para
llegar al punto objetivo [5].
Mediante los grafos de visibilidad se puede obtener la interconexión entre los puntos
de los obstáculos presentes en el mapa. Con esto al introducir el punto inicial y el final
se genera una ramificación de puntos de visibilidad desde el punto inicial, pasando por
los puntos de los polígonos hasta llegar al punto final. Así se obtiene una alta cantidad
de caminos a seguir y mediante el algoritmo se determina el camino más corto a
seguir. Recorre efectivamente el camino más corto hacia el final entre todos los
caminos disponibles pero la desventaja de este método es que el recorrido se hace
bordeando a los obstáculos presentes en el mapa lo cual disminuye el tiempo de
recorrido.
10
2.1.3. Síntesis sobre el asunto estudiado
11
2.2. Modelo teórico
La IGU será diseñada en Visual C++/CLI. Esta recibirá información del robot como la
posición inicial y su posición final (esta es introducida por el usuario). Asimismo en la
IGU el usuario tendrá la capacidad de ubicar gráficamente los obstáculos
(representados por circunferencias de radio definible) que el robot deberá esquivar
eventualmente. La generación de la trayectoria se realizará luego de la introducción de
la posición final y obstáculos en la interfaz. Los algoritmos matemáticos calcularán la
trayectoria y esta será mostrada en la IGU. El software programado generará las
señales de control luego de la selección de la trayectoria generada a seguir. Las
señales serán enviadas al microcontrolador del robot para que este pueda seguir la
trayectoria indicada.
El robot móvil constará de tres ruedas: dos accionadas por motores DC, y una última
posterior (ball caster) con la función de soporte. Para esta tarea se usará el micro-
controlador ATMEGA8 de la familia de microcontroladores AVR8 de Atmel. Los datos
generados por la IGU serán transmitidos mediante el puerto serial del computador
directamente al microcontrolador del robot, para que finalmente este siga el recorrido.
Las señales enviadas al robot constan básicamente de un arreglo de velocidades y
distancias para cada motor. Con estos datos recibidos, el micro-controlador generará
señales PWM (Pulse width modulation – Modulación por ancho de pulso) según el
arreglo de velocidades así como también controlará las cuentas del encoder para
controlar las distancias de desplazamiento. La PWM es una señal periódica con
frecuencia predeterminada que tiene como objetivo controlar la potencia de
dispositivos eléctricos mediante la variación de su ciclo de trabajo. En este caso
concreto se usa para el control de velocidades de motores.
12
El microcontrolador enviará las señales PWM al Puente H (driver del sistema). El
puente H está compuesto por un arreglo de transistores los cuales con señales lógicas
pueden controlar el sentido de giro o accionamiento de motores. El puente H usado es
dual (doble control) de la marca Toshiba.
13
2.3. Algoritmo de generación de trayectorias
14
INICIO
INGRESO DE DATOS:
i=0
NO ¿ANÁLISIS OBS
(i) OBSTRUYE Pi
CON Pf?
TRAZO GRÁFICO DE
CURVAS EN IGU SÍ
FIN
CÁLCULO DE PUNTOS
ADICIONALES DE
ACOMODAMIENTO DE CURVAS
Pi=T2
15
2.3.1 Detección de obstáculos y cálculo de los puntos de paso.
(2.1)
⃗⃗⃗⃗⃗⃗ (2.2)
⃗⃗⃗⃗⃗⃗⃗⃗⃗ (2.3)
⃗⃗⃗⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗
(2.4)
⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗
⃗⃗⃗⃗⃗⃗⃗⃗ (2.5)
⃗⃗⃗⃗⃗⃗⃗ (2.6)
‖⃗⃗⃗⃗⃗⃗⃗ ‖ (2.7)
16
Donde Pi es el punto inicial, Pf es el punto final y “d” es la distancia entre el centro del
obstáculo y el vector ⃗⃗⃗⃗⃗⃗⃗⃗⃗ . Si “d” es menor a R el programa automáticamente detecta
obstáculo en el camino, en caso contrario este obstáculo no será tomado en
consideración para el análisis de trayectorias.
Una vez resuelta esta condicional se procede a calcular los puntos de tangencia T1 y
T2 en la dirección designada. Se puede observar en la figura 2.9 un gráfico ilustrativo
para el cálculo del punto de tangencia T1. Las siguientes expresiones son las
necesarias para hallar el primer punto de tangencia.
17
( ⁄ ) (2.8)
‖→ ‖
√ (2.9)
⃗⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗
(2.10)
⃗{ ⃗⃗⃗⃗⃗⃗⃗ } (2.11)
El cálculo del punto T2 (punto tangencia entre la circunferencia y el punto final Pf) se
hará de manera similar con la diferencia del cambio del vector ⃗⃗⃗⃗⃗⃗ a ⃗⃗⃗⃗⃗⃗⃗⃗ (vector entre
el punto final Pf y el centro del obstáculo C). A continuación se muestra en la figura
2.10 un gráfico similar al anterior para explicar la obtención de las siguientes
expresiones:
( ) (2.12)
⁄‖→ ‖
√ (2.13)
⃗⃗⃗⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗⃗
(2.14)
18
⃗{ } (2.15)
⃗⃗⃗⃗⃗⃗⃗⃗
Una vez hallados los dos puntos de tangencia, T1 y T2, se han obtenido los puntos de
paso para la evasión del obstáculo, los cuales serán registrados en un vector de
programación del software como puntos de posición y vectores de dirección (estos
vectores indican la dirección del robot móvil en su paso por dicho punto).
Específicamente en este caso demostrativo se guarda los puntos de paso de la
siguiente manera:
Pi Pi
T1 T1
T2 T2
Pf T3
Para la presente aplicación se ha escogido que el robot móvil tenga una dirección
inicial hacia el eje Y positivo del plano coordenado con lo cual se sabe que Pi es igual
a (0;1) tomando en consideración que los vectores dirección son unitarios. El vector
unitario T1 tendrá la dirección del vector T1_Pi = T1-Pi y el vector T2 tendrá la
dirección del vector PfT2 = Pf-T2. Finalmente el vector T3 será igual al vector T2 en el
presente ejemplo analizado.
19
puntos consecutivos del vector de puntos de paso de la anterior fase. Se tienen los
siguientes casos:
Al cumplirse las anteriores dos condicionales (caso 1 y caso 2) entre dos puntos
consecutivos de los puntos de paso previamente hallados se procede a calcular cual
será el punto de inflexión (punto adicional) que une a los dos arcos de circunferencia
(uno cóncavo y el otro convexo, no necesariamente en ese orden) los cuales se unen
los dos puntos tratados inicialmente cumpliendo sus requerimientos de posición y
dirección. En la figura 2.13 se explica gráficamente el procedimiento para hallar el
punto de inflexión de los anteriores dos casos. Se utilizan las siguientes expresiones:
20
Figura 2.13: Gráfico para la ubicación del punto de inflexión Px
⃗ ⃗⃗⃗⃗⃗ (2.16)
⃗ ⃗⃗⃗⃗⃗ (2.17)
‖ ‖ ‖⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ ‖ (2.18)
√ ( ) ( ) (2.19)
| |
Donde,
( )
⃗ {⃗⃗⃗⃗⃗⃗
⃗⃗⃗⃗⃗ } ⃗ {⃗⃗⃗⃗⃗⃗
⃗⃗⃗⃗⃗ }
( )
⃗ {⃗⃗⃗⃗⃗⃗
⃗⃗⃗⃗⃗ } ⃗ {⃗⃗⃗⃗⃗⃗
⃗⃗⃗⃗⃗ }
21
Una vez hallado el punto de inflexión se procede a insertarlo en el vector de puntos de
paso de la fase anterior, posteriormente el vector de puntos de paso del tipo de la tabla
2.1 será modificado en un vector de tramos de la trayectoria. Este nuevo vector tiene
un número indeterminado de tramos los cuales consisten de un arco de circunferencia
o una recta que une dos puntos. Los parámetros de este nuevo tipo de vector son:
punto inicial, punto final, dirección inicial, dirección final, radio de arco de curvatura de
tramo y centro del arco de curvatura del tramo. En la tabla 2.2 se ilustra la composición
de este nuevo vector suponiendo una trayectoria con cuatro puntos de paso P1, P2,
P3 y P4 y sus respectivos radios y centros.
Tabla 2.2: Vector de almacenamiento de datos por tramos de trayectoria con tres tramos
1 P1 P2 P1 P2 R1 C1
2 P2 P3 P2 P3 R2 C2
3 P3 P4 P3 P4 R3 C3
22
Caso 4: ( (⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ )) ( (⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ ))
En los casos 3 y 4 así como en los dos primeros casos se procede a calcular un punto
adicional que asegure el suavizado de las curvas entre los dos puntos. En estos dos
casos las curvas que unirían a los puntos P1 y P2 son un arco de circunferencia más
una línea recta. En la figura 2.16 se observa un ejemplo del caso 4 del cual se pueden
deducir las expresiones para el cálculo del punto adicional en ambos casos.
⃗{ ⃗⃗⃗⃗⃗ } (2.20)
⃗⃗⃗⃗⃗⃗⃗⃗ (2.21)
23
( ⃗{ ⃗⃗⃗⃗⃗ } ) (⃗ { ⃗⃗⃗⃗⃗ }) (2.23)
⃗{ ⃗⃗⃗⃗⃗ } (2.24)
Con las anteriores expresiones se halla en primer lugar los valores de R y C para
posteriormente hallar Px. Es bastante frecuente, sobretodo en este proyecto, que Px
coincida con P2 con lo cual no habrá un punto adicional ni línea recta de tramo, sino
un solo arco de circunferencia de radio R y centro C que una ambos puntos.
En el caso 5 se presenta el caso más simple de todos puesto a que no hay que
realizar cálculos de puntos adicionales ni cálculos de si centro de arco de recorrido
debido a que en este caso el tramo es simplemente una línea recta entre ambos
puntos. Se procede a guardar estos puntos, vectores dirección de los mismos, radio y
centro del arco de recorrido como en los anteriores casos en el nuevo vector de
tramos. Debido a que este caso es excepción a su ausencia de arcos de
circunferencia, se le asignará valores al radio y al centro de circunferencia con “–1”
para posteriormente ser identificado como línea recta por el programa.
24
2.3.3 Trazo de las curvas
Esta fase del algoritmo es solamente gráfico debido a que el último vector de
tramos de la trayectoria (que será usado por el eventual algoritmo generador de
señales de control) ya se guardó en la segunda fase. Se toma cada tramo de este
vector y es enviado a una función en el VisualC++/CLI, la cual contiene el método de
la clase Graphics, método DrawArc, el cual recibe los parámetros de cada tramo para
dibujarlos y formar la trayectoria gráfica. En caso de recibir parámetro de centro y radio
iguales a -1 (caso de la línea recta) se utiliza el método DrawLine para el dibujado
línea.
25
CAPÍTULO 3: GENERACIÓN DE LAS SEÑALES DE CONTROL
26
Figura 3.1: Diagrama de flujo de la generación de señales de control
27
3.1 Obtención de distancias de recorrido de las ruedas por tramo
La figura 3.2 brinda una imagen clara del diseño del robot móvil. La distancia entre
ambas ruedas L es 0.2 metros. Las ruedas usadas son unas ruedas de silicona
comúnmente usadas en scooters y patines cotidianos, este material proporciona
buena fricción con el suelo con lo cual se evitan los posibles deslizamientos de ruedas.
El radio de estas ruedas R es 0.05 metros. La ecuación 3.1 muestra la relación entre
la distancia recorrida S en metros con el número de cuentas del encoder C. [9]
(3.1)
( )
28
3.1.2 Obtención de palabras de representación de distancias por tramos
De la figura 3.3 se puede obtener, por cada tramo, SL y SR, que son las distancias de
la rueda izquierda y derecha respectivamente. La obtención de distancias (en metros)
de ambas ruedas se deduce de las expresiones:
(3.2)
( )
(3.3)
( )
De donde “r” es el radio del arco de circunferencia del tramo, L es la distancia entre
las ruedas y α es el ángulo de recorrido del arco de tramo. El signo superior se tomará
si el recorrido es en dirección horaria o será el inferior en caso contrario. Del vector de
tramos obtenido del algoritmo anterior no se puede obtener directamente α, este valor
se deduce de dos datos de este vector los cuales son los vectores unitarios dirección
en los puntos P1 y P2 (P1 y P2). La siguiente ecuación muestra la obtención del valor
de α a partir del producto escalar de las normales de P1 y P2.
(⃗⃗⃗⃗⃗⃗
⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗
⃗⃗⃗⃗⃗ ) (3.4)
29
dentro de un campo cuadrado cartesiano de tres metros se decide representar a cada
distancia con palabras de datos (16 bits) con las cuales se obtienen distancias
máximas medibles de 32.99 metros, las cuales son útiles en el asunto de estudio.
Para que el robot móvil se desplace en cada tramo se necesita conocer las
velocidades con las que cada rueda debe girar en cada tramo para asegurar que se
siga la trayectoria designada. Para esto es necesario conocer el comportamiento de
cada uno de los motores. La tabla 3.1 muestra las características de los motores DC
utilizados
7.2 V
Voltaje Nominal
160rpm
Velocidad sin carga
1:52
Reducción
100 oz-in (7.2 kg-cm)
Torque
12" 20AWG
Cables de motor
12" 20AWG (+5V, Gnd, Canal A, Canal B)
Cables de encoder de cuadratura
624 Pulsos por revolución del eje
Resolución
6mm
Diámetro del eje
300mA
Corriente sin carga
2.0A
Máxima corriente (rotor bloqueado)
Las pruebas PWM de ambos motores frente a 256 valores diferentes de ciclo de
trabajo para obtener la gráfica de velocidades de ambos motores como se aprecia en
las figuras 3.4 y 3.5.
30
Figura 3.4: Gráfica Ciclo de trabajo vs. Velocidad de la rueda derecha
De las pruebas de PWM, en vacío (sin carga) y con carga de ambos motores,
realizadas se denota que la velocidad máxima que ambos motores pueden realizar es
de 0.75m/s (simultáneamente) y la mínima es 0.18m/s. Debido a que las velocidades
31
más altas aumentan los errores de precisión, para la presente aplicación se establece
que la velocidad máxima que cada rueda pueda desarrollar sea de 0.35 m/s.
Para obtener la velocidad que debe tener cada rueda por tramo se hace un análisis de
sentido de giro (horario u antihorario). Según sea el resultado de este análisis se
determina qué rueda lleva la velocidad más alta y con esto, mediante las ecuaciones
1.2 ó 1.3, se hallará de manera simple la velocidad de la rueda opuesta. A
continuación el análisis de sentido de giro basado en la figura 3.3.
( ⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ )
( ⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ )
Apreciable en la figura 3.6 se tiene la trama a enviar por el puerto serial. La trama está
subdividida en tramos (donde se almacenan los valores de velocidades y distancias de
ambas ruedas por tramos de la trayectoria) los cuales serán recibidos por el robot
32
móvil y una vez terminada la transmisión de todos los datos de la trayectoria, el robot
iniciará su movimiento. La conexión serial se configuró a 4800 baudios, 8bits de datos,
1 de parada, 1 bit de inicio y sin bit paridad.
33
CAPÍTULO 4: PRUEBAS DEL ALGORITMO Y RESULTADOS EXPERIMENTALES
34
Figura 4.1: Diagrama de flujo del programa del micro-controlador ATmega8
35
4.2 Pruebas del programa de generación y seguimiento de trayectorias.
Las tres pruebas a realizar son: trayectoria en línea recta, trayectoria hacia punto
diagonal y trayectoria frente a obstáculos. Las pruebas son medidas con una regla de
graduación en milímetros y los valores obtenidos son redondeados a centímetros.
En esta prueba se elige el punto final Pf (0,200cm) sin obstáculos. Esta prueba
consiste de un tramo recto como se puede apreciar en la IGU de la figura 4.2
36
Figura 4.3: Resultados de seguimiento de la prueba 1 con data de velocidades reales
37
Del programa se obtiene que la distancia total de recorrido es 200 cm. Las pruebas a
velocidades reales obtienen valores alejados hacia la izquierda del objetivo a
diferencia de los resultados con las velocidades mejoradas. En la tabla 4.1 se muestra
detalladamente los resultados de las pruebas así como el porcentaje de error obtenido
en cada prueba.
Tabla 4.1: Resultados de pruebas para trayectoria en línea recta. Unidades en centímetros
Prueba 1.1 Prueba 1.2 Prueba 1.3 Prueba 1.4 Prueba 1.5
X Y Δ X Y Δ X Y Δ X Y Δ X Y Δ
Programado 0 200 0 0 200 0 0 200 0 0 200 0 0 200 0
Real -28 200 28 -27 199 27.02 -32 200 -32 -22 201 22.02 -28 203 28.16
Error 14% Error 13.51% Error 16% Error 11% Error 14.08%
Mejorado -4 203 5 7 201 7.07 -6 201 6.08 -4 201 4.12 1 201 1.41
Error 2.5% Error 3.43 % Error 3.04% Error 2.06% Error 0.71%
El error se mide al comparar la diferencia de la distancia entre el punto de caída con el punto
ideal con la distancia total ideal que debe recorrer el robot móvil, obteniendo así el porcentaje
de error. El error de posicionamiento muestra que las pruebas mejoradas logran tener
un margen de error bastante bajo comparado con las pruebas de velocidades reales.
Debido a que la distancia de recorrido es 200cm y sólo hay un tramo el margen de
error mejorado se mantiene bajo.
38
4.2.2 Prueba 2: trayectoria hacia punto diagonal
En esta prueba se elige el punto final Pf (200cm, 200cm) sin obstáculos. Esta prueba
consiste de dos tramos como se puede apreciar en la IGU de la figura 4.5
39
Figura 4.7: Resultados de seguimiento de la prueba 2 con data de velocidades mejorada
Del programa se obtiene que la distancia total de recorrido es 304.24 cm. Las pruebas
a velocidades reales obtienen valores alejados hacia la izquierda del objetivo
nuevamente a diferencia de los resultados con las velocidades mejoradas. En la tabla
4.2 se muestra detalladamente los resultados de las pruebas así como el porcentaje
de error obtenido en cada prueba.
Prueba 2.1 Prueba 2.2 Prueba 2.3 Prueba 2.4 Prueba 2.5
X Y Δ X Y Δ X Y Δ X Y Δ X Y Δ
Programado 200 200 0 200 200 0 200 200 0 200 200 0 200 200 0
Real 154 249 67.2 149 251 72.13 160 245 60.2 143 252 77.14 156 245 62,94
Error 22.08% Error 23.7% Error 19.78% Error 25.35% Error 20.69%
Mejorado 201 203 3.16 197 205 5.83 204 196 5.66 193 213 14.77 200 204 4
Error 1.03% Error 1.92% Error 1.86% Error 4.75% Error 1.31%
40
Se denota de la tabla 4.2 que el error aumenta ligeramente con respecto a los datos
de la tabla 4.1 debido a la mayor longitud de recorrido y a que este presenta dos
tramos (el cambio de velocidades entre tramos puede inducir a pequeños errores).
En esta prueba se elige el punto final Pf (100cm, 100cm) con obstáculo con centro C
(70cm,70cm) y radio de 20cm. Esta prueba consiste de cuatro tramos como se puede
apreciar en la IGU de la figura 4.2.
41
Figura 4.9: Resultados de seguimiento de la prueba 3 con data de velocidades reales
42
Tabla 4.3: Resultados de pruebas para trayectoria con obstáculo. Unidades en centímetros
Prueba 3.1 Prueba 3.2 Prueba 3.3 Prueba 3.4 Prueba 3.5
X Y Δ X Y Δ X Y Δ X Y Δ X Y Δ
Programado 100 100 0 100 100 0 100 100 0 100 100 0 100 100 0
Real 81 125 31.4 84 121 26.4 80 123 30.48 88 118 21.63 77 126 34.7
Error 19.7% Error 16.5% Error 19.05% Error 13.52% Error 21.69%
Mejorado 97 104 5 96 108 8.94 99 103 3.16 99 106 6.08 97 99 3.16
Error 3.12% Error 5.59% Error 1.97% Error 3.8% Error 1.97%
Se puede comentar de los experimentos que las características físicas de cada motor
varían frente a fuerzas presentes en los experimentos. El motor izquierdo pierde
velocidad con respecto al derecho frente a cargas iguales distribuidas entre los
motores (peso del robot móvil) provocando así el desviamiento hacia la izquierda
notorias en todas las pruebas experimentales con parámetros reales (sin carga o en
vacío).
43
CONCLUSIONES
44
RECOMENDACIONES
5. Utilizar un sensor ultrasónico en la parte frontal del robot para detectar posibles
variantes (nuevos obstáculos) en el campo de movimiento. Luego el robot móvil
se detiene y reiniciará el cálculo de trayectorias desde aquel nuevo punto.
45
BIBLIOGRAFÍA
[6] Rios, Luis H.; Bueno, Maximilianoy Sanchez, Santiago. (2008). “Generación de
trayectorias para un robot móvil empleando redes neuronales”. Revista “Scientia et
Technica” Año XIV, Septiembre de 2008. Universidad Tecnológica de Pereira ISSN
0122-1701.
[7] Parhi, D., & Singh, M.. (2009). “Real-time navigational control of mobile robots
using an artificial neural network”. Proceedings of the Institution of Mechanical
Engineers: Part C Journal of Mechanical Engineering Science, 223(C7), 1713-
1725. Retrieved April 7, 2010, from ProQuest Science Journals. (Document
ID: 1847506221).
[8] Su, L., Luo, C., & Zhu, F. (2009). “Obtaining obstacle information by an
omnidirectional stereo vision system”. International Journal of Robotics & Automation,
24(3), 222-227. Retrieved from Computers & Applied Sciences Complete database.
46
[9] Hamidreza Chistas, ”Minimum Wheel-Rotation Paths for Differential Drive Mobile
Robots Among Piecewise Smooth Obstacles”
47