proyecto y estudio de control - impresionado...el tema que trata esta investigación es la...

15
Proyecto y estudio de control de vehículos con aplicaciones informáticas

Upload: others

Post on 21-Apr-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

Proyecto y estudio de

control de vehículos con

aplicaciones informáticas

Page 2: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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
Page 3: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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

Page 4: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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

Page 5: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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.

Page 6: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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.

Page 7: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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.

Page 8: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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

Page 9: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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]

Page 10: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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 )

Page 11: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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.

Page 12: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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 )

Page 13: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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.

Page 14: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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.

Page 15: PROYECTO Y ESTUDIO DE CONTROL - impresionado...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

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 )