scieee AI-readable full text Open interactive document viewer

Control predictivo jerárquico del seguimiento de trayectorias para vehículos autónomos

Huertas Anisa, Manuel

Abstract

El trabajo que se va a mostrar a continuación consistirá en el modelado y simulación de un vehículo al que se le va a considerar una conducción autónoma. El objetivo principal será lograr las condiciones adecuadas de control para poder seguir una trayectoria dada. Desde hace años, diversos fabricantes del sector automovilístico y otros ámbitos centran parte de sus investigaciones en la automatización de diversos sistemas, entre las que se incluye poder ser capaces de generar una ruta y seguirla de manera independiente. Para cumplir esta finalidad, este trabajo se apoyará en dos métodos de seguimiento de trayectoria: el método Pure Pursuit y el método Stanley. A partir de ellos, se van a conseguir las referecias adecuadas de giro para nuestro vehículo. Se modelará la mecánica de nuestro vehículo para poder sintonizar el controlador que dominará las acciones del coche. Para la simulación, se usará MatLab, en el que se ejecutará un control en cascada y serán discutidos los resultados obtenidos.

Full text

Proyecto Fin de Carrera Ingeniería de Telecomunicación Formato de Publicación de la Escuela Técnica Superior de Ingeniería Autor: F. Javier Payán Somet Tutor: Juan José Murillo Fuentes Dep. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2013 Trabajo Fin de Grado Grado en Ingeniería de Tecnologías Industriales Control Predictivo Jerárquico del seguimien- to de trayectorias para vehículos autónomos Autor: Manuel Huertas Anisa Tutor: Carlos Bordons Alba Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 Trabajo Fin de Grado Grado en Ingeniería de Tecnologías Industriales Control Predictivo Jerárquico del seguimiento de trayectorias para vehículos autónomos Autor: Manuel Huertas Anisa Tutor: Carlos Bordons Alba Catedrático de Universidad Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2019 Trabajo Fin de Grado: Control Predictivo Jerárquico del seguimiento de trayectorias para vehículos autónomos Autor: Manuel Huertas Anisa Tutor: Carlos Bordons Alba El tribunal nombrado para juzgar el trabajo arriba indicado, compuesto por los siguientes profesores: Presidente: Vocal/es: Secretario: acuerdan otorgarle la calificación de: El Secretario del Tribunal Fecha: Agradecimientos Tr as un largo camino todo llega a su fin. Esto no podría haber sido posible sin la desinteresada ayuda de muchas de las personas que me ha acompañado durante estos años, cada una desde su posición. Me gustaría agradecer con especial atención a los compañeros con los que más tiempo he invertido, sin los que habría sido imposible alcanzar la meta. Manuel Huertas Anisa Sevilla, 2019 I Resumen El trabajo que se va a mostrar a continuación consistirá en el modelado y simulación de un vehículo al que se le va a considerar una conducción autónoma. El objetivo principal será lograr las condiciones adecuadas de control para poder seguir una trayectoria dada. Desde hace años, diversos fabricantes del sector automovilístico y otros ámbitos centran parte de sus investigaciones en la automatización de diversos sistemas, entre las que se incluye poder ser capaces de generar una ruta y seguirla de manera independiente. Para cumplir esta finalidad, este trabajo se apoyará en dos métodos de seguimiento de trayectoria: el método Pure Pursuit y el método Stanley. A partir de ellos, se van a conseguir las referecias adecuadas de giro para nuestro vehículo. Se modelará la mecánica de nuestro vehículo para poder sintonizar el controlador que dominará las acciones del coche. Para la simulación, se usará MatLab, en el que se ejecutará un control en cascada y serán discutidos los resultados obtenidos. III XÍndice 6.5.2 Seguimiento de una trayectoria de una trayectoria en forma de ocho 46 Seguimiento de una trayectoria en ocho con una RδDin =0,448 Seguimiento de una trayectoria en ocho con una RδDin =650 6.5.3 Cambio de sentido y seguimiento de una trayectoria circular 52 6.5.4 Seguimiento de una trayectoria circular haciendo cambios de velocidad 54 7 Conclusiones 57 Índice de Figuras 59 Índice de Tablas 61 Bibliografía 63 Notación δDÁngulo de giro de la rueda delantera β Ángulo que forma el vector velocidad con respecto a las coordenadas del vehículo θ Ángulo formado entre el vehículo y las coordenadas globales en el eje z vVelocidad del vehículo en el centro de masa vDVelocidad del vehículo en la rueda delantera mMasa dD Distancia de las ruedas delanteras hasta el centro de masa dTDistancia de las ruedas traseras hasta el centro de masa cDConstante de adherencia del neumático delantero cTConstante de adherencia del neumático trasero RrRadio de las ruedas delanteras y traseras dRDistancia entre las ruedas delanteras JzMomento de inercia con respecto al eje zLdel vehículo TMgas Constante de tiempo del motor TvConstante de tiempo del vehículo Vv/ac Ganancia entre la fuerza necesaria para desplazar el vehículo y la fricción a la que está sometido rCRadio de curvatura F CF Fuerza centrífuga FAFuerza aerodinámica caCoeficiente areodinámico XI 1 Introducción 1.1 Motivaciones Durante los últimos años, las marcas automovilísticas se han encargado de realizar grandes inversiones con el objetivo de conseguir un mayor grado de automatización de sus modelos y así diferenciarse en el sector. Marcas de referencia como Ford han llegado a invertir 1.000M de dólares en una compañía de robótica para lograr un modelo completamente autónomo en 2021 [ 2 ]. La alianza Renault-Nissan- Mitsubishi cerró en 2016 un acuerdo para trabajar con Microsoft en el desarrollo de modelos autónomos [ 9 ] mientras que por ejemplo la empresa de tecnología Intel está colaborando con BMW para sacar ejemplares autonomos en 2021 [ 6 ]. Estos son solo varios ejemplos de lo que parece una tendencia entre todas las compañías dedicadas al sector. El SAE J3016 es un estándar internacional que divide en 6 niveles, del 0 al 5 — siendo 5 un grado de automatización completa — los grados de automatización de un vehículo. Actualmente en el mercado automovilístico es normal encontrar coches de nivel de autonomía 2, caracterizados por incluir sistemas como los de aparcamiento o asistente para atascos. Tabla 1.1 Estándar SAE J3016. Nivel Grado de Ejecución del Monitorización Respaldo en Capacidad Automatización aceleramiento, del entorno caso de fallo del sistema frenado y dirección de conducción Nivel 0 Ninguna Conductor Conductor Conductor n/d automatización humano humano humano Nivel 1 Conducción Humano y Conductor Conductor Algunos modos asistida sistema humano humano de conducción Nivel 2 Automatización Sistema Conductor Conductor Algunos modos parcial humano humano de conducción Nivel 3 Automatización Sistema Sistema Conductor Algunos modos con codiciones humano de condución Nivel 4 Alta Sistema Sistema Sistema Algunos modos automatización de coducción Nivel 5 Automatización Sistema Sistema Sistema Todos los modos completa de conducción 1 2Capítulo 1. Introducción En 2018, una de las marcas más punteras en el sector, Audi, lanza su primer vehículo autónomo nivel 3, el Audi A8, aunque solo consigue cumplir su función autónoma en condiciones muy estrictas. A pesar de estar preparado, no se puede dar uso de sus modos autónomos en nuestro país debido a la falta de legislación [ 14 ]. En España, pese a una proposición no de Ley de impulso y desarrollo del vehículo autónomo aprobada en el Congreso de los Diputados en octubre de 2017 [ 4 ], aún no se ha legislado con respecto a este tema, lo que deja patente que todavía queda bastante por avanzar en diversos ámbitos además del ingenieril. Además, aunque ya se han realizado grandes avances en este tema, todavía queda un largo camino por recorrer hasta conseguirvehículos con un nivel de automatización completa, algo que muchos dudan que sea viable alcanzar un día. Por ello, considero todo lo relacionado con la conducción autónoma un tema en auge y continua evolución, y esto me ha motivado a abordar un trabajo de esta magnitud un trabajo de esta magnitud. 1.2 Arquitectura de control En esta sección vamos a explicar la estructura de un vehículo autónomo tal y como se describe en [ 8 ]. Nuestro Robot Móvil Autónomo (RMA) estará formado por sistemas mecatrónicos y sistemas digitales de datos y señales, que recibirán la información a través de sensores y se relacionarán con el conductor. Se puede dividir el vehículo en cuatro niveles de actuación. Los niveles más altos estarán relacionados con los sistemas digitales de los que disponga el vehículo, mientras que los más bajos lo estarán con los sistemas mecatrónicos propios de él. Figura 1.1 Niveles de control. 1.3 Estrategia de Control 3 El nivel cuatro, el más alto, también denominado planificación dinámica de ruta, se encargará del planteamiento de ruta, tanto para seguir una trayectoria como para esquivar obstáculos; dará todas las referencias necesarias para seguir el recorrido. El nivel relacionado con la conducción del vehículo podrá ser ejecutado por un humano o por un ordenador, lo cual dependerá del nivel de automatización. El segundo nivel de control estará vinculado con el control de la dinámica del vehículo, entre lo que incluye los diferentes sistemas integrados como el sistema de anti-bloqueo en el frenado ABS o el de estabilidad ESP. El nivel más bajo de control gestionará el control de todos los subsistemas del vehículo, el que se incluyen las acciones de aceleración, frenado o direccionamiento. Sea cual sea la solución elegida, el concepto principal de este nivel se relacionará con la actuación en el par, velocidad y posición del vehículo. Este trabajo se encargará de todos estos niveles explicados, que se explicarán en los siguientes capítulos. El nivel 4 se desarrollará a partir de dos métodos escogidos: el método Pure Pursuit y el método Stanley. Un controlador en cascada tanto de la cinemática (para poder dar unas referencias a seguir por la dinámica ,en las que se cumpla el modelo lineal que vamos a usar), como de la dinámica dará todas las referencias a seguir por nuestro vehículo que deberá mantener la trayectoria dictada. 1.3 Estrategia de Control Como se ha indicado anteriormente, se va a realizar un control en cascada para controlar las acciones δ, o direccionamiento de la rueda y ˙ ω, o aceleración angular de las ruedas del eje de tracción. A partir de lo realizado anteriormente en [12] la estrategia se basará en el siguiente esquema: Figura 1.2 Táctica de control. 4Capítulo 1. Introducción El planeamiento de la trayectoria se llevará a cabo con dos tácticas diferentes: con el uso del método Pure Pursuit y con el método Stanley, que se desarrollará en el siguiente capítulo. Estos métodos darán unas referencias re fy , o distancia a recorrer transversalmente y re fθ , o ángulo de giro del vehículo con respecto a las coordenadas globales en el eje vertical. Estas referencias serán usadas por el control de la cinemática para generar la referencia de direccionamiento δre f . Como se explica en [ 12 ] es importante generar esta referencia a través del control de la cinemática para que se cumpla el modelo lineal con el que se va a controlar la dinámica en todo momento, generando así un incremento o decremento de δre f suave. Se convertirán os valores de δre f en ˙ θre f y βre f que junto con vre f serán los valores a alcanzar por nuestros dos controladores, del direccionamiento de la rueda y de velocidad del vehículo. Una vez obtenidas las salidas de los controladores δ y ˙ ω , se usarán las ecuaciones no-lineales de la dinámica y las ecuaciones de la cinemática para determinar la nueva posición del vehículo y volverá a comenzar el bucle de control. 1.4 Objetivos El principal objetivo en este trabajo será el de modelar un vehículo, para, a continuación, llevar a cabo la elección de un controlador en cascada que sea validado en una serie de simulaciones en MatLab. Para ello, habrá que desarrollar en primer lugar los métodos de Path-tracking, que en este proyecto se han escogido el método Pure Pursuit y el método Stanley. Además, estos métodos deberán ser sintonizados con el objetivo de dar unas referencias que puedan ser utilizadas por nuestro controlador para un correcto seguimiento de la trayectoria. En primer lugar, se hará una breve explicación de los métodos de Path-tracking, describiendo sus particularidades así como su comportamiento en diferentes escenarios. Estos métodos serán de gran importancia al ser el primer eslabón en la cadena de control, dando las primeras referencias a seguir. A continuación, se modelará la cinemática del vehículo, a partir de unas consideraciones previas, hasta conseguir un sistema de ecuaciones que describa su comportamiento. De igual manera, se procederá a hacer lo mismo con la dinámica del vehículo, hasta llegar a una serie de ecuaciones lineales que expliquen su conducta. Una vez obtenidos los modelos, se pasará a explicar el control del vehículo. Primero se discutirá el Control Predictivo basado en Modelo (CPM), sus ventajas y desventajas y su implementación, para más tarde hablar de manera individualizada de los diferentes sistemas controlados. Por último se incluirá una pequeña descripción de la obtención de los parámetros en MatLab. Por último, se llevarán a cabo una serie de pruebas para validar los controladores usados y otros postulados descritos a lo largo del trabajo. Estas pruebas serán simulaciones realizadas en MatLab, a partir de los modelos descritos con anterioridad. 2 Seguimiento de trayectorias En este capítulo se va a abordar el nivel 4 de control de nuestro Robot Móvil Autónomo, en el que será planificada la trayectoria a seguir por nuestro robot y se generarán las referencias de control pertinentes. Este nivel proporcionará al controlador en cascada las referencias de traslación en el eje y y rotación en el eje znecesarias para generar las acciones de control. Como se ha señalado antes, para este trabajo se han escogido dos tácticas de seguimiento de trayectoria diferentes: el método Pure Pursuit y el método Stanley, que se explicarán a continuación. 2.1 Pure Pursuit La estrategia de seguimiento de trayectorias “Pure Pursuit” es uno de los métodos más usados para resolver el problema de seguimiento de trayectoria para robots móviles. La táctica de control se basa en calcular el radio de curvatura de la circunferencia que conecte la posición actual del vehículo con un punto de la trayectoria a una distancia determinada a elegir ´ que se denominará distancia “look-ahead” y cuya elección determinará el comportamiento de la trayectoria. Se comporta así como un controlador proporcional del ángulo a girar por parte del vehículo con respecto a las coordenadas globales, usando la distancia enre el vehículo y la trayectoria de referencia como error y una ganancia afectada por la distancia “look-ahead” escogida. 5 6Capítulo 2. Seguimiento de trayectorias Figura 2.1 Estrategia de control Pure Pursuit [11]. La elección de una distancia “look-ahead” pequeña conduce a un seguimiento más preciso de la trayectoria, a cambio de que el sistema incurra en oscilación, mientras que una elección de una distancia “look-ahead” alta lleva al sistema a una menor precisión a cambio de una mayor estabilidad [3]. Figura 2.2 Diferencias de elección entre una distancia lookahead pequeña y una grande [10]. Este método goza de una alta popularidad en parte por su robustez, ya que, al contrario que la mayoría de controladores, llega a funcionar bien a altas velocidades, además de por la ausencia de ruido atribuido a términos derivativos. Como desventaja, es complicado escoger una ganancia que funcione para todo tipo de curvatura o velocidad. Esto es debido a que esta táctica de control se basa simplemente en calcular geométricamente un camino a seguir ignorando las características dinámicas laterales del vehículo que son tanto más influyentes cuanto mayor sea la velocidad o curvatura [15]. 2.2 Método Stanley 7 La curvatura (γ) se puede calcular de la siguiente forma: γ=−2∆x D(2.1) Donde ∆x es la distancia del punto actual del vehículo al punto más próximo del trayecto y D es la distancia entre el punto actual del vehículo y el punto objetivo ubicado en el trayecto. Estos parámetros se pueden calcular como: ∆x= (xg−xo)·cos(φo)+(yg−yo)·sin(φo)(2.2) D=q(xg−xo)2+(yg−yo)2(2.3) Donde (xg,yg) es el punto objetivo, (xo,yo) es el punto actual del vehículo, y φo es la orientación actual del vehículo. De igual forma se tiene el radio de curvatura como r=1 γ(2.4) Los pasos a seguir para llevar a cabo la táctica de control son los siguientes •Obtención del punto actual del vehículo. •A partir de la posición del vehículo, conseguir el punto más cercano ubicado en el trayecto. •Con una distancia lookahead dada, conseguir el punto objetivo • Una vez dado el punto objetivo, se puede calcular ∆x y D , así como la curvatura a partir de los valores obtenidos a partir de 2.2, 2.3 y 2.1. • Dada una curvatura, el control de la cinemática conseguirá una δre f erencia que será usada posteriormente en el control de la dinámica •Ejecutar de nuevo en el siguiente bucle de control. 2.2 Método Stanley El método Stanley se popularizó gracias a su implementación en un Volkswagen Touareg por parte del Stanford Racing Team’s en el Gran Desafío DARPA de 2005, la segunda edición de un evento de carreras sin conductor. El Gran Desafío DARPA en 2005 consistió en una competición de 212km a través del desierto entre los estados de California y Nevada. DARPA corresponde a las siglas de Agencia de Proyectos de Investigación de Defensa Avanzada, dependiente del Pentágono. La elección de esos terrenos se determinó por el parecido con los de Irak y Oriente Medio, donde por entonces el ejército americano tenía una gran actividad [5]. Figura 2.3 "Stanley" en el DARPA Grand Challenge [5]. 14 Capítulo 4. Modelo dinámico del sistema Figura 4.1 Diagrama de fuerzas. A partir del diagrama de fuerzas obtenido en 4.1, se podrá hacer el análisis de equilibrio de fuerzas y pares, de los que se ha conseguido las siguientes ecuaciones: •Fuerzas en el eje x: F CF sen(β)+FxT −FxA +FxDcosδD−FyDsenδD=m˙vcosβ(4.1) •Fuerzas en el eje y: F CF cos(β)+FxT −FxA +FxDsenδD−FyDcosδD=m˙vsenβ(4.2) •Pares en el eje z: (FyDcosδD+FxDsenδD)dD−FyT dT+FyAdA=Jz¨ θ(4.3) Con el objetivo de expresar la dinámica del vehículo en las tres variables deseadas, β , ˙ θ y v , describiremos las fuerzas actuantes en función de dichas variables. La fuerza centrífuga F CF es la fuerza originada por el movimiento de rotación de un objeto. Esta se puede formular como F CF =m·aCF , donde aCF es la aceleración centrífuga. Esta aceleración a su vez se podría expresar como aCF =v2/rc , donde v es la velocidad lineal y rc el radio de curvatura. Ya que el radio de curvatura se puede expresar como rc=∆S/∆θ , donde ∆S es la distancia lineal recorrida en un tiempo concreto y ∆θ el ángulo recorrido en ese mismo tiempo, se podría describir 15 el radio de curvatura como la relación entre la velocidad lineal y la velocidad angular del vehículo. Para poder interpretar las ecuaciones en las variables de interés, será reescrito el radio de curvatura rccomo: rC=v ˙ β+˙ θ(4.4) Quedando la fuerza centrífuga de tal modo: F CF =mv(˙ β+˙ θ)(4.5) Por otra parte se tiene la fuerza aerodinámica FA , ejercida por un fluido (el aire en este caso), debido al movimiento relativo entre el vehículo y el fluido sobre el que circula, descompuesta en los ejes xey, definida por la expresión: FA=caAcv2rc 2(4.6) siendo ca el coeficiente de resistencia al aire, y Ac el área en contacto del vehículo con el fluido. Queda por definir la fuerza de adherencia en los neumáticos, descrita como Fx,yD . La componente en y , corresponde a una fuerza lateral opuesta al deslizamiento del neumático, definida como el producto de la constante de adherencia, cD para la rueda delantera y cT para la rueda trasera, y el ángulo del vector de desplazamiento correspondiente a cada rueda. Se puede expresar como: FyD =cDαD=cD(−β+δD−dD ˙ θ v)(4.7) FyT =cTαT=cT(−β+dT ˙ θ v)(4.8) Nótese que la fuerza relacionada con la rueda trasera carece de la variable δD debido a que solo girará la delantera. La componente en x de esta fuerza requiere una aclaración. Debido a que la tracción se ejerce en las ruedas traseras, la fuerza de adherencia FxD , o fuerza de adherencia delantera en la misma dirección que esta, se supondrá despreciable. Por otra parte, FxT , es proporcional al par motor ˙ ωRT , relación que será usada más tarde a la hora de conseguir la ecuación diferencial de v. Sustituyendo las expresiones de las fuerzas descritas en las ecuaciones 4.1, 4.2 y 4.3, se puede describir la dinámica del vehículo en las variables β , ˙ θ y v obteniendo de este modo las siguientes igualdades: ˙ β=˙ θ·(cTdT−cDdDcosδD mv2cosβ−1)+CaACvrc−β·(cT+cDcosδD mvcosβ)−˙vtg(β)+ FxDsenδD mvcosβ+cDδDcosδD mvcosβ (4.9) ¨ θ=β Jz (cTdT−cDdDcosδD)+ caACv2rcdA 2Jz +FxDdDsenδD Jz +cDdDcosδD Jz − ˙ θ Jzv(cTd2 T+cDd2 DcosδD) (4.10) ˙v=vtg(β)( ˙ θ+˙ β)+ FxT mcos(β)−caAcv2rc 2mcos(β)+FxDcos(δD) mcos(β)−cDsen(δD) mcos(β)(−β+δD−dD˙ θ v)(4.11) 16 Capítulo 4. Modelo dinámico del sistema Estas ecuaciones diferenciales que explican el comportamiento del sistema, no son útiles desde un punto de vista práctico, ya que a la hora de realizar el control, exigirían un alto coste computacional. Por tanto, debemos pasar a su linealización. A la hora de linealizar se ha tenido en cuenta que la dinámica de la velocidad v es mucho más lenta que las de β y ˙ θ con lo que vamos a considerar la velocidad constante en el proceso de linealización de las ecuaciones que rigen el comportamiento de estas variables. Además, los cambios de β y δD pueden considerarse como pequeños en un periodo de muestreo, por lo que podríamos aproximar que cos(β)≃1 , sen(β)≃=β , cos(δD)≃1 y sen(δD)≃=δD . Asimismo, el término relativo a las fuerzas aerodinámicas, puede ser estimado en este trabajo como despreciable. La linearización de la ecuación que describe el comportamiento de la velocidad v se llevará en un proceso aparte de acuerdo a lo descrito en [7]. Las ecuaciones lineales obtenidas a partir de y para el ángulo del vector de velocidad β y la velocidad angular ˙ θserán: ˙ β=˙ θ·(cTdT−cDdD mv2−1)+CaACvrc−β·(cT+cD mv )−+FxDδD mv +cDδD mv (4.12) ¨ θ=β Jz (cTdT−cDdD)+ caACv2rcdA 2Jz +FxDdDδD Jz +cDdD Jz − ˙ θ Jzv(cTd2 T+cDd2 D)(4.13) El modelo dinámico linealizado basado en el modelo de bicicleta y representado por las ecuaciones 4.12 y 4.13 será útil para aceleraciones de hasta 4m/s2[7]. Además, se ha de tener en cuenta que para que no exista deslizamiento lateral, β y δD han de tener el mismo signo. Así, a partir de las ecuaciones linealizadas, se puede obtener que la relación β(s)/δD(s)ha de cumplir que: Keβ=cTcDdT(dT+dD)−cDdDmv2 cTcD(dT+dD)2+mv2(cTdT−cDdD)>0(4.14) Los parámetros cT , cD , dD , dT y m son propios de las características físicas del vehículo, y, por tanto, fijas. Para cumplir la condición impuesta, se tendrá que la velocidad v , vendrá condicionada por: vmax <scTdT(dT+dD) dDm(4.15) Se observa que la velocidad máxima vmax es dependiente de dos valores geométricos de diseño, la distancia comprendida entre la rueda delantera en el modelo Ackermann y el centro de masa, dD , y la distancia comprendida entre la rueda trasera en el modelo Ackermann hasta el centro de masa, dT , además de la masa del vehículo m . El único valor variable es en este caso la constante de adherencia del neumático trasero. Si se sobrepasase el valor vmax , un controlador basado solo en la cinemática del vehículo no conseguiría dar las referencias apropiadas para el control de las variables β y ˙ θ , con lo que sería obligatorio el uso de un control fundamentado en la dinámica descrita. Tal y como se explica en [ 7 ], se ha considerado en este trabajo que el vehículo está en movimiento y el motor de combustión trabaja en régimen permanente, con lo que podemos despreciar los términos no lineales. Además, recordando lo descrito antes, se desprecia FxD , al ejercer tracción únicamente la rueda trasera del modelo, que ejercerá una fuerza FxT , proporcional al par ofrecido por el motor de combustión ˙ ωRT , que se convertirá en la variable de entrada deseada.Se puede 17 expresar así la variable vcon respecto a la entrada ˙ ωRT con la siguiente ecuación diferencial: ¨v=−TMgas +Tv TMgasTV ˙v−1 TMgasTV v+Vv/ac TMgasTV ˙ ωRT (4.16) A partir de las ecuaciones linealizadas se conseguirán las funciones de transferencia necesarias para el control del vehículo. Estas funciones serán descritas en el Capítulo 5. 5 Control Para el control del vehículo se ha decidido usar un Control Predictivo basado en Modelo (CPM), más concretamente, en el modelo dinámico y cinemático del robot móvil. El CPM ofrece diversas ventajas con respecto a otros métodos, entre las que se podría mencionar [13]: •Facilidad de uso, sintonización relativamente sencilla y conceptos no complejos. •Útil tanto para sistemas complejos, simples, retardados, de fase no mínima o inestables. •Casos con diferentes variables. •Compensa el retardo. • Muy útil para sistemas robóticos, sistemas por lotes (batch) o cualquier otro en el que se conozcan las referencias futuras. •Simplicidad para el tratamiento de restricciones. •Permite futuras extensiones. Entre los inconvientes, por un lado, habría que destacar el coste computacional para resolver ciertos algoritmos. Aunque el mayor inconveniente de este método es la obtención del modelo previo del sistema. Sin un buen modelo conseguido, cabría esperar grandes diferencias entre el modelo simulado y el sistema en la práctica. Se usarán las funciones de transferencia a partir de las ecuaciones descritas en el capítulo dedicado al modelo dinámico y cinemático. Estas ecuaciones deberán ser discretizadas, para poder ser descritas con la forma de un modelo CARIMA (Controller Auto-Regressive Integrated Moving Average): A(z−1)·y(k) = B(z−1)·u(k−1)+C(z−1)e(k) ∆(5.1) Siendo ∆=1−z−1 , A y B polinomios en el operador retardado z−1 , y e(k) un ruido blano gaussiano de media cero. Por simplicidad, se tomará C(z−1) = 1. El algoritmo consiste en la minimización de la función de coste definida como: J= (b y−yr)0Q(b y−yr)+∆u0R∆u(5.2) Donde Q y R son las matrices de ponderación. La predicción de las salidas puede calcularse como: b y(t+k|t) = k ∑ i=1 gi∆u(t+k−i)+ f(t+k)(5.3) 19 20 Capítulo 5. Control Donde el primer sumatorio de la expresión la respuesta forzada y f(t+k) es la respuesta libre del sistema. De manera más simplificada lo podemos expresar como: b y=G∆u+f(5.4) El vector de respuesta libre f es de igual dimensión que el horizonte de control. La respuesta libre es aquella que no viene condicionada por las acciones de control futuras. f=     f(1) f(2) . . . f(N)      La respuesta libre viene dada por la expresión: f(t+k) = ym(t)+ ∞ ∑ j=1 (gj+k−gj)∆u(t−j)(5.5) Este vector es calculable en todo sistema estable, puesto que a partir de cierto valor N , se da que gj+k≈gj, pudiendo expresarse como: f(t+k) = ym(t)+ N ∑ j=1 (gj+k−gj)∆u(t−j)(5.6) En el caso de no existir restricciones en el sistema, el mínimo de la función de coste 5.2 puede conseguirse haciendo igual a cero la derivada ∂J/∂∆x, con lo que se obtendría que: ∆u= (G0·Q·G+R)−1·G0·Q·(yre f −f)(5.7) Para calcular ∆u(k) será necesario pues obtener la primera fila, que llamaremos de aquí en adelante como k , de la matriz (G0·Q·G+R)−1·G0·Q . Además, yre f será el vector de referencias futuras. Donde G es la matriz dinámica del sistema (dando nombre al algoritmo) o matriz respuesta a escalón y definida como: G=           g10... 0 g2g1... 0 . . .. . ..... . . gmgm−1... g1 . . .. . ..... . . gNgN−1... gN−m+1           G estaría formado por m (horizonte de control) columnas, mientras que N sería el horizonte de predicción. Los coeficientes gi corresponden a la respuesta ante escalón de la función de transferencia del sistema, siendo g1 el correspondiente al resultado tras el primer periodo de muestro, g2 el segundo, y así sucesivamente. Para el cálculo de esta matriz, se han calculado estos coeficientes en MatLab. Para cada función de transferencia discretizada, usaremos la funcion step de MatLab, que nos devolverá como resultado los coeficientes gi, a partir de los cuales podremos formar la matriz Gcomo el vector que permite calcular la respuesta libre ∑N j=1(gj+k−gj). 5.1 CPM Control cinemático 21 Al no haber restricciones, se puede formular solución de nuestro sistema como: ∆u(k) = k·(yr−f)(5.8) 5.1 CPM Control cinemático El primer CPM del controlador en cascada que se ejecutará será el del control cinemático. Los estados en este controlador serán dos variables dadas por los métodos de "Path tracking": θ , o ángulo de giro en el eje z de las coordenadas globales, e yL , o distancia recorrida en el eje y de las coordenadas locales. La salida de control será δDCin , o ángulo de direccionamiento referencia para el control en dinámica. Al hacer uso de un primer control cinemático, se podrán dar referencias del ángulo de direccionamiento más suaves que podrán ser controladas por el control dinámico. Figura 5.1 Esquema de control de la dirección δD. Hay que recordar que el modelo cinemático viene dado por el sistema de ecuaciones descrito con anterioridad 3.4, que recordamos:          xL(k+1) = xL(k)+vD(k)T· yL(k+1) = yL(k)+vD(k)T·δ(k) θ(k+1) = θ(k)+ vD(k)T dD ·δ(k) En la forma CARIMA, se podría expresar como: yL(k) θ(k)=vD·T 1−z−1·1 1/dD·δD(k−1)+ 1 1−z−1·1 1e(t)(5.9) En este primer paso para controlar el vehículo, un mayor peso de Q resultará en una respuesta de δDCin más rápida, mientras que al dar mayor peso a los estados con R , se conseguirá dar una referencia sin sobreoscilaciones que pueda seguir fácilmente el control de la dinámica. Ateniéndonos a lo descrito anteriormente, el sistema puede explicarse con la siguiente ley de control: ∆δDCin(k) = K·(yre f −f)(5.10) 22 Capítulo 5. Control Donde se tiene que: yre f =           yLre f (k+1) . . . yLre f (k+N2β) θre f (k+1) . . . θre f (k+N2˙ θ)           5.2 CPM control direccionamiento En el control en cascada, tras obtener una referencia dada por el control cinemático δDCin , obtendremos la salida δDDin , que será la acción de control ejecutada por nuestro vehículo. Los estados de referencia serán β , o ángulo del vector velocidad en el centro de masa del vehículo, y ˙ θ , o velocidad angular A partir de las ecuaciones lineales obtenidas en el modelo dinámico, las cuales se recuerdan: ˙ β=˙ θ·(cTdT−cDdD mv2−1)+CaACvrc−β·(cT+cD mv )−+FxDδD mv +cDδD mv ¨ θ=β Jz (cTdT−cDdD)+ caACv2rcdA 2Jz +FxDdDδD Jz +cDdD Jz − ˙ θ Jzv(cTd2 T+cDd2 D) Podremos conseguir las funciones de transferencia que relacionen nuestra variable de salida con los estados. La función de transferencia que relaciona a las variables β y ˙ θ con la acción de control δ, obteniéndose: G(s)β,˙ θ=1 s2+(a+d)s+(ad −bc)es +de +b f f s +a f +ce(5.11) Donde se ha simplificado:                                        a=cT+cD m·v b=cT·dT−cD·dD m·v2−1 c=cT·dT−cD·dD Jz d=cT·d2 T+cD·d2 D Jz·v e=cD+FxD m·v f=dD·(cD+FxD) Jz Al ser dependiente de la velocidad, en el caso de que haya una alta variación de ésta, la función de transferencia deberá ser calculada otra vez. A la hora de implementarlas se usará la función c2d de MatLab. A continuación, se usará la función tfdata para obtener por separado el numerador y el denominador de la función de transferencia, que será usado para obtener los polinomios A(z−1) y B(z−1). 5.3 CPM velocidad 23 El sistema puede quedar definido por las siguientes leyes de control: ∆δD(k) = K·(yre f −f)(5.12) Donde se tiene que: yre f =           βre f (k+1) . . . βre f (k+N2β) ˙ θre f (k+1) . . . ˙ θre f (k+N2˙ θ)           5.3 CPM velocidad A su vez, se desarrollará el CPM relacionado con la velocidad. Será el único en el que solo habrá una entrada y una salida, relacionando ˙ ωRT , que representa el par del motor, con la velocidad v. A partir de la ecuación 4.16, se puede obtener la función de transferencia que relacione ambas variables: G(s)vel =Vv/ac TMgasTVs2+(TMgas +TV)s+1(5.13) El CPM relacionado con la velocidad no recibirá ninguna referencia por parte de los métodos de Path-tracking, si no que se ejecutará en paralelo, a partir de una referencia en velocidad que daremos manualmente al sistema. De igual forma que con el anterior modelo descrito, la función discretizada se conseguirá usando la función c2d de MatLab, una vez determinados los parámetros del vehículo que vamos a usar. Más tarde usaremos con la función tfdata obtendremos el numerador y el denominador para obtener los polinomios A(z−1)yB(z−1). El sistema queda definido por la ley de control: ∆˙ ωRT (k) = K·(vre f −f)(5.14) Donde: yre f =   vre f (k+1) . . . vre f (k+N2v)    Un mayor peso de Q resultará en una mayor importancia en la minimización de la función de coste de la velocidad v , mientras que un mayor peso de R resultará en una mayor importancia del par ˙ ωRT . Las funciones de transferencia discretizadas y particularizadas tanto para este CPM como para el resto, se desarrollarán en el siguiente capítulo una vez descrito el vehículo a usar. 5.4 Cálculo de los parámetros de los CPMs en MatLab Para poder hacer uso de estos, deberemos conseguir tanto la matriz G como el vector para el cálculo de la respuesta libre ∑N j=1(gj+k−gj)de cada uno de ellos. Se va a explicar un ejemplo usando el último visto, el relativo a la velocidad. 30 Capítulo 6. Pruebas En ella, se podrá en primer lugar elegir las condiciones iniciales del vehículo, entre las que se incluyen el punto inicial, la orientación inicial (en radianes), la velocidad inicial, y el tiempo de simulación (que puede ser pequeñamente redondeado a la hora de ejecutar el código para ser múltiplo del tiempo de muestreo Ts =0,07sy tener un número de muestras entero). Además, se podrá elegir entre cuatro trayectorias, que irán siendo descritas a lo largo de las pruebas, entre las que se incluyen un círculo (que tendrá 50 metros de radio y se recorrerá en el sentido de las agujas del reloj), una trayectoria en forma de ocho (con cada uno de los círculos que lo componen de 40 metros de radio), la prueba del alce (cuyo recorrido se describirá más detalladamente en una de las pruebas), y una curva de 50 metros de radio que partirá de una recta inicial de 100 metros y acabará en otra recta de 50 metros. Se permite elegir entre el método de seguimiento de trayectoria deseado, ya sea el Pure Pursuit o el método Stanley, pudiendo escoger en uno la distancia lookahead en metros y en el otro el valor de la constante k . Asimismo, se da la opción de ejecutar solo el control cinemático para comprobar si sería válido usarlo para las condiciones dadas. Por último, se podrán variar todos los pesos de control para ir probando su efecto en los distintos niveles de control. 6.3 Comparación del control cinemático con el control en cascada para v> vmax El primer experimento que se va a realizar en este proyecto será el de la comprobación de la hipótesis descrita en el modelo dinámico en el que se afirmada que a partir de una velocidad vmax , el modelo cinemático no podría generar referencias que cumplan que β y δD tengan el mismo signo, con lo que existiría desplazamiento lateral. Es momento para recordar que esta vmax viene condicionada por la expresión: vmax <scTdT(dT+dD) dDm(6.2) Que, para los datos del vehículo analizado se obtiene que vmax ≃9,44m/s2 En esta prueba vamos a hacer a nuestro vehículo recorrer una curva con la siguiente forma: 6.3 Comparación del control cinemático con el control en cascada para v>vmax 31 Eje x (m) 0 10 20 30 40 50 60 70 80 90 100 110 Eje y (m) -100 -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 Figura 6.3 Trayectoria seguida en el primer experimento del Capítulo de Pruebas. De la que partirá desde su punto inicial, (0,0) , a dos velocidades diferentes, 8m/s2 y 22m/s2 . A priori, se debe suponer que en el primer experimento se conseguirá un control óptimo tanto para el control cinemático como para el control en cascada. Además, debido a lo expuesto en el Capítulo 2 en referencia a los métodos de seguimiento de trayectoria a altas velocidades, usaremos el método de Stanley, con una constante k=1,5 para el experimento a 8m/s2 y una constante k=3,5 para el segundo. La prueba a baja velocidad durará 28s, y 10sla más rápida. En primer lugar vamos a mostrar las funciones de transferencia discretizadas tanto para el modelo cinemático como para el control de δD a partir del modelo dinámico. La función de transferencia relacionada con la velocidad no hará falta pues ya fue expresada con anterioridad para todos los apartados. Se obtiene para los parámetros descritos, que a 8m/s2estas serán: •Funciones de transferencia para el control cinemático G(z)yL=0,56 z−1(6.3) G(z)θ=0,7467 z−1(6.4) •Funciones de transferencia para el control dinámico de δD G(z)β=0,1674z−0,09067 z2−0,5109z+0,0515 (6.5) G(z)˙ θ=4,37z−1,647 z2−0,5109z+0,0515 (6.6) Mientras que para una velocidad igual a 22m/sse tendría que: 32 Capítulo 6. Pruebas •Funciones de transferencia para el control cinemático G(z)yL=1,54 z−1(6.7) G(z)θ=2,053 z−1(6.8) •Funciones de transferencia para el control dinámico de δD G(z)β=−0,1028z−0,2413 z2−1,161z+0,3401 (6.9) G(z)˙ θ=7,136z−5 z2−1,161z+0,3401 (6.10) Estas funciones de transferencia hay que indicar que nos servirán para todas las pruebas. En esta prueba, nos será suficiente con analizar la respuesta de la acción de control δD para corroborar el postulado. La sintonización del controloador, que será mejorado más adelante, no ha sido un objetivo primordial en esta prueba. El controlador usado ha sido el siguiente: •Controlador cinemático Ny,θ=10 100NδDCin =10 Qy,θ=IRδDCin =0,7∗I •Controlador dinámico Nβ,˙ θ=10 100NδDDin =10 Qβ,˙ θ=0,002 ∗IRδDDin =I Nv=20N˙ ωRT =20 Qv=IR˙ ωRT =0,5∗I Las características del uso de este tipo de control realizado en este apartado se comentarán más tarde en el apartado de conclusiones. Hay que recordar que en el control cinemático, la salida será directamente la δDCin conseguida, mientras que en el control en cascada, se usará la δDCin dada por el controlador cinemático para generar unas referencias de β y ˙ θ , que se usarán a su vez para conseguir la definitiva δD tras un control dinámico, llamada en la descripción de parámetros de los controladores δDDin . La comparativa entre la salida δDa8m/s2es la siguiente: 6.3 Comparación del control cinemático con el control en cascada para v>vmax 33 Tiempo (s) 0 5 10 15 20 25 Acción de Control δD -0.04 -0.02 0 0.02 Referencia Control cinemático Control en cascada Figura 6.4 Acción de control δD(rad)para los controladores cinemático y en cascada a 8m/s2. Hay que tener en cuenta que la sobreoscilación presentada en el controlador en cascada se debe por la sobreoscilación presentada en el primer paso, el de control cinemático, que se ha atenuado más tarde con el control dinámico. El control cinemático a su vez presenta una pequeña sobreoscilación. Ateniéndonos a la cuestión principal de esta primera prueba, ambos controladores serían válidos, siendo sensibles a futuras mejoras para reparar el error comentado. Por contra, la comparativa entre la salida δDa22m/s2es la siguiente: Tiempo (s) 012345678910 Acción de Control δD -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 Referencia Control cinemático Control en cascada Figura 6.5 Acción de control δD(rad)para los controladores cinemático y en cascada a 22m/s2. El controlador cinemático, que a 8m/s2 conseguía dar un notable resultado, no consigue validar el modelo dinámico a altas velocidades, con lo que el sistema se vuelve inestable. Para ilustrar mejor la diferencia de ambas arquitecturas de control a esta velocidad, vamos a mostrar la trayectoria seguida y la distancia del vehículo a la trayectoria de referencia en cada muestra: 34 Capítulo 6. Pruebas Eje x (m) 0 20 40 60 80 100 120 140 160 Eje y (m) -100 -80 -60 -40 -20 0 20 Trayectoria de referencia Trayectoria Control en cascada Trayectoria Control cinemático Figura 6.6 Comparación de trayectoria seguida usando control en cascada y control cinemático a 22m/s2. Aunque a simple vista pudiese parecer una buena trayectoria seguida por el control cinemático, simplemente está acercándose a la referencia haciendo bruscos giros, como se observa más detenidamente: Eje x (m) 147.5 148 148.5 149 149.5 150 150.5 151 151.5 152 Eje y (m) -90 -88 -86 -84 -82 -80 -78 -76 -74 -72 -70 Trayectoria de referencia Trayectoria Control en cascada Trayectoria Control cinemático Figura 6.7 Comparación de trayectoria seguida usando control en cascada y control cinemático a 22m/s2a pequeña escala. 6.4 Comparación del método Pure Pursuit con el método Stanley a altas velocidades 35 6.4 Comparación del método Pure Pursuit con el método Stanley a altas velocidades En esta sección vamos a tratar los postulados descritos en [ 15 ], acerca de la superioridad del método Stanley con respecto al Pure Pursuit a altas velocidades. Para ello, vamos a hacer una prueba a 22m/s2 , en el que nuestro vehículo simulado deberá recorrer una curva de igual curvatura a la descrita en la Sección 1. En este caso, se va a hacer una pequeña modificación y el vehículo comenzará su andadura en la posición (0,2)m , es decir, dos metros por encima en el eje y de la trayectoria descrita, con el objetivo de acentuar el comportamiento de los métodos de seguimiento de trayectoria. Eje x (m) 0 50 100 150 Eje y (m) -90 -80 -70 -60 -50 -40 -30 -20 -10 0 Trayectoria de referencia Figura 6.8 Trayectoria a seguir en este experimento. Además, se ha usado el siguiente controlador: •Controlador cinemático Ny,θ=10 100NδDCin =10 Qy,θ=IRδDCin =5∗I •Controlador dinámico Nβ,˙ θ=10 100NδDDin =10 Qβ,˙ θ=0,001 ∗IRδDDin =I 36 Capítulo 6. Pruebas Nv=20N˙ ωRT =20 Qv=IR˙ ωRT =I Sin ser óptimo, será suficientemente bueno para ejecuar esta prueba . Se ha preferido buscar en este apartado un controlador que actúe más lentamente, para poder observar mejor la diferencia de comportamiento entre los 2 métodos. Hay que recordar que tal y como se vio en la Sección 2, las variables a modificar en cada controlador serían, en el Pure Pursuit la distancia de lookahead , o distancia del punto de la trayectoria de referencia más cercano al vehículo y el punto objetivo, y en el método Stanley una constante k que se relaciona con el ángulo a girar por nuestro vehículo como: θre f erencia =θe+arctg(kex v)(6.11) Se van a mostrar los resultados de la acción de control δD con respecto a la referencia para cada uno de los métodos. Asimismo a continuación se presentará en otra gráfica la trayectoria seguida por el vehículo y su camino a seguir, acompañado de la distancia entre el vehículo y el punto más cercano de la trayectoria de referencia en metros. 6.4.1 Experimento usando el método Pure Pursuit para lookahead =1,4m Los resultados obtenidos para esta distancia lookahead son: Tiempo (s) 012345678910 -0.07 -0.06 -0.05 -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 Referencia Control Figura 6.9 Acción de control δD(rad)para el controlador usado, con un lookahead =3m. 6.4 Comparación del método Pure Pursuit con el método Stanley a altas velocidades 37 Eje x (m) 0 20 40 60 80 100 120 140 160 Eje y (m) -100 -80 -60 -40 -20 0 20 Trayectoria de referencia Trayectoria seguida Figura 6.10 Trayectoria seguida para el controlador usado, con un lookahead =3m. 38 Capítulo 6. Pruebas Muestras 0 50 100 150 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Distancia a la trayectoria de referencia Figura 6.11 Evolución en cada periodo muestral de la distancia del punto más cercano del trayecto al vehículo, con un lookahead =3m. Evaluando los resultados, se puede observar como para ningún lookahead escogido, se va a conseguir un rendimiento óptimo. El hecho de que, ninguna de las dos variables del control de trayectoria, la estabilidad y la rapidez, obtengan un buen resultado, demuestra que no se conseguirá un buen control para ninguna distancia lookahead escogida. Si decidiésemos cambiar la distancia de lookahead, cabría esperar dos posibilidades: para una mayor distancia, se cnoseguiría un sistema con una respuesta de control más estable y un acercamiento más suave, pero por contra, perdería mucha rapidez de acercamiento; si, por otra parte, se escogiese una distancia menor, la trayectoria de aproximamiento sería más rápida, pero todavía más inestable si cabe. A continuación será comparado con resultados obtenidos para el método Stanley. 6.4 Comparación del método Pure Pursuit con el método Stanley a altas velocidades 39 6.4.2 Experimento usando el método Stanley para k=4,5 En este primer experimento con el método Stanley, se tiene que: Tiempo (s) 012345678910 -0.2 -0.15 -0.1 -0.05 0 0.05 Referencia Control Figura 6.12 Acción de control δDpara el controlador usado, con con una k=4,5. 46 Capítulo 6. Pruebas Número de muestras 0 50 100 150 200 Distancia de la trayectoria seguida a la de referencia (m) 0 0.05 0.1 0.15 0.2 Figura 6.20 Evolución en cada periodo muestral de la distancia del punto más cercano del trayecto al vehículo en la prueba del alce. A pesar de la imposibilidad del seguimiento de la trayectoria, no se consigue en ningún momento una distancia a la referencia mayor de 20cm. Para las cuatro rectas diferentes por las que pasará tras la primera ocurre el mismo patrón, un primer cambio de dirección mayor para a continuación uno menor en sentido contrario y tener ya la dirección de la recta. Asimismo, la acción de control dinámica es capaz de seguir en todo momento a la referencia dada por el control cinemático. 6.5.2 Seguimiento de una trayectoria de una trayectoria en forma de ocho En esta prueba se hará a nuestro vehículo seguir una trayectoria formada por dos círculos de 40m de radio. El coche comenzará 2 metros por encima del punto (0,0) , que será el más cercano a él. Esta prueba es además lo más parecido a dar un escalón de referencia a la acción de control δD La prueba durará 63 segundos y los resultados obtenidos son: 6.5 Elección de un controlador dinámico óptimo 47 Tiempo (s) 0 10 20 30 40 50 60 Velocidad v [m/s2] 7.5 8 8.5 Referencia Velocidad Tiempo (s) 0 10 20 30 40 50 60 Control de la velocidad ω'RT [m/s2] ×10-3 -4 -2 0 2 4 6 8 Tiempo (s) 0 10 20 30 40 50 60 β [rad] -0.02 -0.01 0 0.01 Tiempo (s) 0 10 20 30 40 50 60 Control de la dirección δD [rad] -0.15 -0.1 -0.05 0 0.05 0.1 Referencia Acción de control Tiempo (s) 0 10 20 30 40 50 60 θ' [rad/s] -0.6 -0.4 -0.2 0 0.2 0.4 Figura 6.21 Acciones controlador usado en el seguimiento de un ocho. Eje x (m) -40 -20 0 20 40 60 80 100 120 140 Eje y (m) -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 Trayectoria de referencia Trayectoria seguida Figura 6.22 Trayectoria seguida para el controlador usado en el seguimiento de un ocho. 48 Capítulo 6. Pruebas Número de muestras 0 100 200 300 400 500 600 700 800 900 Distancia de la trayectoria seguida a la de referencia (m) 0 0.5 1 1.5 2 2.5 Figura 6.23 Evolución en cada periodo muestral de la distancia del punto más cercano del trayecto al vehículo en el seguimiento de un ocho. Exceptuando los puntos en los que cambia la dirección (el punto de unión entre ambas circunferencias), el vehículo mantiene constantemente un error pequeño de unos 14cm. Aunque es cierto que a la hora del cambio de δD no existe un escalón como tal (como ocurriría si los resultados fuesen perfectos), esto se debe a este pequeño error, que el método Pure Pursuit intenta solucionar en ese momento. El comportamiento inicial se puede explicar como la manera que el método Pure Pursuit tiene de generar la trayectoria de acercamiento más rápida, ya que en primer lugar el vehículo realiza un giro hacia derechas que debe contrarrestar para comenzar a seguir la trayectoria. Se podría escoger un acercamiento más suave con una mayor distancia lookahead, pero se haría que tardase más en llegar. Asimismo, con una mayor distancia lookahead surgirían problemas en replicar resultados mejores en la prueba del alce, donde aparecerían errores entre la trayectoria del vehículo y la de referencia mayores, con lo que esta parece una buena solución La acción δD consigue en todo el recorrido un control suave del que se podrían esperar buenos resultados en la práctica. Seguimiento de una trayectoria en ocho con una RδDin =0,4 En este subapartado vamos a realizar la misma prueba pero con una menor RδDin para comprobar el resultado de cambiar este peso de ponderación. Se ha obtenido lo siguiente: 6.5 Elección de un controlador dinámico óptimo 49 Tiempo (s) 0 10 20 30 40 50 60 Velocidad v [m/s2] 7.5 8 8.5 Referencia Velocidad Tiempo (s) 0 10 20 30 40 50 60 Control de la velocidad ω'RT [m/s2] ×10-3 -4 -2 0 2 4 6 8 Tiempo (s) 0 10 20 30 40 50 60 β [rad] -0.02 -0.015 -0.01 -0.005 0 0.005 0.01 Tiempo (s) 0 10 20 30 40 50 60 Control de la dirección δD [rad] -0.15 -0.1 -0.05 0 0.05 0.1 Referencia Acción de control Tiempo (s) 0 10 20 30 40 50 60 θ' [rad/s] -0.6 -0.4 -0.2 0 0.2 0.4 Figura 6.24 Acciones controlador usado en el seguimiento de un ocho con RδDin =0,4. Se observa como, al seguir aumentando el peso de δ en la minimización de la función de coste, el sistema empieza a oscilar rápidamente en torno a la referencia, aunque consigue alcanzarla. A pesar de que en ningún momento deja de seguir la trayectoria, o se encuentra a mucha distancia, como se indicará ahora, no parece una buena solución a la hora de poner el controlador en práctica, pudiendo incurrir en numerosos errores. Además, se puede intuir como, si se siguiese bajando este peso, se llegaría a inestabilizar el sistema. 50 Capítulo 6. Pruebas Eje x (m) -40 -20 0 20 40 60 80 100 120 140 Eje y (m) -90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 Trayectoria de referencia Trayectoria seguida Figura 6.25 Trayectoria seguida para el controlador usado en el seguimiento de un ocho para RδDin =0,4. Número de muestras 0 100 200 300 400 500 600 700 800 900 Distancia de la trayectoria seguida a la de referencia (m) 0 0.5 1 1.5 2 2.5 Figura 6.26 Evolución en cada periodo muestral de la distancia del punto más cercano del trayecto al vehículo en el seguimiento de un ocho para RδDin =0,4. Seguimiento de una trayectoria en ocho con una RδDin =6 De igual forma, se va a hacer lo mismo aumentando R . Hay que recordar que al hacer uso de la minimización de la función de coste, se puede mantener uno de los pesos constantes, ya que aumentar uno de ellos equivale a disminuir el otro, y viceversa. En este caso, se obtiene lo siguiente: 6.5 Elección de un controlador dinámico óptimo 51 Tiempo (s) 0 10 20 30 40 50 60 Velocidad v [m/s2] 7.5 8 8.5 Referencia Tiempo (s) 0 10 20 30 40 50 60 Control de la velocidad ω'RT [m/s2] ×10-3 -4 -2 0 2 4 6 8 Tiempo (s) 0 10 20 30 40 50 60 β [rad] -0.02 -0.015 -0.01 -0.005 0 0.005 0.01 Tiempo (s) 0 5 10 15 20 25 30 35 40 45 Control de la dirección δD [rad] -0.35 -0.3 -0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 Referencia Acción de control Tiempo (s) 0 10 20 30 40 50 60 θ' [rad/s] -0.6 -0.4 -0.2 0 0.2 0.4 Figura 6.27 Acciones controlador usado en el seguimiento de un ocho con RδDin =6. Aunque no se observa a primera vista, analizando más detenidamente los primeros segundos de la prueba se percibe: Tiempo (s) 12345678910 Control de la dirección δD [rad] -0.15 -0.1 -0.05 0 0.05 0.1 Referencia Acción de control Figura 6.28 Acciones controlador usado en el seguimiento de un ocho con RδDin =6. Al escoger una R mayor, el primer sumando de la función de coste tendrá un peso menor, lo 52 Capítulo 6. Pruebas que supone que el sistema emplea en principio una menor energía en seguir δ , resultando en una respuesta más lenta. Cabe decir, que a diferencia del anterior subapartado, en este sí que sería una respuesta válida. De igual forma, se podría haber hecho el cambio de pesos en el control cinemático, resultando en una referencia para la dinámica diferente, que se puede observar en cierto modo en los primeros experimentos de este capítulo. 6.5.3 Cambio de sentido y seguimiento de una trayectoria circular En esta prueba el vehículo partirá, al igual que en la anterior, de la posición (0,2)m , pero con una diferencia: su orientación, que en todas las pruebas anteriores ha tenido un angulo de 0 º con el eje x, en esta ocasión va a partir de π. Así, se podrá observar como se comporta el método de seguimiento de trayectorias en estos casos. Hay que indicar que, para el caso Staley, se obtendría un resultado similar con una buena sintonización. Tiempo (s) 0 5 10 15 20 25 30 35 Velocidad v [m/s2] 7.5 8 8.5 Referencia Velocidad Tiempo (s) 0 5 10 15 20 25 30 35 Control de la velocidad ω'RT [m/s2] ×10-3 -4 -2 0 2 4 6 8 Tiempo (s) 0 5 10 15 20 25 30 35 β [rad] -0.02 0 0.02 0.04 Tiempo (s) 0 5 10 15 20 25 30 35 Control de la dirección δD [rad] -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25 Referencia Acción de control Tiempo (s) 0 5 10 15 20 25 30 35 θ' [rad/s] -1 -0.5 0 0.5 1 1.5 Figura 6.29 Acciones controlador usado en la prueba del cambio de sentido en una trayectoria circular. 6.5 Elección de un controlador dinámico óptimo 53 Eje x (m) -100 -80 -60 -40 -20 0 20 40 60 80 100 Eje y (m) -120 -100 -80 -60 -40 -20 0 20 Trayectoria de referencia Trayectoria seguida Figura 6.30 Trayectoria seguida para el controlador usado en la prueba del cambio de sentido en una trayectoria circular. Número de muestras 0 50 100 150 200 250 300 350 400 450 500 550 Distancia de la trayectoria seguida a la de referencia (m) 0 1 2 3 4 5 6 Figura 6.31 Evolución en cada periodo muestral de la distancia del punto más cercano del trayecto al vehículo en la prueba del cambio de sentido en una trayectoria circular. Aunque es cierto que en cierto momento el vehículo se aleja más de lo que estaba de la referencia, hay que entender que está constantemente moviéndose a 8m/s2 , con lo cual sería imposible que no se alejase en cierta distancia para poder retomar el camino de la referencia. Por lo demás, hay que destacar la suavidad con la que el método de seguimiento de trayectoria genera la referencia de giro. En el caso de que se hubiese usado el controlador Stanley, se tendría que haber saturado la salida de 54 Capítulo 6. Pruebas acuerdo a las características descritas en el Capítulo 2. El controlador cinemático, sigue generando una referencia suave que es seguida por el control dinámico. 6.5.4 Seguimiento de una trayectoria circular haciendo cambios de velocidad Por último, se probará el control de velocidad. Se hará circular al vehículo alrededor de un círculo a 8m/s2 , hasta que en un momento bajemos la velocidad a 5m/s2 y volvamos a aumentarla a 8m/s2 . Partiremos de una posición de (0,2)m . El código en MatLab para esta prueba vendrá en el archivo entregado comentado por completo. El principal problema de este control es que deben ser recalculadas varias de las funciones de transferencia ya que muchas de ellas son dependientes de la velocidad, lo que produce un alto coste computacional. Aparecen nuevas funciones de transferencia, las que ocurren a 5m/s2 , que son mostradas a continuación: •Funciones de transferencia para el control cinemático a 5m/s2 G(z)yL=0,35 z−1(6.12) G(z)θ=0,4667 z−1(6.13) •Funciones de transferencia para el control dinámico de δDa5m/s2 G(z)β=0,3084z−0,03153 z2−0,256z+0,008688 (6.14) G(z)˙ θ=3,049z−0,6438 z2−0,256z+0,008688 (6.15) Se obtiene lo siguiente: 6.5 Elección de un controlador dinámico óptimo 55 Tiempo (s) 0 5 10 15 20 25 30 35 Velocidad v [m/s2] 3 4 5 6 7 8 9 10 Velocidad Referencia Tiempo (s) 0 5 10 15 20 25 30 35 Control de la velocidad ω'RT [m/s2] -3 -2 -1 0 1 2 3 Tiempo (s) 0 5 10 15 20 25 30 35 β [rad] -0.02 -0.015 -0.01 -0.005 0 0.005 0.01 Tiempo (s) 0 5 10 15 20 25 30 35 Control de la dirección δD [rad] -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25 Referencia Acción de control Tiempo (s) 0 5 10 15 20 25 30 35 θ' [rad/s] -0.6 -0.4 -0.2 0 0.2 0.4 Figura 6.32 Acciones controlador usado en la prueba de cambio de velocidad. Eje x (m) -100 -80 -60 -40 -20 0 20 40 60 80 100 Eje y (m) -120 -100 -80 -60 -40 -20 0 20 Trayectoria de referencia Trayectoria seguida Figura 6.33 Trayectoria seguida para el controlador usado en el en la prueba de cambio de velocidad. Bibliografía [1] J. Barraquand and Jean-Claude Latombe, On Nonholonomic Mobile Robots and Optimal Maneuvering, 1989. [2] Ford Motor Company, Ford invests in Argo AI, a new artificial intelligence company, in drive for autonomous vehicle leadership, February 2017. [3] R. Craig Coulter, Implementation of the Pure Pursuit Path Tracking Algorithm, January 1992. [4] Pleno del Congreso de los Diputados, Orden del día sesión n º 76, Martes 10 de octubre, 2017. [5] Jorge Sanz Fernández, El País: El Audi A8 alcanza una autonom´a nivel 3 que no disfrutaremos en España, de momento, July 2017. [6] BMW Group, BMW Group, Intel and Mobileye team up to bring fully autonomous driving to streets by 2021, July 2016. [7] Christian R. Kelber, Daniel Webber, Guilhenne Klein Gomes, Mauricio A. Lohmann, Marcelo S. Rodrigues, and Danton Ledur, Active Steering Unit with integrated ACC for X-by-Wire vehicles using a joystick as H.M.I., June 2004. [8] C.R. Kelber, C.R. Jung, F.S. Osório, and F.J. Heinen, Electrical drives in intelligent vehicles: Basis for active driver assistance systems, June 2005. [9] Microsoft, Renault-Nissan and Microsoft partner to deliver the future of connected driving, September 2016. [10] Mehmet Fatih Ozkan, Using a USV to efficiently clear uncertainty from aerialimages for rescue boat path planning in flooded urbanenvironments, May 2019. [11] A. Pozo-Ruz, C. Urdiales, A. Bandera, E. J. Pérez, and F. Sandoval, A path tracking method for autonomous mobile robots based on grid decomposition, 2006. [12] Guilherme V. Raffo, Algoritmos de controle preditivo para seguimento de trajetórias de veículos autônomos, October 2005. [13] Daniel Rodríguez Ramírez and Carlos Bordons Alba, Apuntes de ingeniería de control, 2005. [14] Reuters, El País: Stanley, el vehículo sin conductor de la Universidad de Stanford, gana la carrera de autos-robot, October 2005. [15] Jarrod M. Snider, Automatic steering methods for autonomous automobile path tracking, February 2009. 63 64 Bibliografía [16] Jonathan Sprinkle, J. Mikael Eklund, Humberto Gonzalez, Esten Grøtli, Pannag Sanketi, Michael Moser, and S. Shankar Sastry, Recovering models of a four-wheel vehicle using vehicular system data, August 2008. [17] Sebastian Thrun, Mike Montemerlo, Hendrik Dahlkamp, David Stavens, Andrei Aron, James Diebel, Philip Fong, John Gale, Morgan Halpenny, GabrielHoffmann, Kenny Lau, Celia Oakley, Mark Palatucci, Vaughan Pratt, Pascal Stang, Sven Strohband, Cedric Dupont, Lars- Erik Jendrossek, Christian Koelen, Charles Markey, Carlo Rummel, Joe van Niekerk, Eric Jensen, Philippe Alessandrini, Gary Bradski, Bob Davies, Scott Ettinger, Adrian Kaehler, Ara NeanIntel, and Pamela Mahoney, Stanley: The robot that won the DARPA Grand Challenge, 2006.