Showing posts with label 3d. Show all posts
Showing posts with label 3d. Show all posts

Sunday, February 10, 2019

Autódromo de Tocancipá: de la realidad al mundo virtual.


La persistencia puede transformar el fracaso en un logro extraordinario. Matt Biondi.

Esta es la historia de como un pequeño proyecto que parecía destinado a fracasar, llegó a convertirse en una de mis mayores satisfacciones, y por el cual quiero dejarles este mensaje: nunca se rindan.


El comienzo.
Mi gusto por los carros llega hasta los simuladores y juegos de carreras, como seguramente les pasó a muchos de ustedes, yo también crecí en una época en que Gran TurismoForza y Need for Speed nos llevaron a soñar con muchas de las máquinas que vivían ahí de forma virtual.

Pero con el paso del tiempo eso quedó en el olvido, hasta que un día leí un artículo sobre sim racing que me cautivó bastante y de paso me hizo comprar el simulador de carreras Assetto Corsa, un simulador creado por un pequeño grupo de personas, pero que sin embargo ha demostrado tal nivel de realismo en cuanto a conducción que es considerado superior al de los dos grandes de la industria: Forza y Gran Turismo


Una de las ventajas de Assetto Corsa es que fue diseñado desde un principio para soportar modificaciones, lo que ha contribuido enormemente a su éxito en todo el mundo, esto no lo sabía cuando lo adquirí, pero un día por casualidad encontré un tutorial que tenía las palabras 3ds Max y Assetto Corsa y me di cuenta que se podían hacer modificaciones al juego, y que el punto de partida era uno de los programas en que más tengo experiencia en cuando a modelado 3d, así que pensé: "¿Bueno y si modelo el Autódromo de Tocancipá y de alguna forma lo meto en el simulador?", la primera parte, es decir el "si modelo el Autódromo de Tocancipá" no parecía ser problema, lo que me preocupaba era el "y de alguna forma lo meto en el simulador", pero por algo había que comenzar.


Ingeniería inversa y tutoriales.
Lo primero que hice fue tomar el circuito de Mugello que venía con el simulador y utilizar un programa llamado kn5 converter para pasarla de Assetto Corsa a algo que pudiera "leer" el 3ds Max, una vez hice esto, comencé un pequeño proceso de "ingeniería inversa" y pude estudiar la forma en que estaba hecha la pista: nombres, capas, texturas, etc. Ahí me di cuenta que todas las caras de los polígonos eran de tres lados (en mis modelados casi siempre uso polígonos de cuatro lados), así mismo noté que la cantidad de polígonos era bastante pequeña en relación con la cantidad de objetos que había, esto ya me lo esperaba pues en un juego es el procesador de la tarjeta gráfica o GPU el que realiza casi todo el trabajo en tiempo real, y entre más polígonos haya, así también es mayor la carga para el procesador de la tarjeta lo que puede ralentizar el juego.


Antes de comenzar el modelado tuve que leer varios tutoriales que me guiaron para nombrar cada una de las mallas poligonales de acuerdo a la función que iban a tener: asfalto, arena, muros, pasto, etc. Una vez terminé esto, tomé una imagen de Google Earth y comencé a trazar un plano del autódromo en AutoCAD, para luego pasarlo a 3ds Max y comenzar el modelado tridimensional.


Se acercaba el momento de la primera prueba, pero antes fue necesario "enseñarle" algunas cosas al programa, pues aunque para nosotros es muy sencillo seguir la vía en un simulador, el programa debe "aprender" donde arrancan los carros, hacia dónde se conduce, dónde son los pits, cuáles son las zonas de cronometraje etc. Esto se hace en 3ds Max por medio de Dummies que deben llevar nombres precisos y sus ejes orientados de una forma particular, de esta forma lo que se haga en el programa de modelado va a ser entendido por el Assetto Corsa.


Luego todo se pasa a un programa "puente" llamado KsEditor, desde el cual se ajustan las texturas, materiales, algunos detalles de programación y finalmente se crea un archivo que puede leer el Assetto Corsa, ya en este punto decidí hacer la primera prueba.


