viernes, 28 de enero de 2011

Cálculo del radio de la semicircunferencia de los sensores

En la última reunión con mi director de proyecto, estuvimos comentando que los sensores no parten de un mismo punto, sino que est´distribuidos formando una semicircunferencia; de ahí que no se representasen bien las distancias en el gráfico de telemetría cuándo el coche estaba en una recta, ya que estuve considerando que todos los sensores partían del mismo punto.
Surgió entonces un nuevo problema: es necesario calcular el radio de esa pequeña circunferencia para poder representar correctamente las distancias que hay desde el centro de dicha circunferencia.

Después de pensar varias estrategias sobre cómo calcular el radio formado por los sensores, di con esta solución:

La componente "x" de cada distancia en coordenadas polares de la zona de los sensores de la derecha (o izquierda) es la misma cuándo el coche está en una recta. Esto se observa mejor en la siguiente imagen que he diseñado en Photoshop para ilustrar la solución:

Matemáticamente ya tengo resuelto este problema, pero ahora hay que trasladarlo a TORCS, y hay un pequeño problema, que es que para aplicar ésto el coche tiene que estar paralelo al eje de la carretera (trackAngle = 0 ó lo más cercano posible).

He obtenido estos resultados en rectas largas de diferentes circuitos:
ángulo: 1.71836E-4 9.90371 19.8133 RADIO:6.733958448107313
ángulo: 0,000171836 RADIO:6.733958448107313

ángulo 9.63449E-4 Sensor0º:9.15691 S40º:18.3444 RADIO:6.2490239668582515
ángulo 9.64467E-4 Sensor0º:11.963 S40º:23.9661 RADIO:8.164038600679886
ángulo -9.91996E-4 Sensor0º:11.9658 S40º:23.8905 RADIO:8.092102355791852
ángulo 3.01992E-7 Sensor0º:6.66667 S40º:13.3333 RADIO:4.52927539845111

Parece ser que el valor del radio está alrededor de 6.5 , pero tengo que realizar más pruebas para comprobarlo. En el caso de no conseguir un rango más pequeño de variaciones del radio, creo que habría que tomar la media de radios conseguidos, aunque en teoría el valor del radio debe ser exacto.

Saludos.

4 comentarios:

  1. Hola Ricardo,

    Una pregunta, cuando el coche va a salir en la carrera está situado paralelo a los bordes, no???
    y además está parado, por lo que nos puede servir PERFECTO para tomar nuestras medidas.

    puedes hacer una tabla (y mandarmela, además de colocarla aquí)... con las anteriores condiciones y los siguientes datos....

    angulo S0 S1 S2 S3
    ------- --- --- --- ---

    SOLO ESO!...

    G

    ResponderEliminar
  2. siempre con el coche parado... y de posición de salida paralelo al borde

    ResponderEliminar
  3. Hola, he tomado más muestras en varios circuitos en los que se comienza en rectas; en todos ellos las he tomado en la posición de salida nada más comenzar, estando el coche parado y estando supuestamente en paralelo a los bordes. Digo lo de supuestamente porque los valores del radio no me salen iguales, y me hace pensar en que los bordes no son rectas perfectas y que Java quizá esté haciendo redondeos en los senos y cosenos. Además en cada circuito se comienza con un ángulo distinto, aunque eso si, muy cercano a 0.
    Los radios los he calculado usando S1(10º) y S3(30º).

    DATOS
    ------
    C-Speedway
    Angulo: 0.00129717 S0: 9.94162 S1: 10.2959 S2: 11.4882 S3: 14.0778 (RADIO:2.406291483706206)

    E-Speedway
    Angulo: -0.00147373 S0: 9.94365 S1: 10.2904 S2: 11.4722 S3: 14.0418 (RADIO:2.3760869786394054)

    F-speedway
    Angulo: 0.00352925 S0: 9.94064 S1: 10.3011 S2: 11.5019 S3: 14.108 (RADIO:2.430952924585584)

    G-Speedway
    Angulo: 0.00129717 S0: 9.94162 S1: 10.2959 S2: 11.4882 S3: 14.0778 (RADIO:2.406291483706206)

    A-speedway
    Angulo: -3.24551E-4 S0: 8.32377 S1: 8.61665 S2: 9.60966 S3: 11.7678 (RADIO:1.9996868893234936)
    Angulo: 0.0637643 S0: 8.54015 S1: 8.99532 S2: 10.2388 S3: 12.9014 (RADIO:2.7135240436891035)

    E-Track 5
    Angulo: 1.74846E-7 S0: 6.66667 S1: 6.90184 S2: 7.698 S3: 9.42809 (RADIO:1.6039751214464195)

    E-ROAD
    Angulo: 1.74846E-7 S0: 10.6667 S1: 11.0429 S2: 12.3168 S3: 15.0849 (RADIO:2.5663663223670388)

    ResponderEliminar
  4. He detectado que tenía un fallo en el código fuente al aplicar la fórmula del cálculo de la r (puse un * en vez de un - en el denominador), por lo que los datos del comentario anterior son incorrectos.

    Los correctos son:

    C-Speedway
    -------------
    Ángulo: 0,001297170 S0: 9,941620 S1: 10,295900 S2: 11,488200 S3: 14,077800
    RADIO: 17,277401049064

    E-Speedway
    -------------
    Ángulo: 0,001473730 S0: 9,943650 S1: 10,290400 S2: 11,472200 S3: 14,041800
    RADIO: 17,060529838298

    F-speedway
    --------------
    Ángulo: 0,003529250 S0: 9,940640 S1: 10,301100 S2: 11,501900 S3: 14,108000 RADIO: 17,454472533299

    G-Speedway
    --------------
    Ángulo: 0,001297170 S0:9,941620 S1:10,295900 S2: 11,488200 S3: 14,077800 RADIO: 17,277401049064

    A-speedway
    -------------
    Ángulo: 0,003529250 S0:9,940640 S1:10,301100 S2: 11,501900 S3: 14,108000
    RADIO: 17,454472533299

    E-Track 5
    -----------
    Ángulo: 0,000000175 S0:6,666670 S1:6,901840 S2:7,698000 S3:9,428090 RADIO: 11,516693481900

    E-ROAD
    -----------
    Ángulo: 0,000000175 S0:10,666700 S1: 11,042900 S2: 12,316800 S3: 15,084900
    RADIO: 18,426753571040

    ResponderEliminar