scieee AI-readable full text Open interactive document viewer

Instrumentación de un vehículo ferroviario para la auscultación dinámica con sistemas de visión artificial

Amador Olivares, Juan Manuel

Abstract

En este trabajo final de grado se presenta un sistema de adquisición de datos embarcado en un vehículo ferroviario para proyectos experimentales de auscultación de vías. El sistema de adquisición integra sensores inerciales para la auscultación dinámica, y cámaras de vídeo que permiten el uso de técnicas de visión artificial en la tarea de la auscultación de vías. Se describirá la problemática de la auscultación, se desarrollará el problema cinemático asociado a la auscultación de vías con cámaras de vídeo y se describirán los sistemas de adquisición, tanto los sensores elegidos, como su diseño electrónico y programación.

Full text

Universidad de Sevilla Escuela T´ecnica Superior de Ingenier´ıa Departamento de Ingenier´ıa Mec´anica y de Fabricaci´on Proyecto fin de grado Instrumentaci´ on de un veh´ ıculo ferroviario para la auscultaci´ on din´ amica con sistemas de visi´ on artificial Autor: Juan Manuel Amador Olivares Tutor: Jos´e Luis Escalona Franco Grado en Ingenier´ıa Electr´onica, Rob´otica y Mecatr´onica Dedicado a mi familia I II Agradecimientos Quiero agredecer en primer lugar a mi novia por su apoyo y su inter´es en el desarrollo del proyecto. A mi tutor por haberme guiado y ayudado en todo lo que ha podido. Tambi´en quiero agredecerle a mis compa˜neros de trabajo todos sus consejos y la ayuda que siempre est´an dispuestos a dar. A mi familia, porque su apoyo incondicional es lo m´as valioso que tengo y lo que me da fuerzas para luchar por alcanzar cualquier meta. III IV AGRADECIMIENTOS Resumen En este trabajo final de grado se presenta un sistema de adquisici´on de datos embarcado en un veh´ıculo ferroviario para proyectos experimentales de auscultaci´on de v´ıas. El sistema de adquisici´on integra sensores inerciales para la auscultaci´on din´amica, y c´amaras de v´ıdeo que permiten el uso de t´ecnicas de visi´on artifical en la tarea de la auscultaci´on de v´ıas. Se describir´a la problem´atica de la auscultaci´on, se desarrollar´a el problema cinem´atico asociado a la auscultaci´on de v´ıas con c´amaras de v´ıdeo y se describir´an los sistemas de adquisici´on, tanto los sensores elegidos, como su dise˜no electr´onico y programaci´on. V VI RESUMEN ´ Indice general Agradecimientos III Resumen V Lista de figuras IX Lista de tablas XI 1. Introducci´on 1 1.1. Auscultaci´on de v´ıas . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Respuesta din´amica del veh´ıculo . . . . . . . . . . . . . . . . . 4 2. Formulaci´on del problema 5 2.1. Cinem´atica de la visi´on artificial con proyecci´on l´aser lineal . . 5 2.2. Cinem´atica vehicular . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.1. Cinem´atica de los puntos filmados desde un veh´ıculo enmovimiento ...................... 8 2.2.2. Cinem´atica de la v´ıa irregular . . . . . . . . . . . . . . 9 2.3. Cinem´atica de la visi´on artificial desde un veh´ıculo en movimiento............................... 11 2.3.1. Identificaci´on de un punto en el perfil del carril . . . . 12 2.3.1.1. Segmentaci´on del perfil del carril iluminado por el l´aser en una imagen en escala de grises 12 2.3.1.2. Ajuste con dos circunferencias . . . . . . . . . 16 3. Equipo de sensores 21 3.1. Justificaci´on del equipo de sensores . . . . . . . . . . . . . . . 22 3.2. Sistema de percepci´on . . . . . . . . . . . . . . . . . . . . . . 23 3.2.1. C´amara de video . . . . . . . . . . . . . . . . . . . . . 23 3.2.2. Lente............................ 28 3.2.3. L´aser de proyecci´on lineal . . . . . . . . . . . . . . . . 29 3.2.4. C´amara de grabaci´on del viaje . . . . . . . . . . . . . . 29 VII 2CAP´ ITULO 1. INTRODUCCI ´ ON Figura 1.1: Medida de irregularidad de los carriles [6] propio vector de irregularidad con coordenadas x, y, z. Los defectos de los carriles se clasifican por las desviaciones de la geometr´ıa de estos, de acuerdo a los siguientes par´ametros: 1. Alineamiento. De define como (yizq +yder)/2. 2. Nivelaci´on. De define como (zizq −zder)/2. 3. Ancho de v´ıa. De define como (yizq −yder)/2. 4. Pefil vertical. De define como (zizq +zder)/2. 5. Peralte. En los tramos curvos de la v´ıa se eleva la parte exterior respecto a la interior, cre´andose un ´angulo respecto a la horizontal. Por tanto, el peralte peude ser interpretado como un ”defecto”de nivelaci´on intencionado en los tramos curvos. 6. Alabeo. Ritmo de cambio de la nivelaci´on de los carriles. 7. Desgaste de perfil. Diferencia entre el perfil del carril real y el ideal. Las irregularidades pueden ser puntuales (como el caso de una frenada brusca). Sin embargo, suelen tener asociada una longitud de onda car´acter´ıstica. Conocer la magnitud de las irregularidades as´ı como la frecuencia (longitud de onda) es de vital importancia para el dise˜no un sistemas de adquisici´on de datos cuya funci´on sea medir estas irregularidades. 1.1. AUSCULTACI ´ ON DE V´ IAS 3 Figura 1.2: Medidas de los defectos en funci´on de la distancia [7] En la figura 1.2 puede observarse la magnitud de la nivelaci´on y el alineamiento en funci´on de la distancia recorrida por el veh´ıculo. Es posible conocer la longitud de onda caracter´ıstica mediante el espectro de potencia (Power Espectral Density, PSD) calculado con la FFT (Fast Fourier Transform), este espectro se muestra en la figura 1.3. Normalmente los defectos de alineamiento y nivelaci´on suelen tener una PSD aproximadamente lineal, siendo mayor la amplitud del defecto para mayores longitudes de onda. Como puede observarse en las gr´aficas de la figura 1.3 las longitudes de onda de inter´es de las irregularidades es de 1 m debido a que por debajo de esta longitud de onda las irregularidades son muy peque˜nas. En este TFG se va a describir el sistema de adquisici´on de datos del sistema embarcado que realice la auscultaci´on mediante el uso de sensores inerciales y t´ecnicas de visi´on artificial, y se va a introducir el problema matem´atico de la auscultaci´on din´amica de v´ıas con el uso de visi´on artificial. Este sistema se ha fabricado, realiz´andose con ´el varios ensayos con veh´ıculos ferroviarios. El sistema de adquisici´on de datos ser´a el encargado de sincronizar los 4CAP´ ITULO 1. INTRODUCCI ´ ON Figura 1.3: Espectro de potencia de los defectos [7] distintos sensores y controlar el flujo de datos que ser´an procesados por el sistema embarcado. 1.2. Respuesta din´amica del veh´ıculo Para conocer las irregularidades de la v´ıa el sistema embarcado procesa los datos de la din´amica del veh´ıculo. Esta informaci´on puede ser utilizada con otros fines de gran importancia, como la prevenci´on de accidentes o la medici´on del confort. Cap´ıtulo 2 Formulaci´on del problema Este cap´ıtulo est´a basado en el trabajo de Jos´e Lu´ıs Escalona Franco, Cinem´atica ferroviaria para su aplicaci´on a sistemas de visi´on artificial [5]. El problema que se plantea para la obtenci´on de la din´amica vehicular y las irregularidades de la v´ıa es fundamentalmente cinem´atico. En primer lugar, se van a describir las ecuaciones utilizadas de visi´on artificial. En segundo lugar, se formular´an las ecuaciones que describen la cinem´atica vehicular. Una vez conocidas las distintas ecuaciones que rigen la cinem´atica, se formular´a el sistema de ecuaciones completo del problema. Por ´ultimo, se describir´a el algortimo que obtiene la informaci´on de la posici´on y orientaci´on de los carriles grabados por las c´amaras de v´ıdeo a partir de las im´agenes grabadas por estas. 2.1. Cinem´atica de la visi´on artificial con proyecci´on l´aser lineal El uso de c´amaras de v´ıdeo es indispensable para una reconstrucci´on y caracterizaci´on precisa de las irregularidades de las v´ıas y el desgaste del perfil de los carriles. El modelo de c´amara utilizado es el de c´amara estenopeica o c´amara oscura tal y como puede observarse en la figura La posici´on vcam Pes la posici´on real de un punto del carril respecto al sistema de referencia de la c´amara < xcam, ycam, zcam >. La posici´on vim P0es la posici´on de la proyecci´on del punto Pen el plano sensor respecto al sistema de referencia de la imagen < xim, yim, f >. Estas dos posiciones pueden relacionarse mediante la ecuaci´on 2.1, deducida del modelo de c´amara oscura de la c´amara y los tri´angulos semejantes que forman las componentes de los vectores vcam Pyvim P0. 5 6CAP´ ITULO 2. FORMULACI ´ ON DEL PROBLEMA Figura 2.1: Cinem´atica de la visi´on artificial [5] (vcam P)z f=(vcam P)x (vim P0)x =(vcam P)y (vim P0)y (2.1) donde vcam P= [(vcam P)x,(vcam P)y,(vcam P)z]Tyvim P0= [(vim P0)x,(vim P0)y,(vim P0)z]T son las componentes de los puntos P, en la realidad, y P0, en la imagen, respectivamente. La ecuaci´on 2.1 puede reescribirse de la forma: f (vcam P)z vcam P=vim P0(2.2) Las componentes xeyde vim P0son datos que se pueden extraer de la imagen grabada de la siguiente forma: (vim P0)x=a(nx−nx0) (vim P0)y=b(ny−ny0) (2.3) donde aybson la anchura y altura de los p´ıxeles de la c´amara respectivamente. nxynyson las posiciones xeydel p´ıxel a procesar. Las constantes nx0yny0indican la posici´on del centro de la imagen (donde se encuentra el origen del sistema de coordenadas de la imagen). La ecuaci´on 2.2 contiene dos ecuaciones independientes para el c´alculo de las tres componentes de vcam P(sistema indeterminado). De la imagen grabada por una c´amara (2D) no se puede extraer la posici´on de los puntos que aparecen en el espacio (3D). Una t´ecnica com´un para atajar este problema es utilizar ilumminaci´on estructurada. Este tipo de iluminaci´on se sirve de la proyecci´on de puntos, franjas o rejillas sobre la superficie de trabajo. En 2.1. CINEM ´ ATICA DE LA VISI ´ ON ARTIFICIAL CON PROYECCI ´ ON L ´ ASER LINEAL7 funci´on de c´omo se deforme este patr´on de luz sobre la superficie se puede detectar las singularidades de la pieza objeto de an´alisis. En este proyecto hemos conseguido la iluminaci´on estructurada utilizando un l´aser de proyecci´on lineal que genera un haz plano de luz adem´as de la c´amara. Gracas al uso del l´aser se tiene la informaci´on de que todos los puntos iluminados por el l´aser est´an contenidos en un plano, es decir, que los vectores posici´on de dichos puntos cumplen la siguiente condici´on: a(vcam Q)x+b(vcam Q)y+c(vcam Q)z−d= 0 ⇒[a, b, c]  vcam Q)x vcam Q)y vcam Q)z −d= 0 ⇒ 4Tvcam Q−d= 0 (2.4) donde a,b,c, y dson los par´ametros de la ecuaci´on general del plano del l´aser y vcam Qes el vector posici´on de los puntos Qiluminados por el l´aser en el sistema de referencia de la c´amara. Cuando la c´amara y el l´aser son estacionarios, las dos ecuaciones independientes que se extraen de la ecuaci´on 2.2 junto con la ecuaci´on 2.4 dan lugar a un sistema determinado de ecuaciones (tres ecuaciones y tres inc´ognitas) del que se puede extraer la posici´on (3D) vcam Pde los puntos grabados en la imagen e iluminados por el l´aser. El problema que se quiere resolver en el presente proyecto es mucho m´as complejo que este porque: 1. Ni la c´amara ni el l´aser son estacionarios, sino que est´an fijos a un veh´ıculo en movimiento, por lo que la orientaci´on del objeto grabado respecto a la c´amara y el l´aser puede cambiar con el tiempo. 2. El objeto cuyas coordenadas se pretende identificar no esta fijo en el espacio ni con respecto al veh´ıculo y adem´as tiene geometr´ıa cambiante. Este objeto es la secci´on transversal del carril ferroviario. 3. A partir de la imagen grabada se pretende obtener, adem´as de la gemetr´ıa de la secci´on transversal del carril, la medida de los movimientos del veh´ıculo con respecto a la v´ıa. Adem´as, debe tenerse en cuenta que el deplazamiento de los carriles respecto al veh´ıculo grabados por la c´amara pueden deberse a la propia din´amica del veh´ıculo o a las irregularidades de los carriles. Ambos problemas est´an acoplados. Los aspectos matem´aticos relacionados con estos movimientos y geometr´ıas se exponen en la figura 2.2. En ella se muestran un ´unico l´aser y una c´amara. Sin embargo, el veh´ıculo tendr´a dos sistemas de visi´on como este, de manera que habr´a uno para cada carril de la v´ıa. 8CAP´ ITULO 2. FORMULACI ´ ON DEL PROBLEMA Figura 2.2: Cinem´atica del veh´ıculo instrumentado [5] 2.2. Cinem´atica vehicular La cinem´atica vehicular, las irregularidades de la v´ıa y las im´agenes grabadas de los carriles est´an relacionadas entre ellas. En esta secci´on se desarrollar´an las ecuaciones que nos permitir´an (junto a la cinem´atica de la visi´on artificial) formular el sistema de ecuaciones que se van a resolver. 2.2.1. Cinem´atica de los puntos filmados desde un veh´ıculo en movimiento La figura 2.2 muestra esquem´aticamente la c´amara y el l´aser instalados en el veh´ıculo. Para determinar la din´amica del veh´ıculo en cualquier instante (uno de los objetivos del sistema embarcado), es necesario conocer la posici´on y orientaci´on (tres coordenadas de posici´on: rcb x,rcb y,rcb z, y tres coordenadas de orientaci´on: ϕcb,θcb,ψcb,roll,pitch yyaw respectivamente) del sistema de referencia del veh´ıculo < xcb, ycb, zcb (cb ≡car body) con respecto al sistema de referencia de la v´ıa < xt, yt, zt>(t ≡track). Se supone que el sistema de referencia de la v´ıa se mueve con la misma velocidad que el veh´ıculo a lo largo de la l´ınea central de la v´ıa con geometr´ıa ideal (sin verse modificada por las irregularidades). Las variaciones de las coordenadas qcb = [rcb x,rcb y, rcb z, ϕcb,θcb,ψcb] son debidas por tanto a las irregularidades de la v´ıa y a la 2.2. CINEM ´ ATICA VEHICULAR 9 din´amica del veh´ıculo (en respuesta, entre otras cosas, a la irregularidad). Se puede asumir sin perdida de generalidad que el sistema de referencia de la v´ıa acompa˜na longitudinalmente al sistema de referencia del veh´ıculo, es decir, que xcb = 0. En el planteamiento que sigue se supone que son conocidas la posici´on respecto al car body (ucam) y orientaci´on de la c´amara con respecto al sistema de referencia del veh´ıculo, as´ı como los par´ametros de la ecuaci´on general del plano proyectado por el l´aser con respecto al sistema de referencia del veh´ıculo. La posici´on de los puntos P iluminados por el l´aser y grabados por la c´amara en el sistema de referencia de la v´ıa se puede obtener como: rP=rcb +At,cb ucam +Acb,camvcam P(2.5) donde At,cb yAcb,cam son las matrices de rotaci´on del veh´ıculo con respecto a la v´ıa (variable) y de la c´amara con respecto al veh´ıculo (constante), respectivamente. Debido a que los ´angulos ϕcb,θcb,ψcb son muy peque˜nos, la matriz de orientaci´on At,cb se puede aproximar como: A=  1−ψcb θcb ψcb 1−ϕcb −θcb ϕcb 1 (2.6) En el ap´endice A secci´on A.1 se han detallado las hip´otesis y el desarrollo de obtenci´on de esta matriz de rotaci´on aproximada. 2.2.2. Cinem´atica de la v´ıa irregular Las figuras 5 y 6 muestran las relaciones cinem´aticas de la v´ıa irregular. La posici´on de cada uno de los carriles es funci´on del desplazamiento lateral y vertical del carril debido a la irregularidad con respecto a la posici´on en la curva ideal. Estas son las dos componentes de los vectores rirr left yrirr right que se muestran en la figura 2.3. La posici´on de un punto de la superficie de la cabeza del carril (por ejemplo, el carril izquierdo) con respecto al sistema de referencia de la v´ıa se puede obtener de la siguiente forma: rP=rrp 0+rirr left +At,rpurp P(2.7) donde rrp 0= [0, Lr0] es la posici´on del sistema de referencia del carril izquierdo con respecto al sistema de referencia de la v´ıa en ausencia de irregularidad, rirr left = [0,(rirr left)y,(rirr left)z]Tes el vector de irregularidad del carril izquierdo, At,rp es la matriz de rotaci´on del sistema de referencia de la secci´on transversal del carril irregular < xrp, yrp, zrp >(rp ≡rail profile) con respecto 10 CAP´ ITULO 2. FORMULACI ´ ON DEL PROBLEMA Figura 2.3: Cinem´atica de la v´ıa irregular [5] al sistema de referencia de la v´ıa, y urp Pes el vector posici´on de un punto del perfil del carril en el sistema de referencia de la secci´on transversal. Lres la distancia ideal del sistema de referencia de la v´ıa y el sistema de referencia de cada carril. c Las matrices de transformaci´on At,rp de los carriles izquierdo y derecho se pueden obtener como: At,rp left =  1 0 0 0 cos(β+δ)−sin(β+δ) 0sin(β+δ)cos(β+δ) ,At,rp right =  1 0 0 0 cos(−β+δ)−sin(−β+δ) 0sin(−β+δ)cos(−β+δ)  (2.8) donde el ´angulo βes el ´angulo que, por construcci´on, se le da a los carriles con respecto a la horizontal (peralte) mientras que el ´angulo δ= [(rirr left)z,(rirr right)z]/2Lres debido a la irregularidad. Finalmente el vector urp Pviene dado por la curva del perfil del carril: urp P= [0, sr 2, frp(sr 2)]T(2.9) donde sr 2es el par´ametro transversal del perfil del carril y frp es la funci´on que da lugar a la curva del perfil en funci´on de dicho par´ametro. Como puede observarse las matrices 2.8 son matrices de rotaci´on respecto al eje x (ver ap´endice A). 2.3. CINEM ´ ATICA DE LA VISI ´ ON ARTIFICIAL DESDE UN VEH´ ICULO EN MOVIMIENTO11 2.3. Cinem´atica de la visi´on artificial desde un veh´ıculo en movimiento El algoritmo de auscultaci´on y respuesta din´amica del veh´ıculo pretende determinar las cuatro componentes de la irregularidad de la v´ıa, es decir,las cuatro componentes no nulas de los vectores rirr left yrirr right, y las seis coordenadas de posici´on y orientaci´on del veh´ıculo (qcb = [0,rcb y,rcb z, ϕcb, θcb, ψcb]T) (9 inc´ognitas) en un conjunto de instantes durante el movimiento del veh´ıculo en la v´ıa. Para ello, hay que plantear y resolver un sistema de ecuaciones algebraico. Las ecuaciones se basan en que la posici´on de los puntos grabados e iluminados por el l´aser responden a la ecuaci´on 2.5 y tambi´en a la ecuaci´on 2.7. Adem´as se cuenta con la posici´on de los puntos en la imagen y la posici´on de los puntos como pertenecientes al plano del l´aser. Como se van a utilizar im´agenes filmadas por dos c´amaras (una del carril izquierdo y otra del derecho) resulta el siguiente sistema de ecuaciones: rcb +At,cb hucam left +Acb,cam left vcam P,lefti=rrp 0,left +rirr left +At,rp lefturp P f (vcam P,left)z vcam P,left =vim P0,left 4T leftvcam P,left −dleft = 0 rcb +At,cb hucam right +Acb,cam right vcam P,righti=rrp 0,right +rirr right +At,rp righturp P f (vcam P,right)z vcam P,right =vim P0,right 4T rightvcam P,right −dright = 0 (2.10) Se trata de un conjunto de doce ecuaciones para calcular quince inc´ognitas (indeterminado). Estas inc´ognitas son las nueve mencionadas (cinco coordenadas del veh´ıculo y cuatro irregularidades de los carriles) y las seis componentes de los dos vectores vcam P,left yvcam P,right. Estas ecuaciones dependen de un total de veinti´un par´ametros: las coordenadas de posici´on y orientaci´on de cada c´amara (doce en total) que permiten obtener ucam left ,Acb,cam left ,ucam right, Acb,cam right , los cuatro par´ametros de cada plano del´aser (ocho en total), que permiten obtener 4left,dleft,4right,dright, y la distancia focal f. Los valores num´ericos de los par´ametros deben ser obtenidos por un proceso de calibraci´on del equipo instalado. Adem´as, para el planteamiento y soluci´on de las ecuaciones 2.3 hay que extraer de las im´agenes grabadas las cuatro componentes no nulas de los vectores vim P0,left yvim P0,right. 18 CAP´ ITULO 2. FORMULACI ´ ON DEL PROBLEMA Figura 2.10: Puntos del perfil identificados mediante visi´on artificial [5] Siendo ˆ riel vector posci´on en el plano del punto ide la nube. En esta ecuaci´on el ´angulo αiresulta: αi=   arctan yi−yC1 xi−xC1,si αi< β1 arctan yi−yC1 xi−xC1,si αi> β1 (2.14) Por tanto, el ajuste de la curva por m´ınimos cuadrados resulta de minimizar la funci´on: f(z) = np X i=1 [ˆ ri−r(αi)]T[ˆ ri−r(αi)] z= [xC1, yC1, xC2, yC2]T(2.15) siendo np el n´umero de puntos de la nube considerados. La ecuaci´on 2.15 es un problema de minimizaci´on con restricciones. Es necesario imponer mediante una ecuaci´on algebraica de restricci´on que la distancia entre los puntos C1yC2coincide con la diferencia de radios R2yR1. Esta ecuaci´on resulta: g(z)=(xC1−xC2)2+ (yC1−yC2)2−(R2−R1)2= 0 (2.16) Por tanto, el ajuste de la curva del perfil aparece como resultado de resolver el problema: 2.3. CINEM ´ ATICA DE LA VISI ´ ON ARTIFICIAL DESDE UN VEH´ ICULO EN MOVIMIENTO19 min f(z) sujeto a g(z) = 0 (2.17) Utilizando el m´etodo de los Multiplizadores de Lagrange, este problema es equivalente a la resoluci´on del siguiente sistema de 5 ecuaciones algebraicas no-lineales: ∂f(z) ∂z+λ∂g(z) ∂z= 0 g(z) = 0 (2.18) donde las inc´ognitas son las cuatro componentes de zy el Mutiplicador de Lagrange λ. Por tanto, el ajuste de la curva del perfil se resuelve con un sistema de cinco ecuaciones algebraicas no-lineales cuyas inc´ognitas son z= [xC1, yC1, xC2, yC2]Tyλ. Una vez ajustado el perfil se puede identificar en este, por ejemplo, el punto de tangencia T1de los perfiles izquierdo y derecho del lado externo de la cabeza del carril. De entre los dos puntos T1que hay en cada carril (por simetr´ıa de la secci´on) es conveniennte tomar como referencia el del lado externo a la v´ıa porque la secci´on del carril se suele desgastar por su lado interno pero no por el externo debido al rozamiento con la rueda. Para hacer posible la identificaci´on de un punto del perfil como se muestra en esta secci´on hay que buscar soluci´on a la dificultad de que el perfil no se observa indeformado en la imagen. Esta dificultad se puede salvar con un m´etodo aproximado porque la orientaci´on de la c´amara y la del l´aser con respecto a la v´ıa oscilan ligeramente (por estar montados en un veh´ıculo en movimiento) respecto a la v´ıa. 20 CAP´ ITULO 2. FORMULACI ´ ON DEL PROBLEMA Cap´ıtulo 3 Equipo de sensores Los sensores son dispositivos que nos van a permitir convertir la informaci´on del mundo real en datos tratables por un sistema electr´onico. Se han utilizado los siguientes sensores: a. Sistema de percepci´on. Se ha colocado un sistema de percepci´on por cada carril. Este sistema de percepci´on est´a compuesto cada uno por una c´amara de v´ıdeo y un l´aser de proyecci´on lineal. Cada sistema va colocado en el car body en cada uno de los laterales para ser capaz de grabar la posici´on relativa de los carriles as´ı como el desgaste de su perfil. Adem´as se ha colocado una tercera c´amara de v´ıdeo en la parte central del car body para poder filmar el paso de las traviesas y otros elementos de la v´ıa. b. IMU (Inertial Measurement Unit). Se han utilizado tres sensores inerciales en el vag´on instrumentado. Uno de ellos situado en en el centro de la cabina y los dos restantes en cada uno de los lados del bogie, justo en la parte superior de los amortiguadores. Adem´as se ha colocado un sensor Figura 3.1: Veh´ıculo instrumentado [5] 21 22 CAP´ ITULO 3. EQUIPO DE SENSORES inercial en cada uno de los vagones restantes (situados en la cabina) con el objetivo de conocer la influencia de la din´amica de un vag´on en el resto del veh´ıculo. Cada uno de estos sensores est´a orientado de forma que su eje x quede alineado con el eje longitudinal (direcci´on de avance del veh´ıculo). c. Sensor de distancia. Se ha colocado un sensor de distancia perpendicular en cada lateral del car body midiendo la distancia entre este y el bogie. d. Sensor magn´etico. Se ha colocado un sensor magn´etico para dos de las ruedas del vag´on, una de cada lado, con el objetivo de medir su velocidad y posici´on (tac´ometro). En la figura 3.1 puede observarse la posici´on de cada uno de los sensores. En este cap´ıtulo se van a describir las caracter´ısticas de los distintos sensores utilizados en el proyecto y se va a justificar su uso. 3.1. Justificaci´on del equipo de sensores Este proyecto es fundamentalmente experimental, tanto desde el punto de vista del sistema de adquisici´on c´omo de los modelos matem´aticos involucrados. Es por ello que el n´umero de sensores es mayor que el estrictamente necesario para la resoluci´on del problema. El resultado es un sistema redudante. El uso de un sistema redundante es muy ´util en proyectos experimentales por los posibles fallos que puedan ocurrir y para tener distintas fuentes de datos que ayuden a validar los modelos matem´aticos. En la secci´on 1.1 se mencion´o la importancia de conocer la longitud de onda de las irregularidades en el dise˜no de un sistema de adquisici´on de datos para la auscultaci´on de v´ıas. Efectivamente, la frecuencia de adquisici´on de los sensores est´a ´ıntimamente ligada a la longitud de onda de las irregularidades. La frecuencia caracter´ıstica (en Hz) de las irregularidades depende de su longitud de onda caracter´ıstica y de la velocidad del veh´ıculo ferroviario: f=v λ(3.1) donde vesla velocidad que puede alcanzar el veh´ıculo en m/s yλla longitud de onda caracter´ıstica de las irregularidades en m. La frecuencia de adquisici´on de los sensores debe ser, al menos, diez veces la frecuencia caracter´ıstica para ser capaz de reconstruir las irregularidades de la v´ıa. En el caso de los ensayos realizados, el veh´ıculo era capaz de alcanzar los 19,44 m/s (70 km/h) con una longitud de onda caracter´ıstica de 1 m 3.2. SISTEMA DE PERCEPCI ´ ON 23 (ver secci´on 1.1) se calcula una frecuencia caracter´ıstica de 20 Hz. Como la frecuencia de adquisici´on debe ser diez veces mayor que la frecuencia caracter´ıstica, se admitir´a una frecuencia de adquisici´on m´ınima de 200 Hz para todos los sensores involucrados en la reconstrucci´on de las irregularidades. 3.2. Sistema de percepci´on Reconstruir un carril desde un veh´ıculo ferroviario no es una tarea simple. El veh´ıculo puede alcanzar grandes velocidades y por ello el sistema de percepci´on tiene que ser capaz resolver la problem´atica asociada: 1. El sistema tiene que tomar la informaci´on del perfil del carril a alta velocidad para que todos los puntos detectados por el sistema deben tener la misma coordenada longitudinal. 2. La frecuencia de escaneo debe ser lo suficientemente alta, lo suficiente como para identificar con precisi´on. 3. Aunque la posici´on del sistema de percepci´on es fija respecto al sistema de referencia del bogie, las vibraciones del veh´ıculo pueden ser suficentes como para que haya un desplazamiento entre el sistema y el bogie no despreciables. Estas vibraciones pueden a˜nadir una gran complejidad al modelo din´amico que reconstruye la posici´on y orientaci´on del veh´ıculo. Por esta raz´on la sujeci´on del sistema de percepci´on debe ser muy robusto y el sistema debe pesar lo menos posible. 4. Al pasar el carril por debajo del veh´ıculo, se reducen las posibilidades de posiciones donde montar el sistema: en los laterales del veh´ıculo, en las caras delantera o trasera, o en la cara inferior del veh´ıculo. Cualquier montaje que sobresalga de los l´ımites del veh´ıculo no es deseable por seguridad y otras razones. Por tanto, el sistema deber´a montarse en la parte inferior. El poco espacio entre la cara inferior del veh´ıculo y el suelo exige un equipo poco voluminoso. 3.2.1. C´amara de video Una apuesta segura para este cometido son los sensores de distancia de barrido. Estos sensores devuelven la distancia hasta los distintos puntos en su ´angulo de trabajo. Sin embargo estos sensores tiene un coste econ´omico muy elevado. Por ello se ha decidido utilizar una c´amara de video y un l´aser de proyecci´on lineal para la reconstrucci´on del perfil que colocadas como en la figura 24 CAP´ ITULO 3. EQUIPO DE SENSORES Figura 3.2: Reconstrucci´on con c´amara y l´aser de proyecci´on lineal [4] 3.2 y aplicando las ecuaciones 2.2 y 2.4 puede reconstruirse el perfil como puede observarse en la figura 3.3. Si el n´umero de fotogramas es lo suficientemente alto puede hacerse una reconstrucci´on 3D como puede verse en la figura 3.4. La c´amara elegida para esta funci´on es la MQ003CG-CM de XIMEA. Se trata de una c´amara CMOS a color con una resoluci´on de 648x488 p´ıxeles. Es una c´amara muy peque˜na (26x26x25 mm), con un peso de s´olo 26 gramos y con la capacidad de hacer m´as de 500 fotogramas por segundo (FPS en adelante). La c´amara se comunica mediante una conexi´on USB (3.0). Dado el enorme flujo de datos transmitido por la c´amara el fabricante recomienda conectar una sola c´amara por tarjeta USB. Para recibir y procesar las im´agenes, el fabricante ofrece xiAPI, una completa libreria de funciones para la configuraci´on, control y lectura de im´agenes de la c´amara desde nuestra propia aplicaci´on. Esta API es adem´as compatible con algunas de las m´as famosas librer´ıas de visi´on artificial y procesado de im´agenes como OpenCV. Tambi´en podemos usar programas comerciales para visualizar, guardar y procesar v´ıdeos. En los ensayos realizados se ha utilizado un sotfware propor- 3.2. SISTEMA DE PERCEPCI ´ ON 25 Figura 3.3: Reconstrucci´on con c´amara y l´aser de proyecci´on lineal [4] Figura 3.4: Reconstrucci´on 3D con varios perfiles [4] 26 CAP´ ITULO 3. EQUIPO DE SENSORES cionado por el fabricante, xiCamTool. Este software, mostrado en la figura 3.6, permite visualizar y guardar v´ıdeos e im´agenes de las c´amaras, adem´as permite cambiar algunos par´ametros de configuraci´on determinantes en los ensayos: 1. Tipo y formato de la imagen. La c´amara ofrece distintos formatos en los que transmitir la imagen, ya sea a color (RGB) o en escala de grises (mon´ocrono). Para poder implementar directamente el proceso de segmentaci´on utilizado en la secci´on 2.3.1.1 interesa utilizar un formato que devuelva una imagen en escala de grises. Los formatos en escala de grises disponibles son mono8, mono16, RAW8, RAW16. Los formatos de 16 bits tienen m´as calidad que los de 8 y debido a que env´ıan dos bytes por p´ıxel. El formato RAW16 es la imagen devuelta por la c´amara sin ning´un tipo de correcci´on. El formato mono16 hace hace un peque˜no procesado para mejorar la imagen. Sin embargo, requiere de una CPU de mayor potencia que el formato RAW16. En las pruebas realizadas antes de los ensayos se pudo comprobar que el PC guardaba con dificultades (bajadas de FPS) v´ıdeos a m´as de 30 FPS. Aunque este problema con los FPS probablemente tenga m´as relaci´on con la velocidad a la que el PC puede guardar im´agenes en el disco duro, que con la velocidad de recepci´on y procesado de las im´agenes, se ha dedicido utilizar el formato RAW16 para no cargar con m´as trabajo a la CPU del PC. 2. Tiempo de exposici´on. El tiempo de exposici´on es el tiempo que se deja entrar a la luz en el sensor. Este par´ametro es cr´ıtico en im´agenes en movimiento debido a que si el tiempo de exposici´on es demasiado alto un mismo punto de un objeto puede proyectar luz en varios elementos del sensor de la c´amara, por lo que se iluminar´ıan varios p´ıxeles en la imagen, vi´endose el objeto deformado y difumminado. Es por esto que el tiempo de exposici´on debe ser ser lo menor posible para que la curva en la imagen sea lo m´as fina posible, como en la figura 2.4 en la que el tiempo de exposici´on era de 1 ms. En la figura 3.5 se observa el un perfil con mayor espesor debido a un tiempo de exposici´on de 31 ms. 3. Ganancia. La ganancia permite multiplicar el valor de intensidad de cada p´ıxel por un valor, aumentando o disminuyendo el rango de valores de intensidad. En los ensayos se ha utilizado la m´axima ganancia fundamentalmente por dos razones: a. Como se mostr´o en la secci´on 2.3.1.1 en la segmentaci´on del perfil hay que elegir un valor umbral de intensidad para binarizar la imagen. Cuanto mayor sea el rango de valores de intensidad mejor funcionar´a 3.2. SISTEMA DE PERCEPCI ´ ON 27 Figura 3.5: Fotograma del perfil de la cabeza del carril difuminado el proceso de umbralizaci´on por la mayor diferencia entre valores claros (los puntos iluminados por el l´aser) y los oscuros, es decir, la imagen tendr´a un mayor contraste. b. Configurar un tiempo de exposici´on bajo tambi´en baja la luz que entra en el sensor, por lo que sin una ganancia lo suficientemente elevada no se distinguir´ıa la curva del perfil iluminada por el l´aser del resto de la imagen. 4. Control de FPS. Existen dos opciones para controlar cu´ando y cada cu´anto hace la c´amara una fotograf´ıa: por software y por hardware. La opci´on m´as simple por software es configurar la c´amara para que haga un n´umero concreto de fotogramas por segundo y la c´amara autom´aticamente las transmita al PC a la frecuencia configurada. Sin embargo, es muy importante que las c´amaras hagan la fotograf´ıa exactamente en el mismo instante, es decir, tienen que estar sincronizadas, sino cada c´amara har´ıa una fotograf´ıa a longitudes distintas. Una sincronizaci´on muy precisa es sencilla utilizando la v´ıa hardware, simplemente con una se˜nal cuadrada com´un a ambas c´amaras. La v´ıa hardware ha sido la elegida para sincronizar las c´amaras en este proyecto y se describir´a a continuaci´on. Para sincronizar v´ıa hardware las c´amaras se requiere utilizar su conector de pines GPIO (General Purpose Input/Output) mostrado en la figura 3.7. Este conector est´a formado por tres pines, uno de entrada uno de salida y tierra o com´un. El pin de salida puede ser utilizado para notificar acciones de la c´amara a otro sistema electr´onico. Sin embargo, en este proyecto se va a utilizar el pin de entrada para al sincronizaci´on. En este pin debe conectarse una se˜nal digital cuyo valor alto corresponda a 24 Vy el valor bajo a 0 v. Conectando una se˜nal cuadrada a la frecuencia que deesamos que la c´amara 34 CAP´ ITULO 3. EQUIPO DE SENSORES Figura 3.15: Tiempos en el proceso de adquisici´on del sensor de distancia [10] Las IMU elegidas son las 3DM-GX4-25. Una de ellas, la que va colocada en la parte central del bogie del veh´ıculo es la 3DM-GX4-45, que tiene la misma funcionalidad que la 3DM-GX4-25, a˜nadiendo adem´as GPS. Estos sensores integran un aceler´ometro, un gir´oscopo y un magnet´ometro, todos ellos de 3 ejes. El aceler´ometro tiene un rango m´aximo de ±16gy una resoluci´on de <0,1mg con un ancho de banda m´aximo de 225 Hz. El gir´oscopo tiene un rango m´aximo de ±900o/s y una resoluci´on de <0,008o/s con un ancho de banda m´aximo de 250 Hz. El magnet´ometro no va a ser utilizado en este proyecto. Tanto el aceler´ometro como el gir´oscopo tiene una m´axima frecuencia de env´ıo de paquetes de datos de 1000 Hz. Estos sensores tienen adem´as la posibilidad de estimar medidas mediante la aplicaci´on del Filtro de Kalman. Sin embargo, esta funcionalidad no va a ser utilizada en este proyecto. Todas las caracter´ısticas configurables del sensor pueden ser programas de forma sencilla gracias al software propietario, el MIP Monitor. En este proyecto se configurar´an los datos que deseamos que transmita el sensor (aceleraciones lineales y velocidades angulares, ver figura 3.16) y la frecuencia de transmisi´on de los paquetes de datos y la velocidad de conexi´on del puerto UART (puerto serie Universal Asynchronous Receiver-Transmitter, ver figura 3.17). Para cambiar los datos enviados por el sensor y la frecuencia a la que este los transmite puede configurarse en Settings −>Device, en la pesta˜na IMU y Message Format. Para cambiar la velocidad de conexi´on del puerto UART, esta puede configurarse en Settings −>System. El sensor viene acompa˜nado de una libreria de funciones con las que poder configurar el sensor y leer datos con nuestras propias aplicaciones. El sensor tiene dos puertos por los que comunicarse, ambos digitales. Una se trata de una salida USB y por otro lado tambi´en puede transmitir los datos 3.4. INERTIAL MEASUREMENT UNIT (IMU) 35 Figura 3.16: Configuraci´on del formato del paquete de la IMU Figura 3.17: Configuraci´on de la velocidad del puerto serie de la IMU 36 CAP´ ITULO 3. EQUIPO DE SENSORES Figura 3.18: Pinout del sensor 3DM-GX4-25 [12] Figura 3.19: Paquete de datos de ejemplo 3DM-GX4-25 [11] por su puerto serie RS232. Los pines de ambos puertos y de alimentaci´on pueden verse en la figura 3.18. El pin de alimentaci´on de 3,2 V- 5,5 Ves utilizado cuando se transmiten datos por el puerto USB y el pin de 5,2 V- 36 Vcon el puerto serie RS232. El sensor transmite los datos en paquetes codificados en binario. En la figura 3.19 se muestra un paquete de datos de ejemplo de la IMU en el que se est´a transmitiendo la aceleraci´on en el los ejes cartesianos. Es posible diferenciar las diferentes partes del paquete, estas son Header,Packet Payload yChecksum. En la cabecera del paquete (Header) primero encontramos dos bytes que siempre son los mismos para todos los paquetes del sensor, que son 75 y 65 en hexadecimal (equivalen a los caracteres ’u’ y ’e’ en el c´odigo ASCII). Estos bytes pueden ser ´utiles a la hora de programar un algoritmo que detecte la llegada de un nuevo paquete. El tercer byte es un descriptor del paquete, que en el ejemplo es 0x80, que en este caso indica que el paquete es un paquete de datos AHRS (Attitude and Heading Reference System). El cuarto byte de la cabecera indica el n´umero de bytes de la siguiente parte del paquete Packet Payload, que en el ejemplo tiene una longitud de 14 bytes. La siguiente parte del paquete es Packet Payload, que a su vez puede 3.4. INERTIAL MEASUREMENT UNIT (IMU) 37 Figura 3.20: Paquete de datos de ejemplo 3DM-GX4-25 con dos campos de datos [11] estar dividido en varios campos (en la figura 3.20 podemos ver un paquete con dos campos). Cada campo contiene un dato del sensor (un campo podr´ıa contener las aceleraciones y otro las velocidades angulares). Como podemos observar en las figuras 3.19 y 3.20 cada campo tiene un primer byte que indica el tama˜no del propio campo y un segundo byte que que describe el contenido de los datos del campo. Por ´ultimo, nos encontramos un n´umero variables de bytes que son los propios datos del campo. La ´ultima parte del paquete Checksum son dos bytes que permiten comprobar si el paquete ha sido transmitido correctamente. Estos bytes son obtenidos al hacer operaciones binarias con los bytes del propio paquete. El sistema receptor puede hacer las mismas operaciones sobre los bytes del paquete recibido, en el caso de obtener los mismos valores del Checksum el paquete ha recibido contiene los mismos bytes que el enviado por lo que la transmisi´on ha sido correcta. En el presente proyecto las IMU ser´an configuradas para enviar los datos de las aceleraciones y velocidades angulares (ver figura 3.16), por lo que el paquete de datos enviado tendr´a el mismo formato que el de la figura 3.20. El n´umero de bytes de estos paquetes es de 34, y los bytes contenedores de los datos son: 1. Aceleraci´on eje x: Bytes 6 - 9 2. Aceleraci´on eje y: Bytes 10 - 13 3. Aceleraci´on eje z: Bytes 14 - 17 4. Velocidad angular respecto al eje x: Bytes 20 - 23 5. Velocidad angular respecto al eje x: Bytes 24 - 27 6. Velocidad angular respecto al eje x: Bytes 28 - 31 Como podemos observar cada valor de aceleraci´on o velocidad angular viene dado por cuatro bytes. Estos bytes corresponden a un n´umero real 38 CAP´ ITULO 3. EQUIPO DE SENSORES seg´un el est´andar IEEE-754. El est´andar IEEE-754 es el m´as extendido para representaci´on de n´umeros en coma flotante. Es importante tambi´en conocer el flujo de datos que va crear el sensor mandando dichos paquetes a una frecuencia de 1000 Hz. El sensor viene configurado de f´abrica para cominicarse por su puerto serie a una velocidad de 115200 baudios (bits por segundo), pero puede ser que no sea suficiente. Al ser una comunicaci´on serie RS232, para cada byte, adem´as de los 8 bit del propio byte, se env´ıa un bit de inicio y uno de parada, que son en total 10 bit por byte enviado. Por lo que la m´ınima velocidad del puerto serie debe de ser de: tmin = 10Nbytesf(3.3) donde tmin es la velocidad m´ınima de configuraci´on del puerto serie de la IMU para poder enviar todos los datos sin p´erdidas, Nbytes el n´umero de bytes del paquete de datos y fla frecuencia de env´ıo de paquetes. En el caso de nuestro paquete de datos de 34 bytes, enviado a una frecuencia de 1000 Hz se calcula un valor de 34000 baudios, por tanto habr´a que aumentar la velocidad de comunicaci´on del puerto serie de la IMU (y la velocidad del puerto del dispositivo electr´onico receptor). El puerto serie tiene unas velocidades concretas (ver figura 3.17) a las que se puede configurar, de todas ellas se ha elegido 460800 baudios por ser la menor (a mayor velocidad mayor probabilidad de errores o de incompatibilidades cuando las velocidades son altas) que supera el valor antes calculado. La ecuaci´on 3.3 es una ecuaci´on t´ıpica para calcular la velocidad m´ınima de conexi´on en una comunicaci´on serie as´ıncrona en ausencia de bit adicionales como un segundo bit de parada o el bit de paridad, por lo que se har´a referencia a esta m´as adelante. En el caso de leer el sensor desde una apicaci´on en un PC utilizando la librer´ıa de funciones, ´esta nos va a permitir abstraernos del protocolo de comunicaciones y del conocimiento del formato de los paquetes de datos y su reconstrucci´on. Al inicio del presente cap´ıtulo se mencion´o el uso de sensores inerciales en cada uno de los vagones del veh´ıculo para registrar tambi´en la din´amica vehicular. Estos sensores son distintos a los usados en el vag´on instrumentado para la auscultaci´on de v´ıas. Se trata de sensores inerciales PhidgetSpatial con aceler´ometro, gir´oscopo y magnet´ometro de tres ejes. Este sensor tiene peores car´acter´ısticas que los de auscultaci´on, una tarea de gran precisi´on, pero son ideales para recoger la din´amica vehicular. El aceler´ometro tiene un rango m´aximo de ±5gy una resoluci´on de < 228µg con un ancho de banda m´aximo de 110 Hz. 3.5. SENSOR DE CAMPOS MAGN´ ETICOS 39 El gir´oscopo tiene un rango m´aximo de ±400o/s y una resoluci´on de <0,02o/s. El magnet´ometro no va a ser utilizado en este proyecto. Estos sensores vienen acompa˜nados de un software propietario con el que leerlos y configurarlos, adem´as el fabricante ofrece una extensa libreria de funciones para poder leer los sensores desde nuestra propia aplicaci´on. 3.5. Sensor de campos magn´eticos Los sensores magn´eticos van a ser utilizados para detectar el paso de imanes fijos a las ruedas del veh´ıculo y as´ı poder realizar la odometr´ıa del veh´ıculo. Otras soluciones a este problema es utilizar sensores ´opticos, como un transmisor receptor de infrarrojos y pegar pegatinas reflectantes en la rueda del veh´ıculo, que puedan ser detectadas por el sensor ´optico al reflejar las ondas del transmisor. Despu´es de varias pruebas se decidi´o utilizar los sensores magn´eticos por ser una forma m´as fiable y limpia de medir la velocidad de las ruedas (los imanes pueden ser simplemente separados de la rueda met´alica, adem´as la suciedad no es tan perjudicial como en el caso de los sensores ´opticos). Los sensores utilizados son sensores digitales. Para su correcto funcionamiento se deben conector sus tres pines. Dos de ellos son alimentaci´on (3,3 V) y tierra. El tercero es el pin de se˜nal, que se mantiene en nivel alto (3,3 V) cuando detecta un campo magn´etico cercano, como el creado por los imanes fijos a las ruedas met´alicas. 40 CAP´ ITULO 3. EQUIPO DE SENSORES Cap´ıtulo 4 Sistema de adquisici´on de datos Un Sistema de Adquisici´on de Datos (SAD en adelante) es aquel dispositivo electr´onico, que tomando la informacin del mundo real, la procesa hasta convertirla en datos en una memoria digital, un formato adecuado para el posterior tratamiento y presentaci´on de la informaci´on. En este proyecto la informaci´on del mundo real es la din´amica vehicular (aceleraciones, velocidades angulares, distancias entre partes) e im´agenes proporcionadas por el sistema de visi´on artificial. Esta informaci´on tiene que ser enviada al PC, que la procesar´a para resolver el problema cinem´atico e identificar las irregularidades de la v´ıa. En este cap´ıtulo se van a describir los dos SAD propuestos para este proyecto. El primero de ellos consiste, b´asicamente, en una conexi´on directa entre el PC de procesamiento de datos y los sensores. La segunda opci´on incluye una etapa intermedia entre los sensores y el PC con microcontroladores que controlan el flujo de datos. Ambos sistemas buscan cumplir una serie de funcionalidades. Conocer estas funcionalidades es fundamental para entender su dise˜no, adem´as permite comparar la eficiencia de ambos sistemas. 4.1. Funcionalidad del SAD En esta secci´on se describen las caracter´ısticas deseadas por un SAD en este proyecto. a) Inicializaci´on y control de los sensores. Como vimos en el cap´ıtulo 3 es necesario enviarle a algunos sensores una se˜nal (mensaje binario) de inicio para que comience a transmitir datos o incluso mantener una se˜nal cuadrada (el´ectrica) en algunas de las entradas del sensor para que este continue transmitiendo datos. 41 42 CAP´ ITULO 4. SISTEMA DE ADQUISICI ´ ON DE DATOS b) Control de flujo de datos. Cada sensor utiliza un protocolo de comunicaci´on distinto para transmitir los datos. Evidentemente, los paquetes de datos (mensajes binarios) enviados por cada sensor son de distinto tama˜no y la reconstrucci´on de los datos se hace de forma de distinta. Adem´as, la frecuencia de env´ıo de paquetes de cada sensor es diferente. El SAD tiene que ser capaz de gestionar todos estos procesos sin p´erdida de datos. c) Sincronizaci´on de sensores. El sistema embarcado tendr´a que procesar la informaci´on proveniente de los sensores para obtener los resultados, para obtener unos resultados precisos el sistema debe tener un control riguroso del tiempo. Los sensores son a su vez un sistema independiente con su propio sistema de temporizaci´on. El SAD debe ser capaz de enviar al sistema de procesado cada uno de los paquetes de datos con una marca de tiempo respecto a una ´unica referencia temporal: la que ser´a utilizada para procesar los datos. d) Fiabilidad. Las comunicaciones en la electr´onica son a menudo problem´aticas. El ruido corrompe los paquetes de datos produciendo resultados incorrectos. Las malas conexiones tambi´en pueden ser el origen de paquetes de datos err´oneos o discontinudidades en la frecuencia de env´ıo de datos. El SAD debe ser dise˜nado de forma que sea robusto al ruido electr´onico y debe estar preparado para un cambio de r´egimen de transmisi´on de datos. Un fallo en el SAD puede ser fatal: en caso de utilizarse los resultados de la din´amica vehicular para actuar sobre el propio veh´ıculo se podr´ıa provocar un mal funcionamiento del veh´ıculo, un tramo de v´ıa con irregularidades que no sea notificado peligroso para un veh´ıculo ferroviario. A continuaci´on se presentan los dos sistemas propuestos cuyo objetivo ser´a cumplir las funcionalidades mencionadas. 4.2. SAD integrado en el PC Todos los sensores usados en el presente proyecto tienen conversores ADC (Analog-to-Digital Converter) con los que convertir las se˜nales el´ectricas continuas provenientes de los transductores, en se˜nales digitales. Adem´as, todos estos sensores contienen electr´onica que permite una comunicaci´on USB con otro sistema electr´onico, ya sea de forma directa (c´amaras y sensores inerciales) o mediante conversores externos (sensores de distancia). Esto permite 4.2. SAD INTEGRADO EN EL PC 43 conectar los sensores a un PC de prop´osito general con suficientes puertos USB. La instalaci´on de los driver y las API de los sensores en un PC con un sistema operativo compatible, como Windows, hace posible la creaci´on de un aplicaci´on de adquisici´on de datos, asbtray´endose el programador de los complejos protocolos de comunicaci´on. Esta aplicaci´on, dise˜nada y programada por Daniel Garc´ıa Vallejo [15], es capaz de leer los datos de los sensores y guardarlos en los archivos necesarios en el disco del PC, se puede ver su apariencia en las figuras 4.2 y 4.2. En la figura 4.1 se puede ver el esquema completo de conexiones y alimentaci´on de todos los sesores en los ensayos. Todo el conjunto se alimenta de tensi´on alterna de 220 Vdel veh´ıculo. Todos los sensores se alimentan directamente por su puerto de comunicaciones excepto los sensores de distancia. Tambi´en es alimentado con 24 Vel sistema tac´ometro. Las conexiones entre el PC y los sensores se realiza por puertos serie, excepto en el caso de las IMU PhidgetSpatial, que aunque tambi´en utilizan puertos serie, son conectados cada uno de ellas a una alargadera ethernet que permite llegar hasta cada uno de los vagones del veh´ıculo. Los datos de las c´amaras son recogidos por PC independientes utilizando el software proporcionado por el fabricante de las c´amaras, el xiCamTool (secci´on 3.2.1). Este software s´olo permite grabar im´agenes de una c´amara, adem´as no pueden ejecuarse distintas instancias del programa en un solo PC, por esta raz´on, es necesario el uso de un PC para cada c´amara. La aplicaci´on est´a preparada para funcionar en un sistema operativo windows. Para obtener el mayor rendimiento posible se ha dise˜nado el programa con distintos hilos que se ejecutan en paralelo: a. Existe un hilo por cada sensor inercial de auscultaci´on, en total tres, debido a la lenta velocidad de respuesta de estos. Los sensores son le´ıdos mediante la t´ecnica de polling, en la que se le manda al sensor una petici´on, el sensor la procesa y responde con los datos deseados. De esta forma, se consigue un periodo de adquisici´on de 6 ms (166 Hz), cada cierto tiempo se producen picos de 12 ms en el tiempo de adquisici´on. b. Los dos sensores de distancia comparten un ´unico hilo. Al igual que los sensores inerciales, son le´ıdos por polling, obteni´endose un periodo de muestreo de 5 ms (200 Hz). c. Existe un hilo com´un para los cuatro sensores inerciales que registran la din´amica de los vagones no instrumentados (las IMU PhidgetSpatial). Estos sensores son le´ıdos por polling y se obtiene un periodo de adquisici´on de 8 ms (125 Hz). 50 CAP´ ITULO 4. SISTEMA DE ADQUISICI ´ ON DE DATOS Los ticker son la herramienta que ofrece la plataforma mbed para el control de interrupciones peri´odicas. Al crear un ticker, este se encargar´a de interrumpir el programa principal cada periodo de tiempo especificado y ejecutar la funci´on asociada al ticker. leeS e nsor . attach us(& lecturaSensores , TREAD) ; // TREAD periodo en microsegundos si nc r o . attach us(& sinc r oniza , TSYNC) ; // TSYNC periodo en microsegundos La funci´on lecturaSensores es la encargada de la lectura de sensores. esta funci´on env´ıa cuatro bytes por el puerto serie: 1. Se env´ıa un byte con el valor ’1’, que indica que el pr´oximo byte es el valor del sensor magn´etico 1. 2. Se lee la entrada digital del sensor 1 y se env´ıa el valor por el puerto serie. Tambi´en se actualiza el valor de la salida conectada al led indicador del sensor 1. 3. Se env´ıa un byte con el valor ’2’, que indica que el pr´oximo byte es el valor del sensor magn´etico 2. 4. Se lee la entrada digital del sensor 2 y se env´ıa el valor por el puerto serie. Tambi´en se actualiza el valor de la salida conectada al led indicador del sensor 2. El c´odigo que realiza esta funci´on es el siguiente: void lecturaSensores() { pc . putc ( ’ 1 ’ ) ; pc . putc ( sensor1 ) ; led1 = sensor2 ; pc . putc ( ’ 2 ’ ) ; pc . putc ( sensor2 ) ; led2 = sensor1 ; } La raz´on por la que se configura el puerto serie a 460800 baudios est´a directamente relaccionada con la cantidad de bytes enviado por esta funci´on y la frecuencia a la que es ejecutada. Para justficar esta frecuencia debe calcularse con qu´e frecuencia m´axima pueden pasar los imanes y escoger una frecuencia de lectura, como m´ınimo, diez veces mayor. En las ruedas del veh´ıculo se van a colocar 16 imanes equiespaciados. La velocidad del vehiculo m´axima es de 19,44 m/s (70 km/h) y el radio de 4.2. SAD INTEGRADO EN EL PC 51 la rueda mide aproximadamente 0,3 m. Dividiendo la velocidad m´axima del veh´ıculo entre la longitud de la circunferencia exterior de la rueda obtenemos una medida aproximada de las revoluciones por segundo de las ruedas a la m´axima velocidad, en este caso: 19,44m/s 2π0,3m= 10rev/s (4.1) Al tener 16 imanes la rueda, el sensor magn´etico det´ectar´a pasar 160 imanes por segundo a la velocidad m´axima, por tanto, la m´ınima frecuencia de adquisici´on, es decir, la m´ınima frecuencia de llamada a la funci´on de la lectura de los sensores debe ser de 1600 Hz. Como tambi´en es importante el arco de circunferencia detectado por el sensor al pasar un im´an, se ha elegido una frecuencia de un orden mayor para evitar que no se detecte un im´an, 10000 Hz. La funci´on de lectura de sensores env´ıa cuatro bytes por el puerto serie, y es llamada 10000 veces por segundo, por lo que son env´ıados 40000 bytes por segundo. Si aplicamos la ecuaci´on 3.3 se calcula una velocidad m´ınima del puerto serie de 400000 baudios. Por esta raz´on el puerto ha sido configurado a 460800 baudios. Crear una se˜nal cuadrada peri´odica con un microcontrolador mbed es tan simple como crear un ticker que invierta el estado de una se˜nal digital en una de sus salidas de sus pines GPIO: void sincroniza() { outS = ! outS ; outS2 = ! outS2 ; } La frecuencia con la que se llama a esta funci´on debe ser el doble de la frecuencia de adquisici´on de las c´amaras porque la c´amara s´olo comenzar´a la exposici´on a la luz en los flancos de subida o bajada de la se˜nal, no en ambos flancos. Como existe una gran cantidad de pines GPIO se ha decidido crear una se˜nal independiente de sincronizaci´on para cada c´amara. El tiempo que tarda el microcontrolador en invertir una se˜nal y pasar a invertir la de la otra c´amara es despreciable en las escalas de tiempo de este proyecto. Los pines GPIO del microcontrolador configurados como salida tienen una tensi´on de 3v3 Vcuando est´an en nivel alto. Sin embargo, la se˜nal cuadrada de sincronizaci´on de las c´amaras debe ser de 24 V. Para solucionar este problema se ha montado el circuito de la figura 4.7 para cada se˜nal de sincronizaci´on usando una fuente de alimentaci´on de 24 V. Los valores de las resistencias del circuito de la figura 4.7 han sido elegidos para conseguir que el transistor funcione en saturaci´on. De esta forma, cuando 52 CAP´ ITULO 4. SISTEMA DE ADQUISICI ´ ON DE DATOS Figura 4.7: Circuito adaptador de tensi´on de las se˜nales de sincronizaci´on de las c´amaras la salida del microcontrolador cambia a nivel alto, el transistor deja pasar corriente entre el colector y el emisor, existiendo una tensi´on entre ambos puntos de 0 V. Cuando el microcontrolador pone a nivel bajo la salida, el transistor se abre, con una tensi´on de 24 Ventre el colector y el emisor, es decir, a la entrada de la se˜nal de sincronizaci´on de la c´amara. Esto quiere decir que el circuito invierte la se˜nal de salida del micro, pero la eleva a la tensi´on requerida por la entrada de la c´amara. Para que la se˜nal no llegue invertida a la entrada de la c´amara y comience desde los 0 V, sin desfase, se han inicializado las se˜nales de sincronizaci´on a nivel alto, que al ser invertidas por el circuito, llegar´an 0 Va las c´amaras. El c´odigo completo del sistema electr´onico del tac´ometro puede encontrarse en el ap´endice A, totalmente comentado. 4.3. SAD con etapa intermedia La segunda propuesta para la adquisici´on de datos se basa en introducir un sistema electr´onico con microcontroladores que lea, sincronice y regule el flujo de datos provenientes de los sensores, quedando el PC con la ´unica tarea de recibir los datos y almacenarlos. Esta forma de dise˜nar el SAD del proyecto tiene numerosas ventajas: 1. La principal ventaja es el control sobre el proceso de adquisici´on que se consigue mediante electr´onica especializada para realizar esta tarea. La primera propuesta utiliza un PC con un sistema operativo (windows) 4.3. SAD CON ETAPA INTERMEDIA 53 que es el que controla todo el hardware y en numerables ocasiones el acceso a un nivel bajo de control de hardware es complejo o no est´a permitido. Es por ello que en los ensayos realizados se producen picos en los periodos de adquisici´on. Adem´as, a pesar de la gran potencia de procesado de un PC comparado con un microcontrolador com´un es muy alta, este tiene que atender muchas otras tareas, como el control de perif´ericos o los recursos que consume el propio sistema operativo. Existen dos formas de solucionar este problema, una es usar un sistema operativo de tiempo real que asegure los tiempos de lectura y escritura con una precisi´on aceptable y otra es dise˜nar una electr´onica especializada como se ha propuesto en este proyecto. Los microcontroladores permiten el acceso a todos sus procesos a nivel hardware y un control muy preciso del tiempo que va tardar en realizarse cada tarea y el orden en el que se relizan. 2. El PC queda libre de la tarea de adquisici´on y puede dedicar sus recursos al procesado de los datos. 3. Sincronizaci´on. La sincronizaci´on con un microcontrolador es muy sencilla, s´olo se tiene que acompa˜nar cada dato con una marca de tiempo, leyendo el reloj del microncontrolador en el instante en el que se recibe el dato. 4. Comunicaci´on directa con los sensores. En la propuesta los sensores son le´ıdos utilzando las librer´ıas de funciones que proporciona la API de cada sensor y los driver instalados. Aunque estas funciones suelen estar muy optimizadas, muchas veces no est´an completamente documentadas, por lo que no es posible conocer como se ejecuta cada funci´on y cuanto tiempo tarda en hacerlo. La abstracci´on que ofrecen las funciones puede ser una desventaja en proyectos de gran precisi´on temporal y sincronizaci´on como el presente proyecto. La comunicaci´on con el sensor utilizando microcontroladores obliga al aprendizaje de los comandos del sensor y sus protocolos de comunicaci´on, pero a su vez asegura el control de todas las posibilidades del sensor y su sincronizaci´on con otros sensores. Estas ventajas van a repercutir positivamente en la precisi´on, en la sincronizaci´on de los sensores, gracias a la precisi´on temporal y dedicaci´on de los microcontroladores en la tarea de la adquisici´on, en la capacidad de control del flujo de datos, pudiendo leer datos de los sensores a una mayor velocidad. Tambi´en existen algunas desventajas de este SAD. Utilizar un sistema electr´onico especializado aumenta el coste del proyecto. Al tener m´as componentes electr´onicos tambi´en existen mas posibles puntos donde puede fallar 54 CAP´ ITULO 4. SISTEMA DE ADQUISICI ´ ON DE DATOS Figura 4.8: Pinout mbed LPC1768 [13] el sistema, adem´as, el dise˜no de este sistema requiere un conocimiento m´as profundo de los sensores y su funcionamiento por lo que el tiempo de desarrollo aumenta (aunque el desarrollo de una aplicaci´on de adquisici´on como la expuesta en la primera propuesta tambi´en es complejo). Una desventaja adicional es que el sistema propuesto no contempla la adqusici´on de los sensores de la din´amica vehicular, es decir, de los sensores inerciales de los vagones no instrumentados. Los sensores le´ıdos y sincronizados por este sistema son los tres sensores inerciales, los dos sensores de distancia, el sistema tac´ometro y las c´amaras. El microcontrolador utilizado en el SAD es el mbed LPC1768 de NXP. Este microcontrolador pertence a la plataforma mbed. Se trata de una versi´on con mejores caracter´ısticas que el microcontrolador utilizado en el sistema tac´ometro (ver secci´on 4.2.1), tambi´en viene montado en una plataforma de desarrollo en formato PDIP y se puede programar con la API online de la plataforma mbed. Este microcontrolador de 32 bit con una frecuencia de 96 MHz tiene tres puertos serie, dos puertos I2C, un puerto USB, tres puertos SPI, ocho canales de entrada a un conversor ADC, ocho salidas PWM (Pulse Width Modulation), una salida anal´ogica y una gran cantidad de pines GPIO. El pinout de la plataforma puede encontarse en la figura 4.8. 4.3.1. Arquitectura del sistema La arquitectura del sistema con etapa intermedia es muy similar a la propuesta en la adquisici´on integrada en el PC. Como puede observarse en 4.3. SAD CON ETAPA INTERMEDIA 55 la figura 4.9 las conexiones de datos de las IMU de auscultaci´on y de los sensores de distancia pasan por un sistema microcontrolador antes de llegar al PC, las IMU PhidgetSpatial no est´an conectadas. (cambios de alimentaci´on de IMU de auscultaci´on y de sensores de distancia). Tambi´en ha cambiado la v´ıa por la que se alimentan los sensores inerciales de auscultaci´on. En la primera proppuesta se alimentaban directamente a 5 Vpor el puerto USB, en este caso se alimentan con 24 Vde una de las fuentes de alimentaci´on. El sistema tac´ometro funciona ex´actamente igual que en la primera propuesta. Aunque esta funcionalidad se podr´ıa haber integrado en el sistema microcontrolador, se ha decidido mantener el formato anterior por dos razones: 1. Se aprovecha el trabajo ya realizado y testeado. 2. Es conveniente que el sistema tac´ometro no este muy alejado de las c´amaras y los sensores magn´eticos, ya que los cables no pueden ser muy largos por la ca´ıda de tensi´on. De esta forma la colocaci´on del sistema microcontrolado es independiente de la colocaci´on de las c´amaras y el tac´ometro y s´olo hay que preocuparse de su conexi´on con el sistema tac´ometro. El sistema electr´onico dise˜nado que controla el flujo de datos ser´a llamado en adelante sistema microcontrolado como se observa en la figura 4.9. Este sistema est´a compuesto por dos plataformas mbed con el microcontrolador LPC1768. Cada microcontrolador mbed LPC1768 tiene tres puertos serie, insuficientes para leer los tres sensores inerciales y los sensores de distancia, es por esto que se han utilizado dos microcontroladores, que suman en total seis puertos serie. Por razones de simetr´ıa y de distinto tama˜no de flujo de datos (los sensores inerciales tienen un flujo de datos mucho mayor que los sensores de distancia) se han distribuido los sensores de la siguiente forma: 1. mbed 1: Esta mbed controlar´a el flujo de datos de el sensor inercial y el sensor de distancia de uno de los lados del veh´ıculo. Tambi´en controlar´a el sensor inercial central situado en el bogie. El sensor de distancia va conectado al puerto serie de los pines 27 y 28 y el sensor inercial en el puerto serie de los pines 9 y 10. El sensor inercial colocado en la parte central del bogie es conectado al puerto serie de los pines 13 y 14. 2. mbed 2: Esta mbed controlar´a el flujo de datos de el sensor inercial y el sensor de distancia del otro lado del veh´ıculo. El sensor de distancia va conectado al puerto serie de los pines 27 y 28 y el sensor inercial en el puerto serie de los pines 9 y 10. 56 CAP´ ITULO 4. SISTEMA DE ADQUISICI ´ ON DE DATOS Figura 4.9: Arquitectura de conexiones y alimentaci´on SAD con etapa intermedia Cada mbed enviar´a los datos de los sensores conectados a ´el hacia el PC, es por esto por lo que existen dos conexiones USB entre el sistema microcontrolado y el PC. Por estas mismas conexiones USB se alimentan las plataformas mbed. Se puede ver el aspecto de la placa con los microcontroladores y los conectores para los sensores en la figura 4.10. Un problema que puede aparecer por el uso de dos microcontroladores distintos, cada uno con su propio temporizador, es una mala sincronizaci´on entre los sensores le´ıdos por un microcontrolador y el otro. A priori, este problema no deber´ıa aparecer ya que cuando el PC manda los comandos de inicio de adquisici´on a los microcontroladores, el tiempo entre que llega el mensaje al primer microcontrolador y luego al segundo, es de decenas de microsegundos, un tiempo despreciable en la escala de tiempo del proyecto. Sin embargo, en una futura mejora podr´ıa solucionarse de forma elegante este problema mediante una conexi´on serie entre ambos microcontroladores por alguno de los puertos SPI disponibles, de forma que nada m´as comenzar establezcan una peque˜na comunicaci´on en la que uno de ellos (el esclavo) sincronice su reloj al del otro (el maestro), esta sincronizaci´on tiene una precisi´on del microsegundo, con la programaci´on correcta y la aplicaci´on de los conocimientos de los tiempos de retardo de los puertos SPI de los 4.3. SAD CON ETAPA INTERMEDIA 57 Figura 4.10: Placa electr´onica de adquisic´on de datos microcontroladores. La conexi´on entre los sensores inerciales y de distancia, y los microcontroladores, no es inmediata debido a los distintos niveles de tensi´on utilizados por los sensores y los puertos serie UART de los microcontroladores. 4.3.2. Conexi´on sensor de distancia - microcontrolador Los niveles de tensi´on con los que se comunica el sensor (sigue las especificaciones de RS422) no son compatibles con los niveles TTL de los microcontroladores. Para la conversi´on de los niveles de tensi´on se ha utilizado el integrado ST485 (tambi´en servir´ıa el MAX485, MAX3485 o similares). Como puede observarse en la figura 3.11, el puerto serie del sensor tiene cuatro pines (Tx+, Tx-, Rx+ y Rx-), dos para la recepci´on y dos para la transmisi´on. Como no se va a enviar ning´un dato al sensor solo se utilizar´an los de transmisi´on como podemos ver en el esquema de la figura 4.11. El integrado va alimentado con la salida de 5V del microcontrolador. Las dos resistencias conectadas a los pines TX y RX sirven para limitar la corriente y proteger dichos pines. 58 CAP´ ITULO 4. SISTEMA DE ADQUISICI ´ ON DE DATOS Figura 4.11: Esquema de conexi´on entre la mbed y el sensor de distancia 4.3.3. Conexi´on sensor inercial - microcontrolador El puerto serie de este sensor tambi´en tiene diferente niveles de tensi´on que la UART de la mbed. En este caso el sensor sigue las especificaciones RS232. Para hacer la conversi´on a niveles TTL se ha usado el integrado MAX3232. En la figura 3.18 del cap´ıtulo anterior se mostraba el pinout del sensor. Se van a utilizar los pines Rx y Tx del puerto serie RS232, adem´as, debe conectarse la tierra y la alimentaci´on. Llama la atenci´on que el sensor tiene dos pines con los que se puede alimentar el sensor. El pin tres es el pin por el que se alimenta cuando se usa la comunicaci´on USB. Sin embargo, para comunicarse por el puerto serie RS232 debe alimentarse por el pin seis con una tensi´on entre 5,2 Vy 36 V. En la figura 4.12 se muestra el esquema de conexiones de estos pines (mostrando, adem´as, su posici´on en el terminal DB9 del cable del sensor) con el integrado que hace la conversi´on de niveles de tensi´on y de este con el microcontrolador. 4.3.4. Lectura de sensores La precisi´on que ofrece un microcontrolador para ponerle una marca de tiempo a un dato recibido de un sensor, junto al objetivo de este SAD de obtener mejores frecuencias de adquisici´on que la primera propuesta, espec´ıficamente la m´axima de cada sensor, ha llevado al dise˜no del SAD para una adquisici´on por streaming. En este m´etodo de adquisici´on el sensor env´ıa datos al sistema microcontrolado a la m´axima velocidad posible autom´aticamente, sin necesidad de que el sistema microcontrolado le env´ıe comandos solicitando datos, como ocurr´ıa con el PC. La frecuencia de adquisic´on con este m´etodo de lectura es considerablemente mayor: el sensor de distancia mandar´a datos a 750 Hz (en el sistema integrado se llegaba a los 200 Hz) y el sensor inercial a 1000 Hz (en el sistema integrado se llegaba a los 166 Hz). Adem´as, como el sistema microcontrolado s´olo est´a pendiente de la llegada de datos de los sensores, no tiene que cumplir otras tareas en paralelo, no se 4.3. SAD CON ETAPA INTERMEDIA 59 Figura 4.12: Esquema de conexi´on entre la mbed y el sensor inercial producen discontinuidades en el periodo de adquisici´on de los sensores. La funci´on del microcontrolador queda simplificada. Tiene que recibir los datos, hacer un procesado de estos, y enviarlos junto a su marca de tiempo al PC en formato binario. El programa de los microcontroladores se ha compilado en la API online de mbed. El c´odigo completo puede encontrarse comentado en el ap´endice A, totalmente comentado. EL programa comienza con la declaraci´on de las variables y la configuraci´on de la velocidad de los puertos serie: a. El puerto serie de comunicaci´on con el sensor de distancia se configura a 115200 baudios, que es la velocidad por defecto del sensor. b. El puerto serie de comunicaci´on con el sensor inercial se configura a 460800 baudios. Como se describe en la secci´on 3.4, el sensor env´ıa 34 bytes por paquete de datos, a 1000 Hz, son 34000 bytes por segundo, que aplicando la ecuaci´on 3.3 se calcula una velocidad m´ınima de configuraci´on del puerto serie de 340000 baudios. La velocidad m´ınima superior 340000 configurable en el puerto serie es de 460800. c. El puerto de comunicaci´on con el PC debe ser capaz de enviar los datos de todos los sensores. Como luego veremos, el paquete de el sensor inercial que se env´ıa al PC es de 30 bytes (a 1000 Hz) y 8 bytes del paquete con los 66 CAP´ ITULO 5. RESULTADOS Figura 5.1: Velocidad de cada rueda del veh´ıculo en un ensayo 5.1. ADQUISICI ´ ON SENSOR MAGN´ ETICO 67 Figura 5.2: Posici´on de cada rueda del veh´ıculo en un ensayo 68 CAP´ ITULO 5. RESULTADOS Figura 5.3: Medidas del sensor de distancia velocidad y posici´on del veh´ıculo pueden ser algo mayores que la calculada a partir de los datos obtenidos de la velocidad y posici´on de las ruedas en ciertos puntos. Sin embargo, estas gr´aficas si que verifican el buen funcionamiento del sistema tac´ometro. Las velocidades m´aximas obtenidas en los tramos rectos son de 70 Km/h que es ex´actamente la m´axima velocidad esperada. En las curvas se observan bajadas de velocidad y peque˜nas diferencias de velocidad entre ambas ruedas. 5.2. Adquisici´on sensor de distancia En la figura 5.3 se muestra una gr´afica de una peque˜na prueba. En esta prueba simplemente se ha movido un poco el sensor de distancia para ver las oscilaciones, y sacarlo de rango para comprobar los valores devueltos. Recordar (secci´on 3.3, figura 3.9) que el sensor devuelve los valores 16372 o 16374 cuando est´a fuera de rango, que multiplicados por el valor de reconstrucci´on 0,0498 (secci´on 3.3) deber´ıa enviarse el valor 815 cuando el sensor 5.3. ADQUISICI ´ ON SENSOR INERCIAL 69 Figura 5.4: Medidas del sensor inercial est´a fuera de rango, justo el valor obtenido en la prueba. 5.3. Adquisici´on sensor inercial De igual manera, se puede observar en la figura 5.4 una gr´afica con las oscilaciones del sensor inercial en la misma prueba que el sensor de distancia. Aunque los sensores han sido le´ıdos en la misma prueba (comprobando as´ı la correcta lectura de ambos sensores simult´aneamente), los movimientos de cada sensor han sido independientes. 70 CAP´ ITULO 5. RESULTADOS Ap´endice A Matrices de rotaci´on Las matrices de rotaci´on 3D respecto a cada uno de los ejes cartesianos son: Rx(ϕ) =   1 0 0 0 cos(ϕ)−sin(ϕ) 0 sin(ϕ) cos(ϕ) (A.1) Ry(θ) =   cos(θ) 0 sin(θ) 0 1 0 −sin(θ) 0 cos(θ) (A.2) Rz(ψ) =   cos(ψ)−sin(ψ) 0 sin(ψ) cos(ψ) 0 0 0 1  (A.3) Para obtener una matriz de rotaci´on completa podemos multiplicar las matrices A.1, A.2 y A.3 obteniendo una matriz que nos permite realizar cualquier giro que deseemos: Rxyz(ϕ, θ, ψ) = Rx(ϕ)Ry(θ)Rz(ψ) =   CψCθ −SψCϕ +CψSθSϕ SψSϕ +CψSθCϕ −SψCθ CψCϕ +SψSθSϕ −CψSϕ +SψSθCϕ −Sθ CθSϕ CθCϕ   (A.4) A.1. Aproximaci´on peque˜nos ´angulos Cuando los ´angulos de giro de la matriz A.4 toman valores peque˜nos (por debajo de la unidad) esta matriz puede aproximarse por una forma m´as sencilla. Esto es posible porque el cose˜no de un ´angulo muy peque˜no es 71 72 AP´ ENDICE A. MATRICES DE ROTACI ´ ON aproximadamente 1 y el seno de un ´angulo muy peque˜no se puede aproximar por el valor del propio ´angulo: α << 1 cos(α)≈1 sin(α)≈α(A.5) Aplicando las simplificaciones A.5 en la matriz de rotaci´on A.4 y suponiendo despreciable el producto de dos ´angulos respecto a cualquiera de ellos, obtenemos la matriz de rotaci´on simplificada: Rxyz(ϕ, θ, ψ) =   1−ψ+θϕ ψϕ +θ ψ1 + ψθϕ −ϕ+ψθ −θ ϕ 1 =  1−ψ θ ψ1−ϕ −θ ϕ 1  (A.6) Ap´endice A C´odigo plataformas mbed C´odigo completo del archivo main.cpp del sistema tac´ometro: #include ”mbed . h” // Parametros v a r i ab l e s en cada a p l i c a c i ´on∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ #define TSYNC 16666 // Periodo de s i n c r o n i z a c i ´on en microsegundos #define TREAD 100 // Periodo de l e c t u r a de se nsor es en microsegundos DigitalOut led1 ( p29 ) ; // S alida d i g i t a l conectada al led indicador 1 DigitalOut led2 ( p26 ) ; // S alida d i g i t a l conectada al led indicador 2 S e r i a l pc (USBTX, USBRX) ; D i g i t a l I n se ns or 1 ( p19 ) ; // Entrada d i g i t a l de l sensor 1 D i g i t a l I n se ns or 2 ( p20 ) ; // Entrada d i g i t a l de l sensor 1 Ticker leeS e nsor ; // Ticker con l a f un ci ´on de l e e r p er i ´o dicamente l a s a l i d a de l o s sens ores magn´e t i c o s Ticker s in cr o ; // Ticker con l a fun c i ´on de cambiar de e st ad o l a se ˜n a l de s i n c r o n i z a c i ´on DigitalOut outS ( p30 ) ; // Se˜n a l de s i n c r o n i z a c i ´on de l a s c´a maras (1) DigitalOut outS2 ( p34 ) ; // Se˜n a l de s i n c r o n i z a c i ´on de l a s c ´amaras (2) DigitalOut myled (LED1) ; // Led u t i l i z a d o para debugging // Funci´on que l e e pe ri ´o dicamente la s a l i d a de l o s se nsor es magn ´e t i c o s 73 74 AP´ ENDICE A. C ´ ODIGO PLATAFORMAS MBED void lecturaSensores() { // Se env´ı an l o s datos de l o s sen sores por e l puerto s e r i e a l PC pc . putc ( ’ 1 ’ ) ; // Se env´ı a un b yte con e l val or 1 antes d el valo r de l primer sensor pc . putc ( sensor1 ) ; // Se env´ı a e l val or d i g i t a l act ual de l sensor 1 //pc . putc ( rand () %2); // Debugging led1 = sensor2 ; // Se a c t u a l i z a e l estado d el l e d indi cado r 1 de acuerdo al va l or a c tua l de l sensor 1 pc . putc ( ’ 2 ’ ) ; // Se env´ı a un b yte con e l val or 2 antes d el valo r de l segundo sensor pc . putc ( sensor2 ) ; // Se env´ı a e l val or d i g i t a l act ual de l sensor 1 ///pc . putc ( rand () %2); // Debugging led2 = sensor1 ; // Se a c t u a l i z a e l estado d el l e d indi cado r 2 de acuerdo al va l or a c tua l de l sensor 2 } // Funci´on que cambia de estado l a se ˜n a l de s i n c r o n i z a c i ´on void sincroniza() { outS = ! outS ; // Se i n v i e r te e l estado de l a s a l id a del pin outS2 = ! outS2 ; } int main ( ) { pc . baud (460800) ; // Configuraci ´on de l a vel o ci da d de comunicaci ´on d el puerto s e r i e char car ; // Variable a u x i l i a r en la que se guardar ´a e l valo r de l ´u ltimo c ar act er enviado por e l PC myled = 0 ; // I n i c i a l i z a c i ´on de se ˜n a l e s led1 = 0 ; led2 = 0 ; outS = 1 ; // La se ˜n a l que s al e d el micro se va a i n v e r t i r a l pasar por e l t ra ns i s t or , por lo que para que l a c´amara vea un fl an co de subida a l i n i c i o de l a captura de im´agenes , se debe enviar un fl anco de subida desde e l micro outS2 = 1 ; pc . p r i n t f ( ” Listo para enviar . \n\r ” ) ; while(1) {// Bucle i n f i n i t o i f ( pc . r eadab le () ) {// Si e x i s t e alg ´un byte en e l b uf f e r que ha enviado e l PC car = pc . getc () ; // Se l e e e l b yte i f ( car == ’ a ’ ) {// Si es e l car ´a c ter ’ a ’ , indica e l i n i c i o de la a d q u i s i c i ´on leeS e nsor . attach us(& lecturaSensores , TREAD) ; // Se ac ti va e l t i c k e r de l e c t u r a de l o s se nso res con periodo TREAD en microsegundos si nc r o . attach us(& sinc r oniza , TSYNC) ; // Se ac tiv a e l t i c k e r de 75 c on tr ol de esta do de l a se ˜n a l de s i n c r o n i z a c i ´on con per iodo TSYNC en microsegundos }else i f ( car == ’ s ’ ) {// Si es e l car ´a c te r ’a ’ , indi ca e l f i n a l de l a a d q u i s i c i ´on leeS e nsor . detach () ; // Se descativan l o s t i c k e r si nc r o . detach () ; myled = 0 ; // Se r es et ean l a s se ˜n a l e s led1 = 0 ; led2 = 0 ; outS = 1 ; // La se ˜n a l que s al e d el micro se va a i n v e r t i r a l pasar por e l t ra ns i s t or , por lo que para que l a c´amara vea un fl an co de subida a l i n i c i o de l a captura de im´agenes , se debe enviar un fl anco de subida desde e l micro outS2 = 1 ; } } } } C´odigo completo del archivo main.cpp del sistema microcontrolador: /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Adquisici ´on de datos IMU y L´a ser ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ #include ”mbed . h” #define TAMPAQUETEIMU 34 // Tama˜no d e l paquete r e c i b i d o de l a IMU #define TAMENVIOIMU 30 // Tama˜no de l paquete enviado al PC con l o s datos de l a IMU #define TAMENVIOLASER 8 // Tama˜no de l paquete enviado al PC con l o s datos d e l sensor de d i s ta n ci a /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Funciones ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ void startStreamingIMU() ; // Manda l o s by tes a l a IMU necesarios para que comience a enviar datos por streaming void envioPaquete(char paquete [ ] , int nElementos) ; // Env´ı a por e l puerto s e r i e un paquete de datos /∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗/ DigitalOut led (LED1) ; // Led indicador . Se enciende cuando se e s t ´an ad qui rie ndo da tos // Puertos UART a u t i l i z a r S e r i a l pLaser (p9 , p10 ) ; S e r i a l pIMU( p28 , p27 ) ; S e r i a l pc (USBTX, USBRX) ; 82 AP´ ENDICE A. C ´ ODIGO PLATAFORMAS MBED Bibliograf´ıa [1] Depaoli, Roberto,D´ ıaz, Daniel,Fern´ andez, Luis yStockli, Roberto,El tratamiento de la distorsi´on radial en metrolog´ıa efectuada con c´amaras digitales, Departamento de Ingenier´ıa, Universidad Nacional de La Matanza. [2] Palomo Pinto, Francisco Rogelio,P´ erez Vega Leal, Alfredo yGalv´ an Diez, Eduardo,Problemas resueltos de instrumentaci´on electr´onica, Universidad de Sevilla. Secretariado de publicaciones, 2007. [3] Platero, Carlos,Apuntes de Visi´on Artificial, Universidad Polit´ecnica de Madrid, Dpto. Electr´onica, Autom´atica e Inform´atica Industrial. [4] MERC` E BRUNED,Tecnolog´ıa de un esc´aner 3D con visi´on artificial, http://www.measurecontrol.com/tecnologia-de-un-escaner-3d-con- vision-artificial/, 2009. [5] Escalona Franco, Jos´ e Luis,Cinem´atica ferroviaria para su aplicaci´on a sistemas de visi´on artificial, comunicaci´on personal, 2015. [6] Escalona Franco, Jos´ e Luis,Desarrollo de nuevas tecnolog´ıas de auscultaci´on ferroviaria basadas en la simulaci´on en tiempo real, comunicaci´on personal, 2015. [7] Li, M.X.D,Berggren, E.G,Berg, M. yPersson, I.,Assessing track geometry quality based on wavelength spectra and track-vehicle dynamic interaction, Vehicle System Dynamics, 46, Suppl., 261 -276, 2008. [8] XIMEA,USB 3.0 camera series, Technical Manual, proporcionado por el fabricante, XIMEA, 2015. [9] Ruiz Arahal, Manuel,Estimaci´on de la posici´on de objetos, Universidad de Sevilla, Escuela T´ecnica Superior de Ingenier´ıa, apuntes Sistemas de Percepci´on. 83 84 BIBLIOGRAF´ IA [10] MICRO-EPSILON,optoNCDT 1302, Instruction Manual, proporcionado por el fabricante, MICRO-EPSILON, 2015. [11] Lord MicroStrain,3DM-GX4-25, Data Communications Protocol, proporcionado por el fabricante, Lord MicroStrain, 2015. [12] Lord MicroStrain,3DM-GX4-25, User Manual, proporcionado por el fabricante, Lord MicroStrain, 2015. [13] ARM mbed,mbed LPC1768, https://developer.mbed.org/platforms/mbed- LPC1768/. [14] ARM mbed,mbed LPC11U24, https://developer.mbed.org/platforms/mbed- LPC11U24/. [15] Garc´ ıa Vallejo, D.,Programa de adquisici´on de datos de sensores ´opticos e inerciales. Manual de uso, Virtualmech, 2015.