El primer fracaso.
Para la primera prueba dejé lo mínimo requerido para que la pista funcionara: una superficie por donde circular, una baranda, la estructura de archivos y los dummies; con tan pocos elementos tendría que revisar menos cosas si algo fallaba, pero aunque Assetto Corsa reconocía la pista, no la cargaba, y en esa parte estuve por horas revisando y cambiando elementos a prueba y error, recuerdo que ese domingo estuve desde la tarde hasta bien entrada la noche intentado hacer que funcionara, pero todos mis esfuerzos parecían en vano, y cuando estaba por rendirme... ¡Eureka!


Un par de nombres en un archivo .ini fueron los culpables de que el Assetto Corsa no pudiera cargar la pista, pero una vez estuvo solucionado, el pequeño Fiat 500 apareció en la pantalla y recorrió la precaria pista que en muchas secciones no tenía barandas, así que si uno se salía de la pista caía al infinito como en la pista Rainbow de Super Mario Kart, sin embargo estaba feliz, pues era un comienzo.

De aquí en adelante comenzó un largo proceso de modelado 3d y texturizado con base en fotografías y videos de los cuales iba sacando los detalles del autódromo, aquí una de las partes más exigentes fue determinar los peraltes, desniveles y pendientes a partir de videos, pero debido a la gran cantidad de material que había en YouTube pude lograr una buena aproximación.


Las texturas por ejemplo, se crean usando archivos DirectDraw Surface o DDS, los cuales tienen una particularidad y es que pueden guardar varias versiones de la misma textura en un solo archivo cambiando la resolución, esto sirve para que la tarjeta gráfica pueda usar versiones más livianas de la textura en objetos que están lejos.

En la siguiente imagen lo explico mejor, aquí pueden ver la textura que usé para el pavimento: en la izquierda está a resolución completa y sería lo que se ve en un primer plano, pero en las partes más alejadas de la vía se usaría la textura más pequeña que está a la derecha, la cual es menos pesada. Por cierto, las resoluciones de estas texturas siempre deben ser múltiplos de cuatro.


Llegan los refuerzos.
Pasó algún tiempo y poco a poco iba modelando todos los detalles de la pista, fui compartiendo los avances en mi canal de YouTube, en aquel momento un amigo que ya sabía del proyecto quiso probar la pista y con un poco de pena acepté mostrarle los avances, esto último se los cuento porque quien iba a probar la pista era nada más y nada menos que un piloto profesional, alguien que conoce cada centímetro, desnivel, peralte, tumbaperros, bache y hueco que hay en el autódromo de Tocancipá.


Cuando llegué al punto de encuentro, me di cuenta que él no era el único que iba a probar la pista esa noche, otros reconocidos pilotos estaban ahí y todos corrieron en la pista, con bastante orgullo debo contarles que la primera impresión fue buena sobre todo teniendo en cuenta que para ese momento no había tenido acceso a los planos del autódromo, por lo que aquí las apreciaciones de todos fueron de gran importancia para este proyecto, pues me permitieron ajustar algunos peraltes, desniveles e inclusive algunas curvas.


Aquí les dejo una foto tomada ese día, de un tablero acrílico en el cual íbamos anotando los ajustes que debían hacerse a la pista... y los tiempos de vuelta pues también competimos, fue un día de bastante aprendizaje y por si fuera poco, al despedirnos, uno de ellos prometió conseguirme un plano.


Comienza la segunda parte.
Unos días después llegó el tan esperado plano, lo primero que hice fue comparar el nuevo trazado (en azul) con el anterior (en verde), de esto destaco dos cosas: uno es que no estaba tan perdido a pesar de haber usado Google Earth y el "ojímetro" como base para el primer trazado, y dos es que todos los ajustes que me habían dicho los pilotos estaban en lo correcto, impresionante.


Como debía realizar todo el trazado de nuevo, aproveché para incluir el "bombeo" de la vía, lo que a su vez ocasionó que tuviera que ajustar de forma mucho más detallada la transición geométrica entre las rectas y las curvas; me explico, si vemos la sección transversal de una vía, en las rectas hay algo llamado "bombeo" que causa que la parte central de la vía sea un poco más alta que los laterales, esto es así para permitir la evacuación de agua; sin embargo en las curvas esto es diferente por el peralte, este cumple dos funciones importantes: la primera es contrarrestar la inercia que lleva el carro al tomar las curvas y la segunda es evacuar el agua.

