Migración del software de control de un vehículo a un computador dedicado
Openalex
Resumen
Este trabajo fin de grado se engloba dentro del Programa AUTOPIA, programa llevado a cabo en el Centro de Automatica y Robotica (CAR) CSIC-UPM, localizado en Arganda del Rey, Madrid. Dicho programa investiga el desarrollo de vehiculos autonomos, es decir, sin conductor; tema de frecuente discusion hoy en dia. Este trabajo surge de la necesidad de que los vehiculos autonomos que circulan en Espana deben incorporar un sistema override o take-over que devuelva el control del vehiculo al conductor cuando este intente modificar la direccion o la velocidad. Este requisito esta regulado por la normativa de la Direccion General de Trafico. El documento donde quedan definidos los requisitos para la circulacion de coches automatizados se recoge en los anexos del presente trabajo. El objetivo final de este trabajo es aumentar la robustez del sistema de control desarrollado por el Programa AUTOPIA para la conduccion autonoma de vehiculos y gestionar, de una manera mas eficiente, la inicializacion de los sistemas de control del freno y del volante, ademas de incluir el sistema take-over anteriormente explicado. Actualmente, el sistema se encuentra implementado en un PC con sistema operativo Ubuntu y se plantea migrar parte del software a un sistema dedicado. Para ello se dispondra de una placa controladora comercial, la cual sera fruto de un previo analisis de mercado. Los requisitos minimos de dicha placa seran: - Bajo coste - Rendimiento minimo necesario para gestionar las comunicaciones en el coche - Capacidad de lectura de mensajes CAN (Controller Area Network), tipico protocolo de comunicacion en los coches actuales - Comunicacion USB con el ordenador principal - 2 puertos serie adicionales para la comunicacion con los controladores de posicion digitales del freno y del volante. El sistema final que se desarrollara para este trabajo fin de grado debera conseguir leer los mensajes que el PC envie a traves del USB con una codificacion a determinar, interpretarlos y mandar las ordenes del ordenador traducidas a la comunicacion propia de los controladores digitales de los motores de freno y volante. ETAPA 1: Seleccion de la Placa Tras el analisis de mercado, cuyos requisitos fueron detallados en el parrafo anterior, y que se encuentra redactado en el Capitulo 4 de esta memoria, se llega a la conclusion que la placa microcontroladora que mejor se adapta es la Teensy 3.2. Una vez decidido con que Hardware se va a trabajar, se puede pasar a las pruebas de validacion y posteriormente al desarrollo software. ETAPA 2: Gestion de la comunicacion Para la gestion de la comunicacion, se ha implementado una maquina de estados, de tal manera que se le da prioridad a los tipos de comunicacion que se consideran mas importantes, o que tienen una frecuencia de mensajes mayor. Como ya se ha mencionado previamente, el bus CAN en el vehiculo manda mensajes con una frecuencia bastante considerable, por lo que este es considerado prioritario. Ademas, es de vital importancia que una comunicacion no bloquee el hilo de ejecucion del programa principal en la placa, la cual no cuenta con capacidad para multithreading como si tiene por ejemplo un ordenador. Para la comunicacion con el ordenador, que sera el encargado de decidir la referencia de posicion del freno y del volante, se utilizara comunicacion serie mediante USB. Ademas se desarrollara un protocolo de comunicacion para que las comunicaciones entre el ordenador y la placa fuesen rapidas y robustas, objetivo principal de este trabajo. Al ser una tarea tan critica, la comunicacion USB tambien sera considerada prioritaria. Por otro lado, la comunicacion con los controladores digitales de freno y volante se realiza mediante el protocolo RS232, basado en comunicacion mediante puerto serie. Para la comunicacion tanto por bus CAN como por RS232 se necesitara de un circuito electronico que se describira mas adelante en este trabajo. ETAPA 3: Gestion del freno y del volante Para la calibracion y el posterior control de las posiciones del freno y del volante se utilizan dos maquinas de estados. El sistema se encontrara en un estado de PAUSA hasta que llegue por USB la orden de empezar la calibracion. Dicha calibracion busca establecer la posicion cero, la cual los sistemas de freno y volante utilizaran como origen. Para la calibracion del volante se utilizara la comunicacion CAN para saber en que posicion se encuentra el volante en dicho momento e indicar a la controladora del motor del volante dicha posicion actual. En cambio, con el propio CAN se podra detectar cuando el freno esta activo moviendo el mismo. Estableciendo el punto de conmutacion como origen de posiciones del freno. Esta calibracion es necesaria debido a que la controladora de cada motor funciona mediante un Encoder incremental acoplado al eje de dicho motor. Este tipo de Encoder funciona contando los pulsos recibidos en el movimiento de dicho Encoder, pudiendo registrar solo movimientos relativos, si saber la posicion actual del motor. Por esto, se debe indicar a la controladora en algun momento de la calibracion, cual es la posicion actual del Encoder. Posteriormente, los sistemas de freno y volante, contaran con tres estados basicos que configuraran el sistema segun las acciones del usuario o del sistema de control. Por defecto, los sistemas de freno y volante se encontraran en un estado de RUNNING, en los cuales se ejecutaran las ordenes de posicion que lleguen para el freno o el volante. Si pasa un determinado tiempo sin que llegue ninguna orden, se pasara a un estado IDLE, en el cual de desbloqueara el volante y se llevara el freno a la posicion cero. De igual manera se procedera si se detecta la accion del usuario sobre estos actuadores provocando un override. Si el conductor pisa el freno o hace fuerza en el volante, se pasara a dicho estado OVERRIDE, desbloqueando el volante y el freno. Estas acciones del usuario se detectaran mediante un sensor de presion alojado en el pedal del freno y el par ejercido en la columna, dato que se puede obtener de la comunicacion bus CAN. ETAPA 4: Pruebas del sistema. Por ultimo se realizaron las pruebas finales para testear todo el sistema desarrollado en este trabajo fin de grado. Mediante las pruebas en pista se probo que el ordenador embarcado era capaz de trabajar con la Teensy sin grandes errores en la conduccion autonoma comparado con la conduccion utilizando unicamente el ordenador, asi como que el sistema era capaz de detectar los overrides del conductor, tanto en el freno como el volante, y la correcta vuelta al sistema autonomo. Tras estas pruebas se concluyo que el sistema con la Teensy era perfectamente compatible y valido para la conduccion autonoma junto con el ordenador embarcado, aportando como ventaja la deteccion del override y la reduccion de carga computacional en la gestion de la calibracion de los actuadores.
Cómo citar
Victor Sánchez Prieto (2017). Migración del software de control de un vehículo a un computador dedicado.