PROYECTO Y ESTUDIO DE CONTROL - impresionado...El tema que trata esta investigación es la...
Transcript of PROYECTO Y ESTUDIO DE CONTROL - impresionado...El tema que trata esta investigación es la...
Proyecto y estudio de
control de vehículos con
aplicaciones informáticas
Proyecto y estudio de control de vehículos con aplicaciones informáticas
3
0.- Prólogo.................................................................................................................................. 4
1.- Introducción .......................................................................................................................... 4
1.1.-El vehículo ...................................................................................................................... 5
1.2.-Planificar una trayectoria ................................................................................................ 6
1.3.-Limitaciones.................................................................................................................... 6
2.-Sistema de navegación........................................................................................................... 7
2.1.-Introducción al problema ................................................................................................ 7
2.2.- Generadores de trayectorias........................................................................................... 8
2.2.1.-Generador de trayectoria tramo tipo 1 ................................................................... 10
2.2.2.-Generador de trayectoria tramo tipo 2 ................................................................... 12
2.2.3.-Generador de trayectoria tramo tipo 3 ................................................................... 15
2.2.4.-Generador de trayectoria tramo tipo 4 ................................................................... 17
2.2.5.-Generador de trayectoria tramo tipo 5 ................................................................... 19
2.2.6.-Generador de trayectoria tramo tipo 6 ................................................................... 25
2.2.7.-Generador de trayectoria tramo tipo 7 ................................................................... 31
2.2.8.-Generador de trayectoria tramo tipo 8 ................................................................... 37
2.2.9.-Generador de trayectoria tramo tipo 9 ................................................................... 43
2.2.10.-Generador de trayectoria tramo tipo 10 ............................................................... 49
2.2.11.-Generador de trayectoria tramo tipo 11 ............................................................... 55
2.2.12.-Generador de trayectoria tramo tipo 12 ............................................................... 62
2.3.-Señal de Referencia Theta Deseada.............................................................................. 68
3.-Modelo completo del vehículo. Pruebas.............................................................................. 72
3.1.- Modelo vehículo con carretera 1.................................................................................. 72
3.1.1.- Diseño de la función “dame_tramo” para la carretera 1. ...................................... 72
3.1.2.- Diseño modelo completo en Matlab ..................................................................... 75
3.1.3.- Pruebas modelo completo con carretera 1 ............................................................ 78
3.2.- Modelo vehículo con carretera 2.................................................................................. 89
3.2.1.- Diseño de la función “dame_tramo2” para la carretera 2 ..................................... 89
3.2.2.- Diseño modelo completo en Matlab ..................................................................... 91
3.2.3.- Pruebas modelo completo con carretera 2 ............................................................ 94
4. Futuras líneas de trabajo y conclusiones ............................................................................ 102
5.- Bibliografía ....................................................................................................................... 103
Proyecto y estudio de control de vehículos con aplicaciones informáticas
4
0.- Prólogo
El tema que trata esta investigación es la aplicación de los programas de simulación y control
para construir sistemas de navegación para vehículos. El alcance de esta investigación será
diseñar un sistema de navegación, que se implementará en la aplicación informática Matlab,
que consiga que el vehículo consiga moverse autónomamente por la carretera.
1.- Introducción
El automóvil es uno de los objetos que mejor representa la evolución de la humanidad durante
el siglo XX. La evolución ha sido notable desde aquellos primeros vehículos empujados por
la fuerza de motores de vapor a los más modernos vehículos que se mueven por energía solar.
Pero todavía hay algo con lo que soñaban hace muchos años nuestros antepasados y hoy en
día aún no se ha podido realizar. Hace unos años se hicieron películas en las que podíamos
ver a principios de siglo XXI coches que ya no andaban sobre el suelo y se conducían solos.
El objetivo de este trabajo de investigación es abordar el tema de la conducción automática.
Conducir es algo que hacen la mayor parte de las personas todos los días y además conducir
conlleva el riesgo de las imprecisiones del ser humano. Cualquier distracción, dormirnos al
volante, conducir bajo los efectos del alcohol puede traer consecuencias muy graves, siendo
los accidentes de tráfico una de las principales causas de mortalidad en los países
desarrollados. Por ello la idea de la conducción automática, además del confort de no tener
que conducir, podría reducir considerablemente el número de víctimas que se dejan cada año
su vida en las carreteras.
Pero no ha sido hasta los últimos años con el gran auge de la informática cuando se ha
empezado a plantear seriamente el tema de la conducción automática. Uno de las principales
aplicaciones de la visualización por ordenador es el guiado de vehículos autónomos. Mediante
la visualización un vehículo puede observar su entorno, analizarlo y moverse por él. En
espacios cerrados se ha llevado cabo con buenos resultados, pero sacar un vehículo de estos a
espacios abiertos hoy en día es algo prácticamente inviable, debido a la gran cantidad de
Proyecto y estudio de control de vehículos con aplicaciones informáticas
5
información que debería procesar (imaginar para ello el tráfico de las calles de una gran
ciudad). Por ello estos vehículos hoy en día sólo están funcionando en lugares cerrados, en las
que pueden controlar todas las variables de su alrededor, como puede ser en cadenas de
montajes, terminales de mercancías y algunos tipos de transportes públicos. También se usan
en labores en las que es complicado, por el riesgo, enviar a un ser humano para su
conducción, como pueden ser labores de espionaje, misiones de guerra y también en la
exploración espacial.
Por todo ello se puede pensar que todavía tardaremos algunos años más en que esto se lleve a
cabo en nuestras calles, aunque el avance en los últimos años ha sido bastante grande. De
hecho muchos coches empiezan ya a incorporar ordenadores de abordo con sistemas de
navegación que nos indican la mejor ruta para llegar a un destino.
Uno de los proyectos de este tipo que hoy en día están funcionando es el proyecto AURORA.
Este proyecto surgió en 1994 como un vehículo autónomo para la fumigación de
invernaderos. Su desarrollo y puesta en marcha fue un éxito y hoy en día incorpora nuevas
tecnologías como GPS y es capaz de subir y bajar escaleras.
1.1.-El vehículo
Para la realización de este trabajo de investigación se ha optado por utilizar un vehículo
triciclo eléctrico sencillo. Este vehículo tiene un comportamiento físico que ha sido modelado
mediante ecuaciones matemáticas. A partir de estas ecuaciones matemáticas se generó lo que
es el modelo matemático del coche.
Este modelo ha sido implementado mediante Simulink, que es una herramienta de Matlab. El
vehículo dispone de un motor eléctrico el cual también ha sido modelado y unido al modelo
del vehículo.
El vehículo mas el motor conforman el modelo del coche. Queremos que el coche se mueva a
la velocidad que deseamos por los circuitos que establezcamos. Por ello también se ha
desarrollado un controlador que controle la velocidad del motor del vehículo y otro para la
orientación del vehículo. Estos controladores se han desarrollado usando un tipo de
controlador llamado PID, muy usado en la ingeniería industrial.
Proyecto y estudio de control de vehículos con aplicaciones informáticas
6
1.2.-Planificar una trayectoria
Una trayectoria es un camino entre dos puntos: un punto inicial y un punto final. La idea de
este trabajo es que el vehículo que hemos modelado sea capaz de seguir una trayectoria, es
decir que salga de un origen y llegue a un destino por un camino predefinido.
La tarea de la búsqueda de la trayectoria se puede realizar de dos modos:
• Métodos globales: dibujan el camino buscado dentro de un grafo.
• Métodos locales: son procedimientos de generación y prueba, también conocidos
como procedimientos orientados a la trayectoria.
En este trabajo de investigación usaremos un método local. La idea es que el vehículo que en
un momento dado se encuentra en un punto se desplace al siguiente punto dentro de esa
trayectoria. Para ello el vehículo debe conocer el entorno por el que se mueve. La
determinación del siguiente punto de la trayectoria no es algo claro, sobre todo si el coche en
un momento dado se encuentra fuera de esa trayectoria. Este es uno de los principales
problemas que surgirán en este trabajo.
1.3.-Limitaciones
Está claro que este trabajo es una simplificación del problema del movimiento del vehículo
autónomo. Para ello usamos un vehículo eléctrico sencillo (que sería posible construirlo en un
laboratorio de robótica) en vez de un automóvil de calle que tiene infinidad de variables más
que controlar y cuyo modelo no sería abordable en un trabajo de investigación de este tipo.
Nuestro vehículo posee las siguientes restricciones.
• El modelo del coche se ha reducido al de un vehículo que posee una masa y una
dirección para girar a izquierda y derecha.
• La rueda del vehículo tiene un radio de giro máximo y mínimo, con ello evitamos
que pueda realizar desplazamientos laterales.
• El vehículo no dispone de marcha atrás, con lo cual sólo puede desplazarse hacia
delante.
Proyecto y estudio de control de vehículos con aplicaciones informáticas
7
• El modelo del vehículo es plano, es decir, no tiene altura. De esta manera los
cálculos matemáticos se simplifican enormemente al tener que calcular sólo sobre
dos planos.
• El vehículo dispone de un motor eléctrico, que es el que controlará la velocidad
aumentado y disminuyendo sus revoluciones por minuto.
• La carretera como tal no existe, sólo existe la trayectoria que debe seguir el
vehículo.
• Suponemos que el vehículo es capaz, de a partir de una posición, conocer la
siguiente posición a alcanzar.
• El coche circulará solo por la carretera evitando así las colisiones con otros
vehículos u otros obstáculos que se pudieran encontrar en la carretera.
La idea de este trabajo es que su concepción y diseño permita la implementación en un
laboratorio de robótica.
2.-Sistema de navegación
2.1.-Introducción al problema
Disponemos de un modelo de vehículo con control y de un modelo de carreteras definido en
Matlab, pero todavía no tenemos nada para hacer interactuar a ambos entre sí y que el
vehículo se pueda mover de forma autónoma en los circuitos que diseñemos.
Existen muchas maneras basadas en la visualización para que el coche pueda reconocer la
carretera y todos los obstáculos que hay en ésta, procesarlos mediante complejos algoritmos
de procesamiento de imágenes y generar una respuesta en base al resultado de dicho
procesamiento.
No obstante, como nuestro modelo de coche no incluye sensores, tendremos que desarrollar
otra solución para el problema.
Para ello el coche llevará un “mapa” de la carretera, y tendrá que saber en que situación de
esta está y cual deberá ser el siguiente punto a alcanzar.
Proyecto y estudio de control de vehículos con aplicaciones informáticas
8
El objetivo del sistema de navegación es que el coche sea capaz de seguir la trayectoria que le
pasemos a la máxima velocidad que le permita su controlador evitando que haya situaciones
en que aparezca aceleración centrífuga y el coche abandone la trayectoria señalada y que si la
abandona sea capaz de regresar por si solo a la trayectoria buena.
Resumiendo lo que el sistema de navegación debe conseguir son tres cosas:
� 1º obtener la información de la posición actual del vehículo en el plano (x,y)
� 2º a partir de la posición actual del vehículo encontrar la siguiente posición a la
que deberá pasar (xnext, ynext)
� 3º conocida la posición actual (x,y) y la siguiente posición a llegar (xnext ,
ynext), generar la acción necesaria para que el vehículo alcance esa nueva
posición.
La primera función (x,y) se puede obtener fácilmente del modelo del coche, pero para la
segunda no tenemos nada que nos la pueda generar. Para ello deberemos construir
generadores de trayectorias. Como tenemos 6 tipos de tramos y estos tramos pueden ser
recorridos en cualquiera de los dos sentidos, deberemos construir 12 generadores de
trayectoria. Estos generadores necesitarán leer algunos datos de la carretera para poder
realizar su acción, por ejemplo las de las curvas será necesario conocer la posición del centro
de la circunferencia y el valor del radio, y de las rectas bastará con saber el valor constante.
Al escoger esta solución basada en tramos hemos conseguido dividir el problema en varios
sub-problemas mucho más pequeños y sencillos de resolver. Uniendo estos 12 tipos de tramos
de la manera que queramos y tantas veces como queramos podremos generar muchísimos
tipos de carreteras. Otra condición para cada carretera con sistema de navegación que
creemos, será que necesitará una función que indique al sistema en que tramo se encuentra el
vehículo para que así pueda actuar el generador asociado a dicho tramo.
2.2.- Generadores de trayectorias
La idea es crear circuitos con todos los tipos de tramos. A partir de la posición (x,y) del coche
(que la podemos obtener del modelo de éste) podremos conocer en que tramo del circuito se
encuentra el vehículo. Y conociendo el tramo en el que se encuentra pasará a actuar sobre el
Proyecto y estudio de control de vehículos con aplicaciones informáticas
9
modelo del coche el generador de trayectorias de dicho tramo, así hasta que salga del tramo y
pase a otro.
Dentro de cada tramo curvo tendremos dos posibles situaciones a controlar: que el vehículo
vaya por la parte exterior de la trayectoria o bien vaya por la parte interior. En ambas
situaciones el vehículo no sólo tiene que encontrar las siguiente posición (xnext , ynext), sino
que además debe corregir la posición del vehículo (x , y) para que continúe moviéndose por
dicha trayectoria.
La manera que tenemos de saber si el coche esta por fuera o dentro de la curva es a partir del
radio de dicha curva. Si la distancia del coche al centro es mayor que el radio entonces el
coche estará en una posición exterior a la curva. Si es menor entonces estará en el interior de
la curva. El algoritmo es el siguiente:
Si ( ) ( )( ) RcCyyCxx ≥−+− 22 entonces
posición vehículo exterior a curva
sino
posición vehículo interior a curva
fin
El diagrama en bloques creado mediante simulink que implementa dicho algoritmo es el
siguiente:
Figura [2.1]
Proyecto y estudio de control de vehículos con aplicaciones informáticas
10
Diagrama dentro-fuera de la curva.
Nos devolverá si la posición (x,y) es interior o exterior a la curva de radio Rc y centro en (Cx
, Cy). Encapsulando esto en un bloque nos queda:
Figura [2.2]
Bloque dentro-fuera de la curva.
Una vez diseñado este bloque ya podemos pasar a diseñar uno a uno todos nuestros tipos de
tramos.
2.2.1.-Generador de trayectoria tramo tipo 1
Vamos a llamar tramo de tipo 1 a la recta horizontal que sigue el sentido de izquierda a
derecha:
Figura [2.3]
Tramo tipo 1.
( inicio, a ) ( final, a )
( x , y )
( x + paso, ynext )
Proyecto y estudio de control de vehículos con aplicaciones informáticas
11
Al ser una recta lo que nos interesa es avanzar un paso cada vez, para ello bastará con
aumentar la coordenada x en un paso:
xnext = x + paso
Luego también tenemos que tener en cuenta si el vehículo se mueve sobre la trayectoria o
bien está por fuera de ella. En la figura se puede observar que en primer lugar el vehículo se
encuentra fuera de la trayectoria, y en el siguiente paso vuelve a la trayectoria, ha corregido el
valor de y. En el siguiente paso, una vez que ya se encuentra sobre la trayectoria, lo único que
hace es avanzar la x en un paso. Esta es la manera en la que va a funcionar nuestro generador
de trayectorias para el tramo 1. El algoritmo para corregir la y es el siguiente:
Si ( y == a ) entonces
-- el vehículo se encuentra sobre la carretera
ynext = y
Sino
-- el vehículo no se encuentra sobre la carretera
ynext = a
Fin
Implementado todo esto en Simulink obtenemos lo siguiente:
Figura [2.4]
Diagrama tramo tipo 1.
Proyecto y estudio de control de vehículos con aplicaciones informáticas
12
Figura [2.5]
Bloque tramo tipo 1.
Este bloque nos devuelve la posición (xnext , ynext) siguiente que deberá alcanzar el
vehículo.
2.2.2.-Generador de trayectoria tramo tipo 2
Vamos a llamar tramo de tipo 2 a la recta horizontal que sigue el sentido de derecha a
izquierda:
Figura [2.6]
Tramo tipo 2
Al ser una recta lo que nos interesa es avanzar un paso cada vez, para ello bastará con
disminuir la coordenada x en un paso:
xnext = x - paso
Luego también tenemos que tener en cuenta si el vehículo se mueve sobre la trayectoria o
bien está por fuera de ella. En la figura se puede observar que en primer lugar el vehículo se
encuentra fuera de la trayectoria, y en el siguiente paso vuelve a la trayectoria, ha corregido el
( final, a ) ( inicio, a ) ( x , y )
( xnext - paso, y )
Proyecto y estudio de control de vehículos con aplicaciones informáticas
13
valor de y. En el siguiente paso, una vez que ya se encuentra sobre la trayectoria, lo único que
hace es disminuir la x en un paso. Esta es la manera en la que va a funcionar nuestro
generador de trayectorias para el tramo 2. El algoritmo para corregir la y es el siguiente:
Si ( y == a ) entonces
-- el vehículo se encuentra sobre la carretera
ynext = y
Sino
-- el vehículo no se encuentra sobre la carretera
ynext = a
Fin
Implementado todo esto en Simulink obtenemos lo siguiente:
Figura [2.7]
Diagrama tramo tipo 2.
Proyecto y estudio de control de vehículos con aplicaciones informáticas
14
Figura[ 2.8]
Bloque tramo tipo 2.
Este bloque nos devuelve la posición (xnext , ynext) siguiente que deberá alcanzar el
vehículo.
Proyecto y estudio de control de vehículos con aplicaciones informáticas
15
2.2.3.-Generador de trayectoria tramo tipo 3 Vamos a llamar tramo de tipo 3 a la recta vertical que sigue el sentido de abajo a arriba:
Figura [2.9]
Tramo tipo 3
Al ser una recta lo que nos interesa es avanzar un paso cada vez, para ello bastará con
aumentar la coordenada y en un paso:
ynext = y + paso
Luego también tenemos que tener en cuenta si el vehículo se mueve sobre la trayectoria o
bien está por fuera de ella. En la figura se puede observar que en primer lugar el vehículo se
encuentra fuera de la trayectoria, y en el siguiente paso vuelve a la trayectoria, ha corregido el
valor de x. En el siguiente paso, una vez que ya se encuentra sobre la trayectoria, lo único que
hace es avanzar la y en un paso. Esta es la manera en la que va a funcionar nuestro generador
de trayectorias para el tramo 3. El algoritmo para corregir la x es el siguiente:
Si ( x == b ) entonces
-- el vehículo se encuentra sobre la carretera
xnext = x
Sino
-- el vehículo no se encuentra sobre la carretera
xnext = b
Fin
Implementado todo esto en Simulink obtenemos lo siguiente:
( inicio, b )
( final, b )
( x , y )
( xnext , y + paso )