En la imagen de abajo se aprecia mejor: pues en la parte recta de la vía, la inclinación tiene la forma de un techo a dos aguas, mientras que en el centro de la curva la inclinación es en un solo sentido. Entre ambas secciones transversales hay una zona de transición, la cual va variando la forma geométrica de la misma, si a eso le sumamos los cambios en la pendiente de la vía tenemos una geometría tridimensional que puede ser un poco compleja, así que de esto puedo decirles que hice un trabajo bastante detallado.


Otra de las modificaciones que implementé fue en relación con la altura y la presión atmosférica, pues el autódromo de Tocancipá se encuentra a 2600 metros sobre el nivel del mar, por lo que la presión atmosférica es menor en Tocancipá, esto influye en la potencia de los motores pues a mayor altura menos oxígeno y recuerden que la mezcla estequiométrica de un motor de gasolina de encendido por chispa es de 14,7 partes de aire por 1 parte de gasolina, por lo que cualquier cambio en la composición del aire afectará la combustión y por tanto la potencia del motor; la altura también influye en la aerodinámica, pues con la menor presión atmosférica también se reduce la resistencia al avance y la eficiencia de los sistemas que generan downforce como alerones y difusores.


Al principio intenté "decirle" al programa que la presión atmosférica del autódromo era menor, sin embargo no lo logré (aunque por los datos que vi, debe haber alguna forma así que si alguien sabe cómo, le agradezco), entonces opté por modificar los carros con una versión "Toca", para esto usé el Assetto Corsa Car Tuner, un programa que permite variar todos los parámetros de un vehículo, y cuando digo todos me refiero a todos: ubicación del centro de gravedad, distribución de pesos, momentos de inercia, curvas de potencia, fuerza de frenado, parámetros de suspensión, no se imaginan lo completo que es, y de ahí que Assetto Corsa sea un simulador tan realista en cuanto a conducción.

Finalmente apliqué un factor de corrección similar al del estándar SAE J1349 que es el usado por la mayoría de dynos, así los motores atmosféricos resultaron con una pérdida en la curva de potencia cercana al 26%, y los motores con inducción forzada con una pérdida del 5 al 8%.


En este punto del proyecto también perfeccioné la trayectoria de los demás carros que competían en la pista, la inteligencia artificial o AI del Assetto Corsa se ajusta mediante una trazada ideal que deben seguir los carros de los competidores, esto fue algo que pude ajustar hasta un nivel aceptable, pero todavía no es perfecta, pues en el comienzo de la pista algunos de los carros dan un "volantazo" estilo conductor de SITP cuando se acercan a la parada, lo cual ha sido bastante difícil de solucionar (tanto en el simulador como para los conductores de los SITP).

Y entonces la gran oportunidad.
Después realizar la versión mejorada del autódromo, se me presentó una oportunidad de esas que solo ocurren una vez en la vida: ¡fui invitado al BMW M Power Tour 2018!, ahí iba a tener la oportunidad de manejar los BMW más rápidos e increíbles de la actualidad: M2, M3, M4, X5 M, X6 M, todos esos maravillosos representantes de la ingeniería alemana se encontraban presentes y listos para ser exprimidos a fondo en el autódromo, también tendría la oportunidad de conocer mejor el autódromo y comparar el simulador con la vida real. Nota del Autor: Si no han leído el artículo del BMW M Power Tour 2018, aquí se los dejo.


El día anterior estuve practicando en el BMW M4 del simulador, me aprendí los puntos clave de frenada, aceleración, desniveles que podían descolocar el tren trasero del Alemán, etc. También varié los parámetros de peso para simular la masa añadida de cuatro pasajeros, practiqué vueltas rápidas y vueltas a un buen ritmo pero que me dejaran un margen de seguridad, y finalmente, cuando llegué al evento presté mucha atención a los instructores, y luego como ya les conté en el artículo del blog... vino el paraíso.


En algún momento de la jornada pude hablar con uno de los organizadores a quien le pregunté sobre el mejor tiempo que habían logrado los M3 al ser conducidos por los pilotos profesionales, cuando escuché el tiempo me asombré bastante, pues estaba a solo 5 décimas de segundo del tiempo en el simulador, así de real es el Assetto Corsa.

Arriba: Un BMW M4 en el simulador; abajo: Su servidor manejando un BMW M2 en el Autódromo real. 


Y al final cayó la noche.
Uno de los puntos débiles de Assetto Corsa es que originalmente no tenía la opción de agregar lluvia o correr de noche, pero recuerden que es un simulador que soporta modificaciones y hace poco apareció la modificación "SOL", que junto a otras como "Weather FX" y "Lighting FX" permiten que corramos carreras nocturnas o que agreguemos lluvia durante la carrera, esto es la cereza en el pastel.

Hace poco instalé estas modificaciones y agregué algunos puntos de luz al autódromo, y debo decirles que estas mods valen la pena, a continuación les dejo una imagen de cómo se ve desde el interior del carro:


¿Y al fin todo esto para qué?
Mi idea no es lucrarme económicamente con esto, quiero que esto llegue a muchas personas de forma gratuita pero que nadie lo use para explotarlo económicamente, por ello estoy en proceso de averiguar ante la Delegatura de Propiedad Industrial de la Superintendencia de Industria y Comercio qué tan viable es, así que apenas surta ese trámite subiré acá el link de descarga.

Desde aquí aprovecho para agradecer a todas las personas de una u otra forma aportaron su valiosa colaboración en la realización de este proyecto, de corazón mil y mil gracias, y los dejo con unas videos e imágenes del Autódromo de Tocancipá en Assetto Corsa:

El video de cómo se hizo la primera parte, les recomiendo que lo escuchen con volumen.
Corriendo en un BMW M3 E30.
Carrera al atardecer y hasta el anochecer.






Tuesday, August 5, 2014

¿Hay muchos carros en Bogotá?


El tráfico en Bogotá es terrible, no existe otra forma de verlo, si ud. debe desplazarse en un vehículo particular o debe usar el servicio de transporte público lo más probable es que tenga que pasar un tiempo considerable atascado en el tráfico o apretujado dentro de un Transmilenio. Muchas veces he escuchado que el problema de la movilidad en Bogotá es que "hay mucho carro" que por cierto es una afirmación semánticamente incorrecta, pues debería decirse "Hay muchos carros"; y yo no creo que sea la razón principal, creo que como un problema complejo que es, no tiene una causa ni una solución sencilla, y la mejor forma es verla con hechos y cifras.

¿En Bogotá hay muchos carros?
Partamos de un hecho, y es que así la creencia popular nos diga que la ciudad está sobresaturada de carros, comparativamente no es tan cierto. Según un reporte de la Secretaría de Movilidad de Bogotá1, en el año 2012 circulaban en Bogotá poco más de 1.737.000 vehículos, entre vehículos particulares, de servicio público y vehículos oficiales; también y según cifras oficiales de proyección del DANE, en el 2012 Bogotá tenía 7.571.345 habitantes sin contar toda su área metropolitana, eso quiere decir que en el peor de los casos en el 2012 en Bogotá había 229,42 vehículos por 1000 habitantes.

Un panorama muy habitual del tráfico capitalino
Ahora comparemos eso con un país donde hay más vehículos por habitante, voy a poner este país como ejemplo pero hay muchos más donde se repiten cifras similares: Alemania, que según cifras del Banco Mundial2, en el 2011 en Alemania había 530,96 vehículos por cada 1000 habitantes, eso es el doble de carros por habitante, y allá no hay pico y placa!

A pesar de que en Alemania hay el doble de vehículos por habitante (¿y ya les dije que no hay pico y placa?) el panorama más normal a encontrarse dentro de una ciudad como Múnich es este:

Avenida en Múnich - Alemania, un país con el doble de carros por habitante que Colombia.
Entonces el problema principal no es que haya muchos carros, pues puede haberlos en una ciudad, pero no deberían convertirse en problema si no existiesen otros factores y si todos pusiéramos un granito de arena como veremos más adelante.

Busquemos otras causas del problema.
En los últimos años, en Bogotá no se ha construido una nueva vía importante exceptuando la ALÓ cuya obra se paró por razones que no voy a tratar en esta entrada. Si averiguamos un poco veremos que desde hace dos décadas la única vía importante que se ha creado es la Ciudad de Cali, que alivia el tráfico de norte a sur que se desplaza por el occidente pero más allá de eso no puede ayudar con el problema principal. 

Hay otro problema grave y es el pésimo estado de la malla vial, pues no es un secreto y tampoco es algo nuevo pero influye muchísimo, y aquí es donde ustedes pueden pensar que un hueco sólo afecta el tráfico en el punto en que se encuentra, pero diversos modelos matemáticos que aplican la teoría del caos han demostrado que un elemento que obstruya el flujo de tráfico en un punto, puede afectar enormemente el tráfico que viene muchas calles atrás.
Ante una calle así ni los mejores modelos matemáticos nos salvan de un trancón.
El "trancón fantasma" y la teoría del caos.
Cuantas veces no nos ha ocurrido que estamos en un trancón y cuando llegamos al punto donde se origina no encontramos nada?, bueno la explicación nos la puede dar otra aplicación de la teoría del caos3 al tráfico "capitalino", se trata del trancón fantasma, Hannah Holmes se refirió a esto en un artículo publicado en Discovery Online; este fenómeno es algo muy apreciable por ejemplo en la carrera 13 del sector de Chapinero, y aquí su explicación con un ejemplo:

Un bus* se desplaza por el carril de la derecha detrás de otros vehículos, decide pasarse al carril del centro para ir más rápido, en el acto cierra a otro vehículo que venía en el carril del centro y este tiene que frenar, no hay choque (normalmente por muy poco), pero a su vez el vehículo que viene detrás del que fue "cerrado" también tiene que frenar, de ahí en adelante cada tiempo subsecuente en el que los conductores deben frenar comienza a aumentar hasta que eventualmente un conductor que va mucho más atrás tiene que parar completamente, de la misma forma los carros que vienen detrás de él. Como los carros en este carril ya se han detenido por completo comienzan a pasarse al siguiente carril, y este a su vez comienza a hacerse más lento hasta que el mismo proceso ocurre repetidas veces y el resultado son ambos carriles con un tráfico muy denso y lento, esto es el "trancón fantasma", y es una de las causas de los atascos de tráfico en Bogotá.

*Puede ser cualquier vehículo pero siendo muy realistas un bus es lo que más se acerca a la realidad del ejemplo.

Nuestra cultura, o mejor dicho la falta de.
No es bueno generalizar, pero en Colombia muchas personas se creen más "vivos" que los demás, eso es algo que encontramos en todos los ámbitos, sectores y lugares; obviamente muchos de los conductores y peatones hacen parte de esta idiosincrasia pero como no es el tema central voy a obviar la cantidad de faltas que se ven día a día en nuestras calles, no terminaría nunca de enumerarlas y hay que continuar.

El típico conductor de bus capitalino, cuyo respeto por las normas de tráfico es casi nula la mayoría de las veces y quienes entorpecen el tráfico aparte de generar incomodidad y causar muchos accidentes con este tipo de acciones.
La falta de cultura afecta el tráfico, el "vivo" que hace doble fila, el que se adelanta a los demás en un semáforo y ocupa el espacio de la cebra, el conductor que para a dejar o recoger pasajeros en una vía principal, el que estaciona su vehículo en una vía principal, etc. No voy a decir que es culpa de un sólo sector pero la mayoría de infracciones que uno ve día a día son cometidas por los "ejemplares" conductores de servicio público, aunque seguidos muy de cerca por los conductores de vehículos oficiales quienes no dejan muy en alto su título.

Pero hay unos pocos conductores respetuosos en nuestras vías, para ellos escribo esta entrada y a continuación algunas ideas para mejorar nuestro tráfico capitalino:

El efecto cremallera:
Cuando nos encontramos ante una reducción de carril es inevitable que se produzca un retraso en el flujo de vehículos, sin embargo lo mejor es usar el "efecto cremallera", y es que pase un carro de cada carril intercalándose entre sí, de ahí viene su nombre y lo voy a explicar mejor con una corta animación 3d que he realizado:
close