You are on page 1of 139

UNIVERSIDAD DEL BO-BO

FACULTAD DE CIENCIAS EMPRESARIALES DEPARTAMENTO DE SISTEMAS DE INFORMACIN

SIMULACIN DIGITAL DE TRFICO PARA INTERSECCIONES SEALIZADAS POR SEMFORO, BAJO AMBIENTE TRIDIMENSIONAL
AUTOR: ALMONACID MANSILLA, OSCAR MANUEL PROFESOR GUA: Parra Mrquez, Juan Carlos

Proyecto de Ttulo presentado en conformidad a los requisitos para obtener el Ttulo de Ingeniero Civil en Informtica

Concepcin, septiembre 2007

Resumen
El objetivo general de este proyecto es la construccin de una aplicacin que permita realizar simulaciones en tres dimensiones del flujo de trfico urbano sobre intersecciones sealizadas por semforos (flujo interrumpido) y obtener como resultado de estas simulaciones los tiempos de espera a los que se ven sujetos los conductores en dichas intersecciones as como tambin observar visualmente el comportamiento de los vehculos de forma individual y como conjunto, el sistema en sus partes y como un todo. El presente informe se divide en dos partes, la primera parte aborda la investigacin sobre los temas del proyecto, con la finalidad de tener un conocimiento ms acabado del problema. La segunda parte del informe trata sobre la definicin de requerimientos y diseo de la aplicacin que se construir. Para poder abordar el tema de la simulacin de trfico urbano en 3d es necesario tener conocimiento sobre las materias de fondo que ataen al problema. Para el caso puntual del proyecto, las materias caen dentro de las disciplinas de la Ingeniera de Trfico o Ingeniera del Transito, la Dinmica de Sistemas y la Simulacin, estas dos ltimas muy interrelacionadas entre si. En las primeras secciones del documento, se tratarn muy resumidamente las reas dentro de estas disciplinas las cuales tocan directamente los objetivos del proyecto. Esto ltimo con el afn de formalizar la investigacin y crear una base slida para el desarrollo del trabajo. Es as como se tratar brevemente el estudio del flujo trfico, que comprende un rea de anlisis dentro de la Ingeniera de Trfico, junto con el diseo y control del trfico en las intersecciones. As tambin la Dinmica de Sistemas aporta sus tecnicismos y formalismos en la creacin del modelo que representa los factores ms importantes en el comportamiento del flujo interrumpido. Modelo que es la base para lograr la simulacin.

Luego de formalizar definiciones y terminologas se definen los factores o variables que se consideran de importancia para representar adecuadamente el comportamiento del flujo de trfico, todo esto ltimo pensado en la aplicacin que se desarrollar durante la habilitacin profesional (HP) y tomando como base los parmetros de entrada ocupados por un software comercial de simulacin de trfico llamado AISUM. Tambin como parte preliminar del presente informe se describen los modelos matemticos que dan vida a la simulacin digital, a saber, modelo de Gipps de Vehculo Siguiente y modelo Influencia Seal-Interseccin. Un factor fundamental, sin considerar los modelos para la simulacin, es la determinacin y seleccin de las tecnologas que se integrarn para lograr concretar el proyecto, esto es tambin abordado en la parte primera del informe. Se realiza una sobrevista muy general sobre estas tecnologas o herramientas para tratar de comprender sus objetivos y aportes al proyecto. Es as como se trata brevemente Ogre3d un motor grfico que soporta la tarea de la visualizacin tridimensional, PhysX utilizado para las simulaciones al nivel de fsica newtoniana para dar a la simulacin mayor realismo, NxOgre que es el envoltorio encargado de unir el poder entregado por Ogre3D y PhysX de forma transparente para el desarrollador. La segunda parte del informe de habilitacin profesional considera netamente la ingeniera de software. La definicin de requerimientos basado en el estndar de definicin de requerimientos ERS, el diseo del simulador basado en el estndar de diseo, utilizando una metodologa hibrida entre cascada con reduccin de riesgos en las etapas de diseo y construccin y OMT (en la fase de diseo). Como es de esperar las conclusiones sobre el desarrollo del proyecto cierran el informe de HP.

TABLA DE CONTENIDOS

1.1 Justificacin .................................................................................................................. 8 1.2 Objetivos de Estudios Preliminares............................................................................ 10 1.2.1 Objetivo General ................................................................................................. 10 1.2.2 Objetivos del Estudio .......................................................................................... 10 CAPITULO 2. Resumen Terico De Las Disciplinas Involucradas .................................... 11 2.1 Ingeniera de Trfico .................................................................................................. 11 2.1.1 Caractersticas y Componentes del flujo de Trfico............................................ 13 2.1.2 Control de Intersecciones .................................................................................... 23 2.2 Dinmica De Sistemas................................................................................................ 27 2.2.1 Definiciones......................................................................................................... 27 2.2.2 Lenguaje Elemental Para Describir Sistemas...................................................... 28 2.2.3 Modelos de Sistemas ........................................................................................... 30 2.3 Simulacin .................................................................................................................. 31 2.3.1 Simulacin del Transporte (Trfico) ................................................................... 31 2.3.2 Ventajas y desventajas de la Simulacin............................................................. 32 CAPITULO 3. Modelos De Flujo Trfico Para Simulacin Por Computadora................... 34 3.1 Modelo De Gipps De Vehculo Siguiente .................................................................. 35 3.1.1 Gipps Flujo Libre ................................................................................................ 36 3.1.2 Gipps Flujo Condicionado................................................................................... 38 3.1.3 Velocidad Definitiva Del Vehculo Siguiente Segn Modelo De Gipps ............ 40 3.2 Modelo De Aceleracin De Influencia Seal-Interseccin ........................................ 41 3.3 Integracin De Los Modelos ...................................................................................... 44 CAPITULO 4. Seleccin De Tecnologas............................................................................ 46 4.1 Motor Grfico. ............................................................................................................ 46 4.1.1 Ogre 3D ............................................................................................................... 48 4.2 Motor Fsico ............................................................................................................... 54

4.2.1 PhysX .................................................................................................................. 54 4.2.2 El Envoltorio NxOgre.......................................................................................... 60 4.3 Modelador 3D............................................................................................................. 63 4.3.1 Blender ................................................................................................................ 64 4.4 Manipulador De Imgenes.......................................................................................... 64 4.4.1 Gimp .................................................................................................................... 65 4.5 Lenguaje de Programacin y Compilador .................................................................. 65 CAPITULO 5. Integracin de las Herramientas en el Desarrollo de la Aplicacin............. 68 5.1 Modelado 3D .............................................................................................................. 69 5.1.1 Modelado del Vehculo ....................................................................................... 69 5.1.2 Modelado de la Interseccin................................................................................ 77 5.2 Programacin.............................................................................................................. 78 CAPITULO 6. Definicin De Requerimientos .................................................................... 80 6.1 Descripcin del Software a Desarrollar...................................................................... 80 6.1.1 Objetivo ............................................................................................................... 80 6.2 Descripcin Global del Producto................................................................................ 82 6.2.1 Interfaz de Software ............................................................................................ 82 6.2.2 Clasificacin de Usuarios .................................................................................... 83 6.2.3 Interfaz de Usuario .............................................................................................. 83 6.2.4 Interfaz de Hardware ........................................................................................... 83 6.3 Requerimientos Especficos ....................................................................................... 83 6.3.1 Funciones del Producto ....................................................................................... 83 6.3.2 Requerimientos Funcionales del Sistema ............................................................ 84 6.3.3 Interfaces Externas, Requerimientos de Informacin.......................................... 86 6.3.4 Requerimientos de Hardware .............................................................................. 87 6.3.5 Restricciones Operacionales................................................................................ 88 CAPITULO 7. Diseo Global del Software......................................................................... 89 7.1 Diseo Funcional del Software .................................................................................. 89 7.1.1 Modelo de Objeto ................................................................................................ 89 7.1.2 Modelo Dinmico ................................................................................................ 98

7.1.3 Modelo Funcional.............................................................................................. 100 7.1.4 Diccionario De Datos ........................................................................................ 107 7.2 Especificacin De Procesos...................................................................................... 111 7.3 Modelamiento De Datos........................................................................................... 115 7.4 Diseo de Entradas ................................................................................................... 117 7.4 Diseo de Entradas ................................................................................................... 118 7.5 Diseo de informes................................................................................................... 119 7.6 Pantallas.................................................................................................................... 120 7.7 Casos de Prueba........................................................................................................ 127 7.7.1 Capturas de Simulaciones.................................................................................. 133 Conclusin .......................................................................................................................... 135

PARTE I GENERALIDADES

CAPITULO 1. Introduccin

En la bsqueda de temas para realizar la propuesta del Proyecto de Ttulo y Habilitacin Profesional, en reas relacionadas con la dinmica de sistemas y simulacin, se encontr en la Red una propuesta elaborada por el departamento de Lenguajes y Sistemas Informticos de la Universidad de Granada Espaa, tambin en la lnea proyecto de titulacin para sus alumnos informticos, referente a la simulacin en tridimensional del trfico urbano. Esta misma propuesta fue presentada al profesor Juan Carlos Parra, docente jornada completa de nuestro departamento, quien estim que se poda desarrollar como Proyecto de Ttulo (PT) y posterior Habilitacin Profesional (HP).

1.1 Justificacin
Los factores de estabilidad econmica que se viven en la actualidad en Chile, el crecimiento del poder adquisitivo de sus habitantes, sumado a la baja registrada en los precios de automviles nuevos y sobre todo en los usados, hacen que el parque automotriz nacional crezca ao a ao de manera sostenida. Segn datos del I.N.E. el comportamiento del parque automotriz (vehculos motorizados) para los periodos comprendidos entre los aos 2002 y 2005 es el que se resume en la tabla siguiente. Tabla N 1.1 Comportamiento parque automotriz
Ao Parque Automotriz 2002 2003 2004 2005 2.164.540 2.195.878 2.298.620 2.444.571 Crecimiento (%) 1.43 4.47 5.97

Fuente: Adaptado de INE Parque de Vehculos en Circulacin 2005 8

La Octava Regin del Bo-Bo ocupa el tercer lugar a nivel nacional en cuanto a la cantidad de vehculos en circulacin con cerca del 10% del total despus de la Regin de Valparaso que posee aproximadamente un 11.1%, siendo la Regin Metropolitana, como era de esperar, la regin con mayor nmero de vehculos con un 42.7% del total nacional de vehculos en circulacin. A pesar de los esfuerzos que se realizan para modificar la infraestructura vial para que sea capaz de soportar este crecimiento y entregar un flujo expedito en la circulacin de vehculos, muchas de las ciudades sufren del colapso en sus sistemas viles producto del alto flujo vehicular, en el mejor de los casos slo en ciertos horarios, y la insuficiente capacidad soportada por la infraestructura existente. Todo lo cual se traduce en tiempos de espera y recorridos muy amplios por parte de los conductores quienes se ven demorados en sus trayectos. Los ya conocidos y no deseables Tacos. Por lo anteriormente expuesto sera de utilidad contar con una herramienta que pudiera simular el flujo de vehculos en intersecciones complejas en donde se registran atochamientos. Y poder ver cuales son los resultados de la aplicacin de planes dirigidos a la solucin de estos problemas. Poder identificar por ejemplo como afecta al tiempo de espera, de los conductos que circulan por la interseccin, una determinada configuracin en los tiempos de los semforos. Si a esto se agrega un entorno tridimensional en donde se pueda observar la interaccin de los vehculos con el medio y el comportamiento del flujo vehicular de una manera aproximada a la realidad, las personas encargadas de tomar y aplicar las decisiones de los planes de mejora tendran una mayor comprensin producto de un mejor anlisis del problema y sus soluciones.

1.2 Objetivos de Estudios Preliminares


1.2.1 Objetivo General
Desarrollar una aplicacin que permita realizar simulaciones tridimensionales del comportamiento del trfico vehicular en zonas urbanas, intersecciones sealizadas.

1.2.2 Objetivos del Estudio


Investigar sobre las reas que involucra el objetivo del proyecto. Conocer las distintas dinmicas del trfico urbano en intersecciones sealizadas, como comportamiento y componentes. Seleccionar los modelos de simulacin necesarios que permitan el comportamiento deseado de la aplicacin (simulaciones apropiadas). Definir los parmetros principales con los cuales trabajar la aplicacin. Seleccionar las tecnologas adecuadas para el desarrollo del simulador.

10

CAPITULO 2. Resumen Terico De Las Disciplinas Involucradas

2.1 Ingeniera de Trfico


La ingeniera del trfico es una sub-rea de la Ingeniera de Transporte. Ingeniera de Transporte: Es la aplicacin de tecnologas y principios cientficos a la planificacin, diseo funcional, operacin y manejo de facilidades para cualquier modo de transporte en orden para proveer seguridad, rapidez, comodidad, oportunidad, econmica y ambientalmente compatible con el movimiento de personas y bienes [Ref01]. Ingeniera de Trfico: Segn W. R. Blunden [Ref01]. Es la ciencia de medir el trfico y viajes, el estudio de las leyes bsicas relativas a la generacin de flujo de trfico, y la aplicacin de este conocimiento a la prctica profesional de la planificacin, diseo, y operacin de sistemas de trfico para lograr seguridad y eficiencia en el movimiento de personas y bienes. La prctica de la ingeniera de trfico puede ser dividida en cinco grandes reas funcionales, estas son. i) Estudio de las caractersticas del Trfico. Estos estudios son conducidos para obtener datos de transporte y tendencias de trfico para regiones completas, y condiciones de trfico para localidades especficas. Los estudios ms comunes cubren las siguientes reas. Factores humanos y vehiculares. Indicadores del flujo de trfico (volumen), velocidad, tiempo de viaje y demora.

11

Patrones de flujo de peatones. Patrones de viaje, factores generadores de viajes, origen y destino. Demanda y uso de estacionamientos y facilidades de cargado de camiones. Anlisis de accidentes.

ii) Planificacin de transporte. La aplicacin de los conocimientos a la planificacin. Continua y comprensiva planificacin de estudios de transporte para guiar el desarrollo de las facilidades de transporte que encontraran los objetivos y estndares deseados por la comunidad. Planes para especificar las facilidades de desarrollo o mejoras. Estudios de impacto medioambiental. Investigacin de los factores subyacentes del sistema de transporte y el comportamiento de los usuarios de ese sistema. iii) Diseo de Geometras. La aplicacin del conocimiento al diseo. Diseo de caractersticas geomtricas para nuevas autopistas, basado en el anlisis de la ingeniera de trfico. Rediseo de las carreteras e intersecciones existentes para incrementar sus capacidades. Diseo de estacionamientos y terminales. Establecimiento de estndares para la subdivisin de diseo de entrada de autos, controles de acceso. iv) Operacin y Control de Trfico. El control de trfico se dirige a travs de las leyes del 12

transito nacionales y ordenanzas locales. v) Administracin Mantener el inventario de la infraestructura de transporte y control de dispositivos. Planificacin administrativa, presupuestos, necesidades del personal, estructura organizacional. Despus de conocer los cinco mbitos de estudio de la ingeniera de trfico, se puede apreciar que los temas tocantes al proyecto estn dentro de dos de estos, el estudio de las caractersticas del trfico y el diseo de geometras. Ms puntualmente en: Factores humanos y vehiculares. Indicadores del flujo de trfico (volumen), velocidad, tiempo de viaje y demora. Rediseo de las carreteras e intersecciones existentes para incrementar sus capacidades.

2.1.1 Caractersticas y Componentes del flujo de Trfico.


Existen dos tipos de flujo, el flujo ininterrumpido y el flujo interrumpido. Flujo Ininterrumpido: Corresponde al flujo en que los vehculos que atraviesan una seccin de camino no requieren detenerse por ninguna causa externa al flujo de trfico, como los dispositivos de control de trfico. Los principales anlisis de este tipo de flujo son: El flujo, la velocidad, la densidad, el flujo en los embotellamientos, apelotonamiento que es cuando uno o ms vehculos se desplazan a muy baja velocidad. Flujo Interrumpido: Este es el tipo de flujo que se busca simular. Es aquel flujo interrumpido constante y peridicamente por caractersticas externas, principalmente por los dispositivos de control de trfico. Los principales anlisis para este tipo de flujo son sobre: Intersecciones controladas con seales, aplicacin de teora de colas, 13

apelotonamiento cuando los vehculos salen de una interseccin. 2.1.1.1 Caractersticas del Flujo de Trfico Los factores crticos del sistema de trfico son: Los conductores y peatones, los vehculos, los caminos y los dispositivos de control. Para una mejor comprensin de esto ltimo se proceder a dar una breve descripcin de cada uno de estos factores. Caractersticas Humanas. Los conductores y peatones son el principal elemento en el trfico de carretera y tienen que ser comprendidos para que posteriormente puedan ser guiados y controlarlos de la mejor manera. La conducta individual de un conductor en el flujo de trfico es frecuentemente el factor que determina las caractersticas de ese trfico. Tiempo de percepcin-reaccin. Es el factor ms usado para caracterizar a los conductores. El tiempo de percepcin incluye la deteccin, identificacin, y elementos de decisin comprendidos en respuesta a los estmulos. El tiempo de respuesta es el tiempo que lleva iniciar la respuesta fsica. El procesamiento humano de la informacin puede ser visto como un sistema computacional en donde las vas de entrada (input) son los sentidos, encargados de la recepcin de la informacin. El cerebro correspondera a la unidad central de procesamiento que a travs de la percepcin interpreta la informacin que capturan los sentidos, para luego dar pas al intelecto que razona y resuelve el problema y por ltimo al control de movimiento que son las instrucciones dadas por el cerebro a las partes del cuerpo como respuesta al problema (output). La informacin que llega a travs de los sentidos, puede hacerlo por medio de visin (agudeza visual), audicin, y la estabilidad sensorial que es cuando los conductores reaccionan al sentir inestabilidad como caminos speros, curvas agudas o cuestas

14

pronunciadas. Segn Francisco Navarro [Ref12], el tiempo de percepcin para un conductor normal en Chile es de de segundo al igual que el tiempo de reaccin o respuesta, lo que hace un tiempo de percepcin-reaccin de 1,5 segundos, para un conductor normal en Chile. Caractersticas de los Vehculos. Las caractersticas y desempeo de los vehculos juegan un rol fundamental en la ingeniera de trfico. Las dimisiones determinan el diseo de las geometras y estructuras de las carreteras y estacionamientos. El rendimiento de los vehculos considerados en conjunto con el desempeo de los conductores determinan las caractersticas del flujo de trfico y su seguridad. Rendimiento de los vehculos esta dado por: Potencia. Define la habilidad del vehculo para acelerar, mantener la velocidad y subir pendientes. Aceleracin. Los vehculos se diferencian notablemente en sus relaciones peso energa y de esta manera en su aceleracin. Esto se ve mas claramente entre los autos de pasajeros y los camiones. Frenado. Cuando un vehculo desacelera, este pierde energa cintica. La energa esta siendo expendida por la friccin dentro de los frenos. Desaceleracin. Corresponde a la accin contraria a la aceleracin. En Gonzles [Ref02], se encontr informacin sobre los datos de aceleracin, desaceleracin y dimensiones de los vehculos agrupados en tres conjuntos que son: los vehculos livianos, camiones simples, camiones remolques y semiremolques. La 15

informacin se muestra agrupada por las categoras en las siguientes tablas. Tabla N 2.1Caractersticas de los Vehculos Livianos
Parmetro Longitud (m) Ancho (m) Mx. Aceleracin (m/s2) Normal desaceleracin (m/s2) Mx. Desaceleracin (m/s2) Media 4.32 2.00 2.72 4.00 8.00 Desviacin 0.30 0.00 0.34 0.00 0.00 Mnimo 3.73 2.00 2.13 4.00 8.00 Mximo 4.98 2.00 3.61 4.00 8.00

Tabla N 2.2 Caractersticas de los Camiones Simples


Parmetro Longitud (m) Ancho (m) Mx. Aceleracin (m/s2) Normal deceleracin (m/s2) Mx. Deceleracin (m/s2) Media 7.50 2.300 1.00 3.50 7.00 Desviacin 2.00 0.50 0.50 1.00 1.00 Mnimo 6.00 1.90 0.60 2.50 5.50 Mximo 10.00 3.00 1.80 4.80 8.00

Tabla N 2.3 Caractersticas de los Semiremolques y Remolques


Parmetro Longitud (m) Ancho (m) Mx. Aceleracin (m/s2) Normal deceleracin (m/s2) Mx. Deceleracin (m/s2) Media 15.00 2.300 0.50 2.00 5.00 Desviacin 2.00 0.50 0.80 2.00 2.00 Mnimo 8.00 1.90 0.40 1.50 4.50 Mximo 20.00 3.00 1.80 4.80 8.00

C) Caminos Las caractersticas detencin y el progreso. Visin de distancia. Es la longitud de un camino en la cual el conductor puede ver en 16 de los caminos ms relevantes estn relacionadas con la

cualquier tiempo dado un objeto sobre su ruta de recorrido. Visin distancia de frenado. La visin de la distancia de frenado, para propsitos de diseo, es usualmente tomada como el minimito de visin de distancia que requiere un conductor para detener el vehculo despus de observar un objeto en su ruta sin impactarlo. Visn distancia de decisin. Esta vista de distancia es la ms extensa. Se define como La distancia requerida por un conductor para detectar lo inesperado, las situaciones difciles en el camino, amenazas potencial, y seleccionar una velocidad y trayectoria adecuadas para terminan de ejecutar las maniobras con seguridad. Como el proyecto est enfocado a intersecciones de calles sealizadas por semforo, las caractersticas de los caminos que son relevantes son las que comprenden el diseo de las intersecciones. Para esto, se utiliza como referencia el manual de demarcaciones de Vialidad [Ref13] que define las caractersticas y normas bajo las cules deben disearse las intersecciones en cuanto a sealizacin. Segn este manual y de manera muy resumida las lneas longitudinales que separan las pistas de una va, deben seguir las siguientes consideraciones. Las lneas longitudinales se emplean para delimitar pistas y calzadas; para indicar zonas con y sin prohibicin de adelantar; zonas con prohibicin de estacionar; y, para delimitar pistas de uso exclusivo de determinados tipos de vehculos, por ejemplo, pistas exclusivas de bicicletas o buses.

Figura N 2.1 Marcacin Longitudinal - Dimensiones en centmetros

17

Tabla N 2.4 Consideraciones para la demarcacin longitudinal de las pistas


Velocidad Mxima de la Va (km/h) Mayor a 60 Menor o igual a 60 Ancho de la Lnea (cm) 15 mnimo 10 mnimo Patrn Relacin (m) 8 12 5u8 Demarcacin Brecha 1a33a5 2a33a5

La tabla anterior muestra las consideraciones que se deben tomar al momento de demarcar longitudinalmente las pistas de una calle, esto depende principalmente de la velocidad con la que circulan los vehculos por la pista. Como el proyecto aborda una interseccin urbana la velocidad mxima permitida en Chile para vehculos livianos particulares es de 60 Km/h. Se considera entonces una demarcacin para velocidades menores o iguales a 60 Km/h. Segn el mismo manual de demarcaciones, una interseccin sealizada por semforo debera tomar las siguientes consideraciones en su sealizacin. La demarcacin transversal de un cruce regulado por semforo esta compuesta por una Lnea de Detencin Continua y un Paso Peatonal. La lnea de detencin indica al conductor que enfrenta la luz roja de un semforo, el lugar ms prximo al cruce donde el vehculo debe detenerse. Deben ubicarse a no ms de 2 m del lugar donde se ubica el poste que sustenta la lmpara del semforo. La siguiente figura proporcionada por el manual de demarcacin grafica lo dicho en el prrafo anterior y muestra como debera lucir una interseccin, considerando la ubicacin del semforo, las lneas longitudinales y transversales.

18

Figura N 2.2 Interseccin regulada por semforo - Dimensiones en centmetros

Siguiendo con la referencia al manual de demarcaciones el ancho de las pistas debe considerar la siguiente tabla. Tabla N 2.5 Consideraciones para los anchos de pistas
Velocidad Mxima de la Va (km/h) Igual o superior a 70 50 60 Menor a 50 Ancho de la Pista (m) Entre 3,5 y 3,8 Entre 3,0 y 3,5 Entre 2,5 y 3,0

19

E) Dispositivos de control Los dispositivos de control de trfico se comunican con los conductores, y deben seguir las normativas y reglamentaciones definidas por las autoridades. Muchos de estos controles son simples (marcas en el camino) a pesar de aquello los conductores pueden recibir el mensaje que se les esta transmitiendo a travs de los colores y modelos de estos controles. Las seales estn estandarizadas segn: color, forma, figura, smbolos, ubicacin, tamao y formato del mensaje de modo que los conductores tengan un alto grado de atencin y comodidad en su lectura. As tambin los dispositivos de sealizacin se estandarizan de la misma manera, incluyendo las secuencias de sus indicaciones. 2.1.1.2 Componentes del Flujo de Trfico La teora de flujo de trfico implica el desarrollo de relaciones matemticas entre los principales componentes del flujo de trfico que corresponden a: flujo, densidad y velocidad (otro elemento asociado con la densidad es el gap o headway (avance) entre dos vehculos en un flujo de trfico). Estas relaciones ayudan a la ingeniera de trfico en la planificacin, diseo y evaluacin de las medidas implementadas en los sistemas

carreteros. La teora de flujo de trfico es utilizada para disear los largos adecuados de las pistas, los tiempos promedios de espera en las autopistas e intersecciones, para mejorar el funcionamiento del sistema existente, realizar mejoras en los dispositivos de control entre otras. Otra aplicacin importante de la teora del flujo de trfico es la simulacin, en donde los algoritmos matemticos son utilizados para estudiar la compleja interrelacin que existe entre los componentes del flujo trfico y para estimar los efectos de los cambios en estos. A continuacin se definen los componentes del flujo de trfico antes mencionados.

20

Flujo: q es definido simplemente como el flujo de vehculos, n, que pasa por un punto en una carretera en un intervalo o duracin de tiempo t.

q=

n t

(Ec. 2.1)

Un ejemplo de unidades para q puede ser vehculos por hora. El promedio de la velocidad del trfico esta definido dedos maneras: Velocidad media-tiempo: Que corresponde a la media aritmtica de las velocidades observadas en algn punto designado de la carretera. Esta se conoce como velocidad media-tiempo, u t , y se expresa como:

1 n ut = ui n i =1

(Ec. 2.2)

Donde ui es la velocidad del isimo vehculo. Velocidad media-espacio: Es la segunda forma de definir la velocidad media y es la ms til en el contexto del anlisis de trfico, se determina en base al tiempo necesario de un vehculo para atravesar una seccin o longitud conocida de la carretera, l. Esta medida se denota por u y se expresa de la siguiente manera:

u=

(1 n ) li
i =1

(Ec. 2.3)

Donde, li es el largo usado de la carretera para medir la velocidad del vehculo i, y

21

q=

u
i =1

(Ec. 2.4)
f

Donde tn ( ln ) es el tiempo necesario para que el vehculo n atraviese la seccin de la carretera de largo l. Si todas las velocidades de los vehculos son medidas sobre el mismo largo de carretera, L = l1 = l2 = ln . En tal caso la ecuacin quedara como:

u=

(1 n ) 1 ( L ti )
i =1

(Ec. 2.5)

La que corresponde a la media armnica de la velocidad usada en los modelos de trfico. Densidad: La densidad del trfico, k, se refiere al nmero de vehculos ocupando algn largo de la carretera en algn momento especfico, y se define como:

k=

n l

(Ec. 2.6)

Tiempo de Headway (tiempo de avance): Es el tiempo entre al paso de la parte frontal de un vehculo por un punto designado en la carretera y el paso de la parte frontal del vehculo siguiente por el mismo punto. Se denota por t.
n

t = hi
i =1

(Ec. 2.7)

Donde hi es el tiempo headway para el vehculo psimo (el tiempo que transcurre entre el arribo del vehculo i e i-1). Substituyendo en Ec.1

22

q=

(Ec. 2.8)

hi

k u = u f 1 k j

(Ec. 2.9)

Donde h es el promedio de headway ( hi /n). Espacio Headway (espacio de avance): d, es la distancia entre el frente de un vehculo y el frente del vehculo siguiente. Gap: Es el avance en una pista con mayor flujo, el cual es evaluado por el conductor del vehculo que se encuentra en un flujo menor y que desea unirse a la pista con mayor flujo. El gap es expresado en unidades de tiempo (tiempo gap) y en unidades de espacio (espacio gap).

2.1.2 Control de Intersecciones


El propsito del control de trfico es asignar la derecha del camino al conductor, y as de esta forma facilitar la seguridad vial asegurando el movimiento ordenado y fiable de todo el trfico en la carretera. El control puede ser logrado usando seales de trfico, signos o marcas que regulen, guen el trfico. Para el control de los conflictos en el flujo vehicular en las intersecciones se utilizan varios mtodos diferentes. La seleccin de uno de estos mtodos depende del tipo de interseccin y el volumen del trfico de cada flujo conflictivo. A continuacin se describen los tipos de control de intersecciones ms importantes. 23

Signo Ceda el Paso: Los conductores que se aproximen a este signo, necesitan disminuir la velocidad. La detencin para este signo no es mandataria pero deben hacerlo cuando sea necesario para no interferir con el trfico que tiene el camino. Signo Pare: Este signo es usado cuando se requiere que un vehculo que se aproxima a una interseccin se detenga. Este signo pare no debe ser utilizada en autopistas. Pueden ser utilizados en caminos menores que tengan interseccin con caminos ms grandes (de alta velocidad). Signo Canalizacin de Intersecciones: Es usado para separar los carriles de los caminos, aquellos que son utilizados para doblar o seguir la misma direccin. 2.1.2.1 Semforos Los semforos son parte importante dentro del sistema del flujo vehicular interrumpido ya que una adecuada programacin o configuracin de los semforos ayuda a conseguir un flujo relativamente expedito y mantiene los tiempos de espera de los conductores en niveles aceptables, mientras que una inadecuada configuracin produce congestiones y tiempos de espera elevados. El funcionamiento eficiente de los semforos requiere de una adecuada temporizacin de las diferentes indicaciones de colores (luces de semforos), esto se obtiene a travs de la implementacin de modelos para configuracin de semforos. No es un objetivo del proyecto crear modelos o realizar optimizaciones en la programacin de los semforos, sin embargo los resultados entregados por modelos que ya desarrollados o estn bajo desarrollo pueden ser simulados por la aplicacin para observar cual es el comportamiento del sistema. A continuacin algunas definiciones necesarias para entender el funcionamiento de semforos y poder trabajar con ellos. Controlador (semforo): Es un dispositivo de sealizacin de trfico, que cambia los colores de las luces sealizadoras de trfico segn un plan fijo o variable.

24

Ciclo (duracin del ciclo): Es el tiempo en segundos secuencia de seales indicadoras de colores.

requerido para completar una

Fase (fase de seal): Es la parte de un ciclo asignada a una corriente de trfico, o a una combinacin de una o ms corrientes de trfico. Intervalo: Es cualquier parte en la duracin de ciclo en la cual la seal indicadora no cambia. Desplazamiento: Es el lapso de tiempo en segundos o el porcentaje de la duracin del ciclo entre el comienzo de una fase de luz verde en una interseccin y el comienzo de la correspondiente fase de luz verde en la siguiente interseccin. Este es el tiempo base de los sistemas de control. Intervalo de cambio y despeje: Es la duracin total del tiempo en segundos de las seales indicadoras de luz amarilla y roja. Es el tiempo que se provee a los vehculos para despejar la interseccin despus del intervalo de luz verde, antes de que se lance en movimiento el flujo en espera. Intervalo de luz roja: Es el tiempo desplegado en una indicacin de rojo para todos los que se aproximan. Es algunas veces usado exclusivamente para el cruce de peatones o para permitir a vehculos y peatones limpiar intersecciones muy largas antes de dar la indicacin verde al flujo opuesto. Factor de hora peak (FHP): Es la medida de la variabilidad en la demanda durante la hora peak. Es el indicador del volumen durante la hora peak para la mxima tasa de flujo durante un periodo de tiempo dado dentro de la hora peak. Para las intersecciones el periodo de tiempo usado es de 15 minutos y el FHP es dado como:

25

FHP =
Donde:

vhp 4* vdp

(Ec.2.10)

vhp: volumen durante la hora peak. vdp: volumen durante peak en 15 minutos dentro de la hora peak
2.1.2.2 Temporizacin de Seales para Intersecciones Incomunicadas Una interseccin incomunicada es aquella en la cual los tiempos de las seales no estn coordinados con las otras intersecciones y por lo tanto opera de forma independiente. La duracin del ciclo para una de estas intersecciones debe ser corto, preferentemente entre 35 y 60 segundos, aunque puede ser necesario usar ciclos largos cuando los volmenes de aproximacin son muy altos. Si embargo la duracin del ciclo debe ser mantenida bajo los 120 segundos, ya que ciclos muy largos resultaran en excesivas demoras. Varios mtodos se han desarrollado para de terminar el ciclo de una interseccin, y en la mayora de los casos, el intervalo de amarillo se considera como componente del tiempo de intervalo verde. Intervalo Amarillo. El propsito principal de la indicacin de luz amarilla despus de la luz verde es alertar a los motoristas del hecho que esta cercano el cambio a la luz roja y permitir a los vehculos estar alerta para cruzar la interseccin. Una mala eleccin del intervalo de las luz amarilla puede llevar a la creacin de una zona de dilema, que es un rea cercana a una interseccin en la cual ningn vehculo puede detenerse en forma segura antes de una interseccin ni aclarar, o despejar, la interseccin sin acelerar antes de llegada de la luz roja. El intervalo de luz amarilla requerido es el periodo de tiempo que garantiza a un vehculo que se aproxima detenerse de forma segura o continuar a travs la interseccin sin acelerar.

26

2.2 Dinmica De Sistemas


2.2.1 Definiciones
Antes de introducir a la dinmica de sistemas es importante dar claridad al significado de las palabras que la componen, para esto, a continuacin se definen brevemente. Sistema: Una definicin aceptable para sistema puede ser dada como: Un objeto dotado de alguna complejidad, formado por partes coordinadas, de modo que el conjunto posea una unidad que es justamente el sistema. Se entiende como sistema a una unidad cuyos elementos interaccionan juntos, ya que continuamente se afectan uno a otros, de modo que operan hacia una meta comn. El sistema es algo que se percibe como una entidad que se distingue de lo que lo rodea y es capaza de mantener esa identidad a lo largo del tiempo y bajo entornos cambiantes. Para que un sistema pueda ser definido como tal debe cumplir las siguientes condiciones. Existe, o tiene, un fin. Existe un conjunto de cosas o normas. Tal conjunto esta ordenado.

Dinmica: El trmino dinmica es empleado en oposicin al trmino esttica, y se quiere con l expresar el carcter cambiante de aquello a lo que es referido con este trmino. Al hablar entonces de la dinmica de un sistema, se quiere hablar de los cambios que se producen a lo largo del tiempo en las distintas variables que pueden ser asociadas a sus partes (sistema), como consecuencia de las interacciones que se producen entre ellas. La dinmica de sistemas se utiliza para analizar como las relaciones en el seno de un 27

sistema permiten explicar su comportamiento. Ya que los cambios producidos en un sistema son el reflejo, en alguna medida, de las interacciones que tienen en su seno.

2.2.2 Lenguaje Elemental Para Describir Sistemas


La descripcin mnima de un sistema viene dada por la especificacin de las distintas partes que lo forman. De este modo se obtiene la descripcin ms elemental que se pueda tener de ese sistema, que se limita a establecer que partes lo forman y cuales de ellas se influyen entre si. El conjunto de relaciones entre los elementos de un sistema recibe la denominacin de estructura del sistema y se representa mediante el diagrama de influencia o causal. En su forma ms simple el diagrama causal esta formado por lo que se conoce como grafo orientado. En donde los nodos representan a los elementos y las flechas o aristas representan la influencia de un elemento sobre otro. A estas aristas se le puede asociar un signo. Este signo indica si las variaciones del antecedente y del consecuente son, o no, del mismo signo. A modo de ejemplo ver la siguiente figura.

Figura N 2.1 Lenguaje elemental de sistemas El signo positivo sobre la arista de la figura 2.1 quiere decir que si A se incrementa, lo mismo suceder con B. Y en caso contrario si A disminuye as mismo lo har B. Por otra parte si la influencia entre los dos elementos A, B fuese negativa, un incremento en el primero implicara de una disminucin en el segundo, y viceversa. 2.2.2.1 Bucle de Realimentacin Negativa Un bucle de realimentacin negativa, representa un tipo de situacin muy frecuente en el que se trata de decidir acciones para modificar el comportamiento con el fin de alcanzar un determinado objetivo.

28

No se profundizar ms sobre el tema de los bucles de realimentacin negativa, ya que estos como se mencion anteriormente buscan realizar modificaciones o implementar controles para lograr una meta u objetivo, que puede verse como optimizacin. Esto va mas all de los objetivos del tema de proyecto, que no busca optimizar los flujos de trfico, encontrar soluciones de control, sino que busca analizar el comportamiento de este en diferentes condiciones. Solo se mencionaron los bucles de retroalimentacin negativa para dar ms consistencia a la investigacin. 2.2.2.2 Bucle de Realimentacin Positiva

Figura N 2.2 Realimentacin positiva La figura muestra una forma que puede adoptar un bucle de realimentacin positiva. Esta figura muestra un bucle en que todas las influencias son positivas, pero pueden ser tambin negativas y en tal caso compensarse por pares. Esta figura representa un proceso en el que un estado determina una accin, que a su vez refuerza este estado, y as indefinidamente. Si cualquiera de los elementos de este sistema, X, D, F, sufre una perturbacin, sta se propaga, reforzndose a lo largo del bucle. En efecto si X crece, entonces, en virtud del signo de influencia, lo har D, lo que a su vez determinar el crecimiento de F, y de nuevo el de X. Por lo tato la misma estructura del sistema hace que el crecimiento inicial de X, vuelva reforzado a X, inicindose de este modo un proceso sin fin que determinar el crecimiento de X. esto es conocido como crculo vicioso o bola de nieve. El cambio se

29

amplifica produciendo ms cambio. 2.2.2.3 Retrasos

Figura N 2.3 Retrasos Las influencias de los elementos en un sistema o sobre otros elementos puede producirse de forma instantnea o de forma menos instantnea, como influencias que tardan mucho tiempo en manifestarse. En este ltimo caso se tienen influencias a las que se asocian retrasos. Esto puede ser representado por la figura mostrada arriba, en donde la influencia de D sobre F tiene un retraso que se representa con una lnea dividida en dos trozos.

2.2.3 Modelos de Sistemas


Uno de los objetivos principales de la dinmica de sistemas es la construccin de modelos precisamente para realizar posteriores simulaciones con ellos. Es por esto que se menciono anteriormente la cercana entre estas dos disciplinas, ya que una constituye la base de la otra. El trmino modelo tiene muchas acepciones, la acepcin que interesa para la dinmica de sistemas es el modelo como sinnimo de representacin. Ms claramente, como la representacin de un cierto aspecto de la realidad. La dinmica de sistemas divide la construccin o desarrollo de modelos en tres fases. Fase de Conceptualizacin, Formulacin y fase de Anlisis y Evaluacin. En la fase de conceptualizacin se describe el sistema en forma verbal, se define el modelo en el tiempo y se crean los diagramas causales mostrando como se influencias los diferentes 30

componentes del sistema. En la fase de formulacin se crean los modelos matemticos (ecuaciones) que representan el comportamiento del sistema en el tiempo. Y por ltimo en la fase de anlisis y evaluacin, como su nombre lo indica se realizan anlisis comparativos, de sensibilidad y se evala la implementacin del modelo.

2.3 Simulacin
La simulacin es una rea muy cercana a la dinmica de sistemas, que se describi brevemente en la seccin anterior, es ms, la dinmica es un componente fundamental de esta rea de investigacin ya que es a travs de ella que se logran formular y validar los modelos que sern la representacin de la realidad para el problema en estudio. Para formalizar el concepto de simulacin, se toma la siguiente definicin. Simulacin: La simulacin es la representacin de un proceso o fenmeno mediante otro ms simple, que permite analizar sus caractersticas. A travs de la simulacin se generan los posibles estados del sistema. La simulacin tiene como objetivo predecir el comportamiento de los sistemas. Las simulaciones nos entregan una serie de ventajas, entre las cuales se pueden destacar, tiempos bajsimos en el anlisis del sistema, es decir, simular en segundos o minutos (con la ayuda de computadoras) el comportamiento de horas, das o meses. En sntesis una de las mayores virtudes de los modelos de simulacin es lograr entregar informacin detallada frente a los posibles cambios del sistema permitiendo anticipar soluciones correctas a los problemas reales [Ref02].

2.3.1 Simulacin del Transporte (Trfico)


La simulacin de los modelos de transporte o de trfico, esta clasificada en tres tipos de simulaciones, cada tipo se define segn el nivel de detalle que se le quiera dar a la simulacin y que se proceden a describir a continuacin. 31

Simulacin Macroscpica: Describe entidades y sus actividades e interacciones con bajo nivel de detalle. Ejemplos de esto, puede ser el que los flujos son representados como un promedio, considerando densidades y velocidades. Las maniobras de cambio de pista no son consideradas, sino que son incorporados los vehculos a los arcos suponiendo una correcta distribucin [Ref02]. Simulacin Mesoscpica: En general representa las entidades con un alto nivel de detalle, pero describe sus interacciones y actividades con un detalle mayor que el anterior, pero menor que el siguiente (pelotones) [Ref02]. Simulacin Microscpica: Considera las entidades del sistema as como sus relaciones detalladas. Este tipo de simulacin llamada a veces la teora del auto siguiente o la teora del vehculo siguiente (car following), considera los espacios y velocidades entre los vehculos individuales. El lder y su seguidor. El tipo de simulacin que se abordara en el proyecto es la simulacin microscpica ya que se pretende considerar o manejar las distancias y las velocidades de cada vehculo en relacin a las condiciones del flujo de trfico en que se estn trasladando.

2.3.2 Ventajas y desventajas de la Simulacin


Como en todo orden de cosas existen ventajas y desventajas a la hora de aplicar un cierto enfoque en un estudio o un determinado plan de accin para conseguir mejoras en situaciones problemticas. Tambin la simulacin tiene ventajas y desventajas cuando se pretende aplicar sobre un sistema complejo para estudiar su comportamiento. Las siguientes ventas y desventajas fueron tomadas de Dextre [Ref03]. Desventajas Los investigadores de modelos de simulacin requieren conocimientos de muchas disciplinas (programacin, estadstica, ingeniera, etc.).

32

La simulacin no es posible si el investigador no entiende totalmente el sistema. Los modelos de simulacin trabajan sobre supuestos y limitaciones preestablecidas.

Si los modelos de simulacin no son representaciones vlidas del sistema bajo estudio, proporcionarn resultados con muy poca informacin aprovechable.

Ventajas Los sistemas ms complejos del mundo real, no pueden ser descritos minuciosamente por un modelo matemtico que pueda ser evaluado analticamente. En estos casos, la simulacin es el nico tipo de investigacin posible. Los modelos de simulacin pueden ser usados con nuevas situaciones que actualmente no existen en el mundo real. Un sistema de simulacin puede ser estudiado en tiempo real, de manera lenta o en forma acelerada, dependiendo de los requerimientos del investigador. En la simulacin, se pueden comparar diferentes escenarios, con la finalidad de ver cul es el que mejor se ajusta a los requerimientos.

33

CAPITULO 3. Modelos De Flujo Trfico Para Simulacin Por Computadora

La Ingeniera de Trfico ya se ha encargado de desarrollar modelos para simular el complejo sistema de flujo vehicular. Existen varios modelos publicados por distintos expertos en el rea de transporte algunos de estos modelos fueron desarrollados pensando en la realizacin de las simulaciones a travs de computadoras. Como se mencion al comienzo del documento, se considera como referencia para el desarrollo del proyecto a AISUM que es un software comercial para la simulacin de trfico. Este SW utiliza como modelo para sus simulaciones al modelo de Gipps de vehculo siguiente (Peter Gipps) publicado en 1981 para realizar simulaciones digitales. Sin embargo este modelo no considera el flujo vehicular interrumpido constantemente por las intersecciones sealizadas por lo que es necesario integrar un modelo complementario que cubra esta necesidad. Los modelos de vehculos siguientes pueden ser separados en dos grupos de modelos, los modelos de Respuesta a Estmulos y los modelos de Distancia Segura o Distancia de Seguridad. El primer grupo considera la aceleracin del vehculo siguiente como una funcin entre la diferencia de velocidades, entre vehculo lder y el vehculo siguiente, y el tiempo de reaccin del conductor. Los modelos de distancia segura consideran la aceleracin del vehculo siguiente como una relacin entre las diferencias de velocidades, del lder y perseguidor, y la distancia que hay entre ambos procurando siempre mantener una distancia mnima que evite la colisin entre ambos vehculos en caso de frenado brusco. El modelo de Gipps corresponde al segundo de los grupos mencionados en el prrafo anterior.

34

3.1 Modelo De Gipps De Vehculo Siguiente


El modelo de Gipps de vehculo siguiente corresponde a un modelo de microsimulacin que trata de estimar el comportamiento de los vehculos de manera individual y bajo las condiciones impuestas por el resto de los elementos que forman parte del sistema. Ms puntualmente trata de estimar el comportamiento del vehculo siguiente segn comportamiento del vehculo que viaja directamente delante de l, el vehculo lder. El modelo de Gipps tiene dos variantes, una para flujo libre en donde no existe un vehculo lder, y una para flujo condicionado en donde si existe la presencia influyente de un vehculo lder. Con el objetivo de dar claridad en la exposicin del modelo servir de apoyo la siguiente figura.

FiguraN 3.1 Componentes Modelo de Gipps

Considerando que la direccin del flujo es de izquierda a derecha, n representa al vehculo lder con un largo de Ln y una velocidad en el instante t de Vn (t ) . Mientras que

n + 1 representa al vehculo siguiente que posee un largo de Ln +1 y lleva una velocidad Vn +1 (t ) para el mismo instante de tiempo t . X n (t ) es la posicin del vehculo lder en el instante t , y as tambin X n +1 (t ) corresponde a la posicin del vehculo siguiente para un
35

mismo t . La diferencia X n (t ) X n +1 (t ) es la distancia existente entre los dos vehculos sin considerar el largo del vehculo lder. Teniendo en mente las consideraciones anteriores se expone a continuacin el modelo de Gipps.

3.1.1 Gipps Flujo Libre


Esta variante del modelo corresponde al caso en el cual no existe un vehculo lder que vaya por delante o de existir un lder, la distancia que lo separa del vehculo siguiente es muy grande como para influir en el comportamiento de ste. De esta manera la aceleracin que el vehculo siguiente tomar en un determinado instante de tiempo depende solo de sus propias capacidades y restricciones. Y est dada por el siguiente modelo matemtico.

V (t ) Vn +1 (t ) + Vn +1 (t + T ) = Vn +1 (t ) + 2.5an +1 * T * 1 n +1 * 0.025 Vn*+1 Vn*+1


(Ec. 3.1)

Donde:

Vn +1 (t ) : Velocidad del vehculo n + 1 en el instante t . an +1


: Mxima aceleracin del vehculo n + 1 . Esta dada por la capacidad del vehculo.

Vn*+1

: Velocidad de viaje deseada por el conductor del vehculo n + 1 . : Tiempo de reaccin del conductor o intervalo de simulacin. Para el proyecto en particular, se considera a T como tiempo de reaccin siempre y cuando ocurra algn evento al cual reaccionar sino T toma el valor de tiempo del intervalo de simulacin.

De esta manera entonces y suponiendo que el conductor no excede la velocidad 36

deseada de viaje (como se menciono anteriormente los modelos trabajan con supuestos y limitaciones preestablecidas en donde las reglas se cumplen), la velocidad del vehculo siguiente se incrementar para luego hacer a su aceleracin ms pequea a medida que se alcanza la velocidad deseada, finalmente la aceleracin se vuelve cero al lograrse sta velocidad deseada permaneciendo en un estado de equilibrio [Ref03]. La mxima aceleracin del vehiculo al igual que la velocidad de viaje deseada son constantes, de acuerdo con esto el modelo de Gipps libre podra ser representado por un diagrama causal simple.

Figura N 3.2

Segn el diagrama, las velocidades tienen una influencia positiva sobre su consecuente. Al aumentar la velocidad del vehculo siguiente en un instante de tiempo t , se provoca como consecuencia un aumento de su velocidad para el instante de tiempo t + T . Si consideramos a los instantes de tiempo t y t + T como estados inicial y final respectivamente y con un comportamiento cclico en donde t + T pasa a ser t en una nueva iteracin del sistema, el aumento de la velocidad Vn +1 (t + T ) conlleva tambin un aumento en Vn +1 (t ) . Cuando las velocidades no registran variaciones, no provocan tampoco variaciones en su consecuente.

37

3.1.2 Gipps Flujo Condicionado


El modelo de Gipps condicionado considera la presencia de un vehculo lder directamente delante del vehculo siguiente y que condiciona el comportamiento de ste ltimo. Factores como la velocidad del lder, su desaceleracin, la distancia entre ambos vehculos y el tiempo de reaccin condicionan el comportamiento del vehculo siguiente y determinan la velocidad que ste desarrollar. El modelo matemtico es el siguiente.

Vn2 (t) Vn+1(t + T ) = dn+1(t) + d *T dn+1 2*{ Xn (t) Sn Xn+1(t)} Vn+1(t)*T d n Donde:
2 n+1 2

(Ec. 3.2)

d n +1

: Es la mxima desaceleracin que desea aplicar el conductor del vehculo siguiente. d n +1 < 0.

X n (t ) : Es la posicin del vehculo n en tiempo t . Sn


: Corresponde al tamao efectivo del vehculo n , esto es, el largo del vehculo lder Ln (ver figura 1) ms una distancia o espacio que el vehculo siguiente no podr invadir (una distancia de seguridad).

X n +1 (t ) : Es la posicin del vehculo siguiente en el momento t. dn


: Es la desaceleracin deseada por el vehculo lder. d n < 0.

La diferencia bajo la raz cuadrada y entre llaves

{ Xn (t) Sn Xn+1(t)}

corresponde a la distancia que existe en el momento t entre los dos vehculos considerando el tamao efectivo del lder. Es sta distancia la que determinar si el vehculo siguiente obtiene su velocidad desde la variante de flujo libre o de la condicionada. La interaccin de 38

los elementos ms importantes de este modelo se puede apreciar en el siguiente diagrama causal.

Figura N 3.3 Elementos ms importantes del modelo condicionado

Considerando las desaceleraciones de ambos vehculos como constantes se puede realizar un anlisis simplificado del comportamiento del sistema. Cuando la distancia entre ambos vehculos aumenta se produce un aumento de la velocidad del vehculo siguiente para el instante de tiempo t + T , si la distancia decrece tambin lleva a un decremento de la velocidad Vn +1 (t + T ) . El aumento de la distancia entre el lder y el vehculo perseguidor se provoca a causa de un aumento en la velocidad Vn (t ) del lder y/o tambin se produce por una disminucin de velocidad por parte del vehculo siguiente. La interaccin de los elementos de velocidad Vn +1 (t ) y Distancia Entre Vehculos es de carcter negativa o inversa ya que al aumentar el valor del elemento antecedente, se gatilla una disminucin en el consecuente y en el caso contrario al experimentarse una disminucin en el antecedente, ocurre un aumento en el consecuente Distancia Entre Vehculos.

39

3.1.3 Velocidad Definitiva Del Vehculo Siguiente Segn Modelo De Gipps


Hasta aqu se ha expuesto que el modelo de Gipps posee dos variantes, una para el flujo libre y otra para el flujo condicionado. Las dos variantes calculan la velocidad que el vehculo siguiente tendr en el instante de tiempo t + T , es decir, en el instante de tiempo en que el conductor comience a reaccionar despus de ocurrido un evento en el momento t . Entonces, la velocidad definitiva que el vehculo siguiente tendr en el instante de tiempo
t + T deber satisfacer las dos ecuaciones presentadas, para el modelo en flujo libre y el

modelo en flujo condicionado. De esta manera entonces:


libre condic + Vn+1 (t + T ) = min V ( t T ), V n n + 1 +1 (t + T )
(Ec.3.3)

La velocidad del vehculo siguiente Vn +1 (t + T ) corresponder al mnimo entre las velocidades en flujo libre y condicionado. Se puede apreciar en este punto que el mayor discriminador, entre que variante del modelo predominar, es la distancia entre los vehculos. Cuando existe una distancia muy

(t + T ) ser muy alto debido a que los valores bajo la grande entre ambos el valor de Vncondic +1 raz cuadrara especialmente las distancias elevaran el resultado de la ecuacin y la velocidad que tomar entonces el vehculo siguiente ser el valor de Vnlibre +1 (t + T ) . Vindolo de otro modo cuando un vehculo se desplaza por una va y lleva otro delante de l a una distancia muy grande, ste no se deja de influenciar por el comportamiento del vehculo lder y se desplaza libremente, es esto entonces lo que se refleja con la eleccin de la velocidad mnima. Por otro lado cuando la distancia entre los vehculos se vaya acortando los valores de las velocidades en flujo libre y condicionado se irn equiparando hasta llegar

(t + T ) ser menor que la velocidad que un momento en que la distancia es tal que Vncondic +1
deseara llevar el auto siguiente en un flujo libre sin condicionamientos y de esta manera comenzara a comportarse de acuerdo a la influencia ejercida por el vehculo lder.

40

Se asume tan bien que la velocidad del vehculo siguiente en el intervalo de tiempo entre que ocurre un evento y cuando el conductor comienza a reaccionar, es decir, la duracin del tiempo entre el instante t y el instante t + T , ser el promedio de las velocidades registradas para al inicio y termino del periodo. A manera de ejemplo si un conductor tiene un tiempo de reaccin de 1,5 segundos y el vehculo que conduce lleva una velocidad de 15km/h en un momento de tiempo 10 segundos cuando ocurre un evento, el conductor comenzar a reaccionar a el evento en el instante de tiempo 11,5 segundos con una velocidad calculada para el vehculo de 13km/h. La velocidad entonces que llevar el vehiculo siguiente en el intervalo de tiempo entre el instante 10 segundos y el instante 11,5 segundos ser de 14km/h. (Los valores son solo de ejemplo).

3.2 Modelo De Aceleracin De Influencia Seal-Interseccin


Como el objetivo del proyecto es crear un simulador de trfico para intersecciones sealizadas por semforos y el modelo de Gipps no considera esta interrupcin en el flujo vehicular, es necesaria la integracin de otro modelo que si considere sta caracterstica y que pueda representar la detencin del flujo vehicular en las intersecciones en donde la luz roja del semforo lo indique. Racero [Ref05], en una exposicin de modelos de aceleracin para microsimulacin de trfico urbano, expone el modelo de Aceleracin De influencia Seal-Interseccin, que representa el modelo que sigue un vehculo para detenerse totalmente en la lnea de detencin de una interseccin. Antes de exponer el modelo es necesario definir dos conceptos importantes, distancia influencia y distancia de seguridad.
Distancia De Seguridad. La distancia de seguridad es el espacio mnimo que debe existir

entre un vehculo y cualquier objeto delante de l de tal manera que en caso de frenado total del vehculo no exista impacto entre ste y el objeto. Si el objeto es esttico la distancia de seguridad en el instante t esta dada por:

41

Dnseg +1 =

Vn +1 (t ) 2 * d nmax +1

(Ec.3.4)

Siguiendo las notaciones utilizadas en el modelo de Gipps y presentadas en la figura 1, la distancia de seguridad Dnseg +1 del vehculo siguiente en el instante de tiempo t va a ser igual a la velocidad de ste, en igual momento, divida por el doble de su mxima desaceleracin. Si el objeto delante del vehculo no esttico si no ms bien otro vehculo en movimiento, la distancia de seguridad esta dada por:

Dnseg +1 =

Vn (t ) Vn +1 (t ) 2 * d nmax 2 * d nmax +1

(Ec. 3.5)

La distancia de seguridad en este caso es el valor absoluto de la diferencia entre las velocidades divididas por el doble de su mxima desaceleracin, respectivamente para los vehculos lder y siguiente.
Distancia De Influencia. La distancia de influencia como su nombre lo indica es el espacio

dentro del cual cualquiera sea el evento que ocurra ocasiona la reaccin del conductor del vehculo ante el cual ocurre el evento. Si un evento ocurriese fuera de sta distancia o espacio no provocara ninguna reaccin de parte del conductor. La distancia de influencia esta dada por la siguiente funcin.

inf seg Dn +1 = Dn +1 (t ) + Vn +1 (t ) * T +

an +1 (t ) + an +1 *T 2 2 (Ec. 3.6)

Donde:

42

an +1 (t ) : Es la aceleracin del vehculo n + 1 en el instante de tiempo t . an +1 : Es aceleracin mxima del vehculo n + 1 .

La distancia de influencia es directamente proporcional a la velocidad del vehculo, al aumentar sta aumenta la distancia de influencia y siempre ser mayor que la distancia de seguridad. Estando definidos los conceptos de distancia de seguridad y distancia de influencia corresponde presentar el modelo de influencia seal-inteleccin. Este modelo como se mocion en prrafos anteriores representa la detencin total de un vehculo en la lnea de detencin de una interseccin y empieza a actuar una vez que la distancia de influencia es mayor que la distancia entre el vehculo y la lnea de detencin. La representacin matemtica del modelo es la siguiente.

1 e X f X n+1 ( t ) Vn +1 (t + T ) = Vn +1 (t ) * inf X f Dn +1 1 e
Donde:

(Ec. 3.7)

Xf

: Longitud del tramo por donde se desplaza el vehculo n + 1 .

X n +1 (t ) : Posicin del vehculo n + 1 .

: Factor de correccin. Representa las caractersticas del conductor.

Considerando a como una constante y simplificando el modelo, ste se puede representar por el siguiente diagrama causal.

43

Figura N 3.4 Diagrama causal del modelo distancia Influencia

La distancia X f X n +1 (t ) corresponde a la distancia entre el vehculo siguiente y la lnea de detencin de la interseccin cuando esta disminuye provoca que se disminuya la velocidad del vehculo en el instante de tiempo t + T . Cuando esta distancia se vuelve cero hace que la velocidad del vehculo siguiente sea cero tambin. Independiente del valor que tome la distancia de influencia al disminuir la distancia hacia la lnea de detencin se provocara una disminucin en la velocidad del vehculo (asumiendo que el vehculo debe detenerse por una seal de luz roja). En el caso que la desaceleracin aplicada al vehiculo entre los intentes de tiempo t y t + T sea mayor que la mxima desaceleracin posible del vehculo, se aplica esta ltima.

3.3 Integracin De Los Modelos


Para el desarrollo del proyecto se utilizaran los dos modelos presentados en las secciones anteriores, el modelo de Gipps de seguimiento vehicular y el modelo de influencia seal-interseccin. Para integrar y complementar los dos modelos se utiliza el semforo como seleccionador de uno o de otro dependiendo de si est indicando luz roja o verde (amarilla). Si el semforo esta con luz roja y adems se cumplen las condiciones de 44

que la distancia de influencia sea mayor a la distancia entre el vehculo siguiente y la lnea de detencin y que no exista un vehculo lder o este ya cruz la interseccin, se utiliza el modelo de influencia seal-interseccin. En Caso contrario de no cumplirse estas condiciones se utiliza el modelo de Gipps. El algoritmo encargado de implementar esto ser descrito en detalle en posteriores captulos.

45

CAPITULO 4. Seleccin De Tecnologas

Una ves claros los objetivos del proyecto, es decir, Qu se quiere conseguir con l y entendiendo el problema en s, llega el momento de abordar el Como lograrlo. La seleccin entonces de las tecnologas o herramientas para el desarrollo de la aplicacin tienen que soportar por un lado el ambiente tridimensional que se pretende dar al simulador, la parte grfica que permita observar visualmente el comportamiento del

sistema de flujo vehicular. Por otro lado para lograr una representacin aceptable de la realidad es necesaria una herramienta que permita obtener comportamientos a nivel fsico de los vehculos. Adems es necesario seleccionar un lenguaje de programacin que permita implementar los modelos de microsimulacin que se utilizan y que finalmente otorgan el comportamiento al sistema.

4.1 Motor Grfico.


La parte visual es una parte importante dentro del proyecto ya que comprende un objetivo que el usuario del simulador pueda ver a travs de una interfaz de salida grfica como se comporta el flujo vehicular en una interseccin, cual es el comportamiento de un vehculo en particular dependiendo de las condiciones del medio, la presencia de una luz roja en el semforo o la detencin del vehculo que viaja directamente delante de l. Inicialmente cuando no se tenan conocimientos relacionados con la programacin grfica menos aun en tres dimensiones se pretendi desarrollar la aplicacin programando directamente la parte visual con las primitivas de OpenGL (libreras grficas abiertas), es decir, la parte elemental de toda programacin grfica y creacin de video juegos a nivel de lneas de cdigo. Pero la falta de experiencia en este mbito de programacin no entreg un control adecuado sobre los objetos creados para darles el comportamiento que se requiere y si se agrega que el nmero de objetos a controlar es significativo la complejidad del 46

proyecto aumenta radicalmente, lo que llevo a desestimar esta va de implementacin. En su lugar se encontr la posibilidad de trabajar con motores grficos, que permiten abstraerse de la programacin a nivel elemental y entregan total control sobre los objetos creados. En definitiva la primera va que se intento explotar para la implementacin del simulador traa consigo un trabajo no considerado y de gran envergadura que era la creacin de un motor grfico propio para el simulador, lo que creaba un alto riesgo para el proyecto. Sin embargo el haber optado inicialmente por esta alternativa entreg el conocimiento base de cmo trabajan los motores grficos en relacin con el renderizado de los objetos especialmente con OpenGL. En trminos simples renderizar comprende todo el proceso o los procesos desde que se crea un objeto hasta que se muestra por pantalla. Todos los video juegos y la mayor parte de las aplicaciones grficas 3d, como es el caso del proyecto, estn basadas en el uso de motores grficos que permiten alejarse del uso directo de las libreras grficas a nivel de primitivas. Permitindole a los desarrolladores concentrar sus esfuerzos en otras reas como funcionalidad, rendimiento, apariencia entre otras sin invertir en el alto costo de tener que implementar a un nivel inferior manejando directamente cosas como listas de vrtices, transformaciones matriciales para la rotacin de los objetos etc. Es mucho ms sencillo rotar un objeto en un ambiente tridimensional llamando a un mtodo rotar_Y(90) que cumpla la funcin de rotarlo noventa grados en el eje Y (como es el caso de los motores), a tener que lidiar directamente con la lista de vrtices del objeto y con las matrices y clculos necesarias para lograr la rotacin en 3d. Existen motores grficos pagados y afortunadamente tambin de fuente abierta. A la hora de seleccionar un motor para integrarlo al proyecto se siguieron los criterios de: gratuidad, especialmente escritos en lenguaje de programacin C o C++ y basados en la experiencia de terceros ya que experiencia propia no existe al ser un rea nueva de desarrollo. Quien cumpli con estos criterios de seleccin fue Ogre, que es por hoy el motor grfico de fuente abierta ms popular. Esto es tambin corroborado por el ranking de motores pagados y libres disponible en http://www.devmaster.net/engines , donde Ogre3D 47

ocupa el primer lugar en una muestra de 10 motores gratuitos.

4.1.1 Ogre 3D
Ogre es un motor grfico de fuente abierta orientado a objetos escrito en C++. Tiene licencia GNU Licencia Pblica General Menor (LGPL) que permite su uso libre con algunas pequeas restricciones. Fue diseado con el objetivo de facilitar el trabajo de los desarrolladores que producen aplicaciones basadas en hardware de aceleracin grfica 3D. Utiliza libreras grficas OpenGL y Direct3D de Microsoft, lo que permite la portabilidad del cdigo a diferentes plataformas como Linux, Windows, Mac OS. Posee una comunidad altamente activa que a travs de su foro participa desarrollando plugins que son capaces de integrar a Ogre con una gran cantidad de herramientas grficas y da soporte continuo tanto a iniciados como a desarrolladores expertos. Lo que lo convierte sin duda en una atractiva opcin para integrar al simulador. Ogre tiene una gran cantidad de clases y subclases que le permiten realizar su trabajo, para entender a grandes rasgos como trabaja Ogre es til el siguiente diagrama UML que incorpora las clases ms importantes.

Figura N 4.1Diagrama de clases Ogre3D

48

Este diagrama de clases fue desarrollado por Ogre3D para entregar una sobrevista muy general de las clases ms importantes del motor y las relaciones que existen entre ellas. Cabe mencionar que la versin de Ogre utilizada en el proyecto corresponde a la versin 1.2.4 Dagon, ya que cuando se inicio el entrenamiento con esta herramienta corresponda a la ultima versin estable disponible. Finalizando el mes de marzo de este ao 2007 se lanzo una nueva versin del motor grfico con lo que la actual versin estable corresponde a 1.4.0 Eihort. Volviendo al diagrama de clases. La instancia de la clase Root, es decir, el objeto Root es el punto de entrada al sistema de Ogre. Este debe siempre ser el primer objeto que se crea y el ltimo que se destruye. Es el que permite configurar el sistema, selecciona (o da la posibilidad de seleccionar) el sistema para el renderizado de los objetos que puedan haber en una escena, es decir, selecciona las libreras de OpenGL o Direct3D dependiendo de que estas existan y/o de las preferencias del usuario. Inicializa tambin al SceneManager y posee un mtodo llamado startRendering() que es el encargado de iniciar el renderizado de los objetos y mantener el renderizado en cada frame mediante un loop hasta que se le d la orden de finalizar, esto es terminando la aplicacin. Un frame puede considerarse como una imagen independiente, una sucesin de frames dan la sensacin de movimiento o animacin, la fluidez del movimiento o la animacin depender de los frames que se alcancen a desarrollar en un segundo. El cine tradicional genera 24 frames por segundo para dar la sensacin al ojo humano de movimiento fluido. Los frames por segundo que desarrolle una aplicacin por computadora dependern de los procesos y/o clculos que se tengan que realizar en cada frame (en cada iteracin dentro del loop) adems de las capacidades de hardware (procesador, aceleradora de video).
La clase RenderSystem es la que define las interfaces entre Ogre y las API 3D

subyacentes (OpenGL, Direct3D). Una ves inicializado el sistema por el objeto Root, este selecciona el API 3D y le indica a RenderSystem cual es la API seleccionada para realizar el renderizado.

49

SceneManager es considerada la segunda clase ms importante despus de la clase Root.

Es la clase encargada de organizar todos los elementos que estn en una escena para ser renderizados. Una escena puede ser definida como la suma de todos los objetos que sern desplegados por pantalla. El objeto SceneManager crea las cmaras, luces, objetos (entidades) de una escena y mantiene la pista de todos estos para poder acceder a ellos cuando se requiera para dar la posibilidad de manipularos segn convenga. Cuando llega el momento de renderizar una escena SceneManager enva a RenderSystem todos los objetos que se deben mostrar. Existen diferentes tipos de secene manager, algunos manejan mejor escenas en espacios cerrados, dentro de habitaciones o pasillos como por ejemplo juegos de primera persona tipo Doom. Otros estn optimizados para escenas al aire libre. Pueden haber activos ms de un scene manager al mismo tiempo para una misma aplicacin. La clase
SceneManagerEnumerator es la que tiene conocimiento de todos los escene manager

disponibles y activos. La clase Mesh representa un modelo discreto, un set de geometras autnomo que generalmente es ms pequeo que el mundo que integra [Ref06]. Un Objeto Mesh se utiliza para representar objetos mviles dentro de la escena, generalmente son creados en herramientas de modelado 3d y luego son exportados a un archivo .mesh que utiliza Ogre para recrear el objeto y desplegarlo por pantalla. Tambin se pueden crear directamente en Ogre de forma manual realizando llamadas a mtodos. Los objetos de la clase Entity son instancias de un objeto mvil en la escena, estos pueden ser por ejemplo una persona, un perro o ms puntualmente para nuestras necesidades un vehculo. Una entidad puede ser cualquier cosa y se basa en un set de geometras, es decir, en los objetos Mesh. Una entidad entonces puede ser un vehculo modelado en una herramienta 3d, que es exportada a un archivo .mesh que es a su vez 50

considerado por Ogre como un objeto Mesh. Una entidad puede poseer sub-entidades, como en el caso del proyecto en donde una entidad vehculo posee cuatro sub-entidades rueda y cada rueda a su vez corresponde a un objeto Mesh separado. La clase SceneNode. Todos las entidades y opcionalmente cmaras y luces, son enlazadas o adjuntadas a un nodo, la forma de trabajar con una entidad u objeto de la escena es a travs del nodo al que el objeto esta enlazado. Las trasformaciones tales como rotacin, traslacin, orientacin, movimiento, no se aplican directamente a la entidad sino que al nodo que posee, es el nodo el que se rota o mueve a una determinada posicin dentro del espacio tridimensional. Los nodos poseen una estructura jerarquizada que es manejada por la clase SceneManager, quien los crea y los destruye, en donde un nodo puede tener un nodo padre (solo uno) y muchos nodos hijos. Al inicializar el sistema a travs de Root y crear un objeto SceneManager se crea automticamente con este ltimo un nodo llamado nodo Root que es el nodo principal del cual se crean (ramifican) el resto de los nodos a los cuales sern enlazados los diferentes objetos que tenga una escena. La siguiente grfica permite aclarar esta jerarqua.

Figura N 4.2 Ejemplo jerarqua de nodos

51

Una entidad solo puede ser enlazada a un solo nodo pero un nodo puede tener enlazada a l ms de una entidad. El contenido de la escena que se renderizar en definitiva es el contenido de los nodos (o escenenodes) que en su conjunto conforma la estructura de la escena grfica o grficas de escena que es enviada a la clase SceneManager para que esta a su vez la enve a RenderSystem para ser finalmente desplegado por pantalla. As como un objeto puede enlazarse a un nodo tambin puede desligarse de l, si as fuera este objeto no ser renderizado. La clase Camera es la que, como su nombre lo describe, define los atributos y propiedades de las cmaras que sern las encargadas de entregar el punto de vista desde el cual se observar la escena renderizada. Las cmaras pueden ser rotadas, movidas directamente o a travs de un nodo al que se puede enlazar. Una de las caractersticas ms significativas de las cmaras es que definen una vista llama frustum que contiene todas las cosas que el ojo podr ver.

Figura N 4.3 Frustum

El espacio contenido dentro de los seis planos que muestra la figura 4.3 es lo que se ver cuando la escena sea renderizada y es lo que se conoce como frustum, todo lo que quede fuera de este espacio no se mostrara por pantalla. Los Planos XY e X 'Y ' limitan la visin cercana y lejana de la cmara respectivamente. Es decir, si un objeto se encuentra a cualquier distancia entre el ojo y el plano XY (en la figura) ste no ser mostrado por la 52

cmara, as tambin si un objeto se encuentra a una distancia mayor que la contenida entre el ojo y el plano X 'Y ' tampoco ser renderizado. Z representa la profundidad, donde el plano X 'Y ' se interna hacia dentro de la pantalla con Z . Una cmara es creada por un objeto SceneManager que mantiene la pista de esta durante la ejecucin de la aplicacin, a una cmara se le debe entregar informacin tal como posicin, direccin, distancia al plano cercano ( XY ) y distancia al plano lejano ( X 'Y ' ) entre los ms importante. La clase Material controla todo lo relacionado con el aspecto de los objetos, sin considerar su forma. Un objeto de la clase Material controla como los objetos en la escena son renderizados desde el punto de vista de la apariencia, especifica las propiedades bsicas de la superficie de los objetos como la reflexin de los colores, el brillo, las capas de texturas, los efectos que son aplicados. Los materiales pueden ser aplicados programaticamente llamando al mtodo createMaterial de la clase SceneManager o pueden ser cargados por la aplicacin en tiempo de ejecucin a travs de un script que contiene toda la informacin necesaria del material, este script es un archivo en lenguaje intuitivo con extensin .material. Generalmente cuando se modela un objeto 3d en una herramienta modeladora se le definen tambin los materiales (color, texturas), al momento de exportar el modelo 3d a un formato que Ogre puede interpretar se crean dos archivos uno con extensin .mesh que contiene la geometra del objeto 3d y otro con extensin .material que contiene la informacin de los materiales del objeto y las caractersticas de cmo sern aplicados. De esta manera cuando en Ogre se crea una entidad basado en una mesh se cargan automticamente junto con ella los materiales, que son ledos desde el archivo .material. Ogre provee un SDK, kit de desarrollo de software, para desarrollar aplicaciones basadas en su motor grfico que se puede descargar libremente desde su pagina web www.ogre3d.org.

53

4.2 Motor Fsico


Con el objetivo de dar mayor realismo al movimiento de los objetos, ms puntualmente a los vehculos del simulador, se descubre la necesidad de integrar al proyecto un motor fsico que permita simular el comportamiento de los vehculos a nivel de la fsica newtoniana. Se puede definir a un motor fsico como Un programa por computadora que simula modelos fsicos newtonianos, usando variables como masa, velocidad, friccin, peso y resistencia. Este puede simular y predecir efectos bajo diferentes condiciones que se aproximan a lo que ocurre en la realidad [Ref07]. Al igual que con los motores grficos existen motores fsicos gratuitos y pagados. Los criterios de seleccin a la hora de determinar que motor fsico integrar al proyecto son los mismos utilizados en la seleccin de Ogre3d ms la restriccin que se aplica por la eleccin de este ltimo, es decir, que sea compatible con Ogre. De los motores fsicos que comnmente se integran a aplicaciones desarrolladas con Ogre destaca por su rapidez y robustez, segn la opinin de los propios usuarios recogida en los foros de Ogre [Ref08], PhysX.

4.2.1 PhysX
Se le da el nombre de PhysX a un chip y a un SDK desarrollado por AGEIA [Ref09] para realizar clculos fsicos complejos. El chip es un PPU, unidad de procesamiento fsico, que entrega mayor rapidez al procesamiento de clculos fsicos ya que releva al procesador de esta tarea hacindola l directamente. El SDK puede trabajar independientemente con la existencia o ausencia del chip ya que en caso de esto ltimo los clculos son realizados por el procesador. PhysX es un producto comercial pero de uso libre en proyectos no comerciales como es nuestro caso, est escrito en C++ soportado inicialmente en Windows pero recientemente se ha expandido su portabilidad a Linux.

54

PhysX es utilizado comercialmente por SONY en su consola de juegos PlayStation3. A diferencia de Ogre no fue posible encontrar un esquema o diagrama que represente las clases definidas para la implementacin de PhysX, y la relacin que existe entre estas clases. Para dar un poco de claridad sobre los elementos (clases) ms significativos del motor y su funcionamiento se realiz un diagrama de clases muy resumido y simplificado, rescatando la clases ms significativas, basado en la experiencia adquirida que no pretende ser una formalizacin de un diagrama de clases para PhysX.

Figura N 4.4 Diagrama de clases PhysX

El prefijo Nx que se utiliza en todos los nombres de las clases se debe a que anteriormente el SDK era conocido con el nombre de Novodex, de donde hered el prefijo. Al igual que Ogre PhysX tiene un punto de entrada para inicializar su motor, este 55

punto de entrada es la clase NxPhysxSDK. Lo primero entonces antes de realizar un simulacin es crear una instancia de la clase NxPhysxSDK para inicializar el sistema, a travs de este objeto se pueden ajustar parmetros que por ejemplo puedan dar la opcin de visualizar los ejes de un actor (XYZ) para saber como esta orientado o hacia donde se est aplicado una fuerza, tambin permite ajustar un parmetro llamado skin width que puede ser traducido como ancho de piel que indica al sistema cuanto penetrar un objeto dentro de otro cuando ocurra una colisin entre estos. Una vez que el sistema se ha inicializado y ajustado segn convenga a la simulacin el objeto (instancia) NxPhysxSDK est encargado de crear una instancia de la clase NxScene. La clase NxScene en forma similar a Ogre define una escena en donde se encuentran objetos, en este caso Actores, en un ambiente de tres dimensiones que permite observar el comportamiento de estos objetos segn las condiciones fsicas a las que se sometan. Al momento de crear una escena, por parte de NxPhysxSDK, es necesario especificar la gravedad que afectar a los objetos en la escena adems de si los clculos fsicos se realizan por hardware (PPU) o software, esto se hace a travs de un descriptor de escena que es una instancia de la clase NxSceneDesc. Los descriptores son muy usados por PhysX y son estructuras que contienen toda la informacin sobre las caractersticas que se desea dar a los objetos al momento de crearlos. La clase NxActor comprende los elementos bsicos de una escena, es decir, las instancias de la clase NxActor, mejor dicho los actores, son los objetos que interactan unos con otros dentro de la escena. Los actores dentro de una escena son creados por esta misma, es decir, la instancia de la clase NxScene que define la escena. PhysX emplea tres tipos de actores: los estticos, dinmicos y cinemticos. Un actor esttico como su nombre lo indica no se mover nunca, puede ser utilizado para representar suelos, montaas, una interseccin etc; se considera que estos actores poseen una masa infinita y no son afectados por fuerzas. Un actor dinmico se mover y actuar bajo la influencia de las distintas situaciones a las que se someta, fuerzas o velocidades, poseen una masa finita. Los actores

56

cinemticos son objetos estticos movibles, no se movern por la aplicacin de una fuerza o impacto pero pueden ser posicionados dentro de la escena segn convenga. Los objetos dinmicos pueden ser convertidos en cinemticos y viceversa, no as los estticos que no pueden ser modificados en tipo. Al igual que con una escena al momento de crear un actor hay que especificar todas las caractersticas que se desea tenga este actor (entre ellas su tipo, cuerpo, forma, densidad) esto se hace a travs de un descriptor de actor, instancia de la clase NxActorDesc. Un actor esta conformado por un cuerpo rgido, lo que PhysX denomina Body, una forma de colisin, Shape, que como su nombre lo indica es la forma que tomar un actor y se comportar en consecuencia. Es decir, si se crea un actor con forma de esfera este actor se ver y comportar como lo hace una esfera, as tambin si se crea otro actor con forma de cubo (caja) este se ver y comportar como tal. Como se mencion anteriormente toda esta informacin est contenida dentro del descriptor de actor, si a un actor no se le asigna un cuerpo rgido (body) se considera como de tipo esttico. La manera de asignar un cuerpo rgido a un actor es a travs de la creacin de un descriptor de cuerpo, esto es, la creacin de una instancia de la clase NxBodyDesc. La clase NxShape define las formas con las que trabaja PhysX, estas pueden ser: planos, cajas, esferas, capsulas, ruedas, triangulo mesh. Para crear cualquiera de las formas anteriores se deben especificar caractersticas como dimensiones y materiales entre otras, esto se hace, al igual como en los casos anteriores, a travs de descriptores y en este caso descriptores de forma que son instancias de la clase NxShapeDesc. Un actor puede tener varias formas asociadas como es el caso de un vehculo que en s corresponde a un actor pero con una forma asociada para representar el chasis y otras cuatro formas para representar cada una, una rueda. La forma triangulo mesh da la posibilidad de crear formas ms complejas, especialmente en herramientas modeladoras desde donde posteriormente se pueden exportar a un formato que puede ser ledo por PhysX. La clase NxMaterial. A diferencia de Ogre en donde los materiales estn ms 57

relacionados con la apariencia, en PhysX son considerados desde el punto de vista fsico. Los materiales por lo tanto son la sustancia fsica de la que estn hechos los objetos (actores o ms directamente las formas), definen propiedades internas como restitucin y propiedades de la superficie del objeto como fricciones. Los materiales son creados por el objeto escena y es necesario ajustar sus propiedades dando valores a su restitucin, friccin esttica y friccin dinmica. Dar un valor alto de restitucin, por ejemplo el mximo que es 1, significa que en un impacto el objeto perder poca energa lo que llevar a que este tenga un rebote amplio, en el caso contrario si se le asigna un coeficiente de restitucin bajo, por ejemplo de 0,15 el objeto perder mucha energa en el impacto y rebotar poco. Si un material se ajusta con un coeficiente de friccin esttica elevado provocar que el objeto tenga dificultades en desplazarse al intentar salir del reposo, esta dificultad disminuir si disminuye el coeficiente de friccin. Un coeficiente de friccin dinmica pequeo permitir a un objeto en movimiento deslizarse suavemente mientras que uno elevado tender a detenerlo de manera ms rpida o ms brusca. Una forma puede usar un material creado por la escena as como tambin puede dejar de usarlo y cambiarlo por otro en cualquier momento. La versin del SDK PhysX utilizada para el desarrollo del proyecto es la 2.6.2, la ltima versin lanzada para el sdk corresponde a la 2.7. Se utiliza la versin 2.6.2 por que cuando se comenz el entrenamiento con la herramienta esta corresponda a la ultima versin lanzada por Ageia. Como se mocion anteriormente PhysX se encarga de generar una escena en tres dimensiones que permite observar el comportamiento de los objetos dentro de la simulacin, esto lo hace a travs de OpenGL usando directamente sus primitivas. Es bueno recordar que PhysX es un motor fsico y no grfico, por lo tanto sus funcionalidades grficas son mucho ms limitadas que Ogre o cualquier otro motor grfico, por lo que en general en el desarrollo de aplicaciones grficas (juegos, simuladores) en donde se necesite simulacin a nivel de fsica, son integrados ambos motores el fsico y el grfico cada uno

58

en lo que sabe hacer mejor. La estructura general, y a grandes rasgos, de una simulacin fsica usando PhysX es la siguiente.
int main(int argc, char** argv){

InitGlut(argc, argv); InitNx(); glutMainLoop(); ReleaseNx(); return 0; }

La funcin principal comienza inicializando Glut, que es una caja de herramientas basada en OpenGl utilizada para administar de mejor manera el sistema de ventanas ya que es independiente de ste. Luego de inicializar Glut se inicializa el motor mediante la funcin InitNx(), sta funcin inicializa el SDK, ajustas los parmetros que se necesiten ajustar, crea la escena, los materiales, los objetos dentro de la escena e inicia la simulacin. Desde ah la simulacin entra en un loop hasta que se le ordene detener, el loop se obtiene a traves de la llamada a funcin glutMainLoop() que realiza una y otra vez llamadas a funciones tipo CallBack como por ejemplo a la funcin RenderCallback().
void RenderCallback() { GetPhysicsResults(); ProcessInputs(); StartPhysics(); }

Dentro de las acciones ms importantes que realiza esta funcin, desde el punto de vista de la simulacin fsica, est obtener los resultados de la simulacin en la iteracin anterior llamando a la funcin GetPhysicsResults(), procesar las diferentes entradas (teclado por ejemplo) llamando a ProcessInputs() e iniciar nuevamente la simulacin para la actual iteracin (frame) en curso, mediante la llamada a StartPhysics(). Esto se repite hasta que se 59

deseea concluir la aplicacin, generalmente procesando algn tipo de entrada. La siguiente imagen muestra el entorno de trabajo utilizado por PhysX en los turoriales que tiene disponibles para el aprendizaje del motor.

Figura N 4.5 Entorno trabajo PhysX

En la imagen se puede apreciar una escena donde un actor con forma de esfera cae por accin de la fuerza de gravedad, golpeando una pila de actores con forma de cajas.

4.2.2 El Envoltorio NxOgre


NxOgre en un envoltorio creado por Robin Southern [Ref10] que integra a Ogre con PhysX. De sta manera al trabajar con NxOgre es posible acceder, a travs de l, a ambos motores, grfico y fsico, dando la posibilidad de desarrollar aplicaciones con todo el potencial que posee cada uno. Al igual que con Ogre y PhysX, NxOgre esta escrito en lenguaje de programacin C++, es orientado a objetos y tiene licencia open source pero est limitada por el uso de PhysX que como se mencion anteriormente es pagada pero de libre uso en proyectos no comerciales.

60

El hecho de seleccionar PhysX como motor fsico para el desarrollo del simulador de trfico se bas fundamentalmente en la posibilidad de trabajar con NxOgre, ya que con ste se logr el primer acercamiento a la simulacin de la fsica por recomendacin de usuarios expertos de Ogre y disponibilidad de soporte en el aprendizaje, a travs de tutoriales y un foro muy activo y cooperativo. NxOgre posee muchas clases que envuelven a las clases definidas para Ogre y PhysX. Con el objetivo dar una visin ms clara de como trabaja NxOgre se desarroll un pseudo diagrama de clases con las caractersticas ms relevantes y significativas que permitan entender al envoltorio, ya que no fue posible encontrar en su documentacin un diagrama con estas caractersticas.

Figura N 4.6 Pseudo diagrama de clases NxOgre

Como se mencion con anterioridad Ogre y PhysX necesitan partir inicializando sus sistemas, esto lo consiguen mediante la clase Root y NxPhysxSDK respectivamente. NxOgre realiza este trabajo a travs de la clase NxOgre_World, el objeto NxOgre_World 61

toma como parmetro el objeto Root de Ogre ya inicializado y se encarga de inicializar el SDK PhysX mediante la creacin de un objeto NxPhysxSDK. A travs del objeto NxOgre_World se puede acceder a todos los mtodos disponibles para los objetos de las clases inicializadoras de ambos motores, adems el objeto NxOgre_World es el responsable de crear la escena de NxOgre. La creacin de una instancia de la clase NxOgre_Scene lleva implcita la creacin de una escena tanto para Ogre, mediante un objeto de la clase SceneManager, como para PhysX, con la creacin de un objeto de la clase NxScene. Al igual que ocurre con el objeto NxOgre_World, la escena de NxOgre otorga acceso a todos los mtodos disponibles para las instancias de SceneManager y NxScene, permitiendo obtener toda la funcionalidad de las escenas de Ogre y PhysX. Como se puede apreciar hasta aqu el trabajo de los motores se realiza en paralelo, siendo NxOgre el nexo entre los dos. Ogre define los objetos dentro de su escena como Entidades, PhysX por su lado los llama Actores. NxOgre a travs de la clase NxOgre_Body integra los dos conceptos de objetos dentro de una escena, tanto el de Ogre como el de PhysX, y les da el nombre de Bodies o Body. Cuando NxOgre crea un Body mediante y dentro de su escena est creando al mismo tiempo un actor para PhysX y una entidad para Ogre, as logra realizar las simulaciones fsicas con el actor y representar esto grficamente a travs de la entidad creada para Ogre. A los que se puede llamar tambin Modelo de colisin y Modelo Grfico respectivamente. En donde el modelo de colisin corresponde a la forma (shape) sobre la cual se realizan los caculos fsicos y el modelo grfico corresponde a la entidad o mesh sobre la cual se basa la representacin grfica del objeto. Mediante un objeto NxOgre_Body se puede tener acceso a todos los mtodos de la clase Entity y todos los mtodos de la clase NxActor. Tambin al crear un objeto NxOgre_Body se enlaza la entidad creada para Ogre a un nodo de la clase SceneNode que permite tener control sobre la entidad. NxOgre utiliza, a travs del uso de su escena (clase NxOgre_Scene), la escena de la 62

clase SceneManager para trabajar con las entidades y la escena de la clase NxScene para trabajar con los actores. Cada movimiento realizado por un actor (modelo de colisin) es replicado por la entidad (mesh) de esta manera se puede observar grficamente a travs de Ogre 3d el comportamiento de los objetos dentro de una simulacin fsica realizada por PhysX. Por ltimo, si se crea un Body con forma de esfera (shape) y una apariencia grfica (entity o mesh) de una jirafa, ste Body no se comportar como jirafa sino que como esfera y lo ms probable que la jirafa ruede antes que caminar. El desarrollo del simulador se realizar sobre la base de las clases definidas por NxOgre, de sta manera se logra integrar al proyecto el motor grfico Ogre3d y el motor fsico PhysX. Cualquier funcionalidad no cubierta por NxOgre tiene la facilidad de ser salvada interactuando directamente con cualquiera de los dos motores, sta es una ventaja que posee NxOgre.

4.3 Modelador 3D
Los modeladores 3d son herramientas, software, dedicadas al modelado y creacin de grficos tridimensionales. Permiten modelar objetos 3d individuales, que son bsicamente una representacin de coordenadas, vrtices y caras, para posteriormente integrarlos en alguna escena. La representacin del objeto modelado tambin se conoce con el nombre de malla o en ingles mesh. Un proceso bsico en la creacin de grficos 3d por computadora comprende 3 pasos: El Modelado, La Composicin de la Escena y El Rnder. Estas etapas son cubiertas en su totalidad por las herramientas de modelado. La composicin de la escena o la creacin de la escena involucra la distribucin de todos los objetos, luces, cmaras y otras entidades que sern utilizadas para producir una imagen esttica o dinmica. El Rnder por su parte es el proceso final encargado de generar la imagen en 2d o animacin a partir de la escena creada. Para poder obtener los objetos que formarn parte de las simulaciones de trfico, es 63

decir, los vehculos, las ruedas de estos, los semforos y hasta la misma interseccin es necesario modelar dichos objetos, complejos, en una herramienta modeladora 3d que permita posteriormente integrarlos al simulador. Los criterios de seleccin utilizados para determinar que modelador utilizar fueron los de gratuidad y libertad de uso, disponibilidad de recursos en el aprendizaje de la herramienta, compatibilidad con el motor grfico (que los objetos modelados puedan ser posteriormente trabajados con Ogre) y que siga manteniendo la portabilidad entregada por las herramientas ya seleccionadas. El modelador que cumpli con estos criterios es Blender.

4.3.1 Blender
Blender es un software libre multiplataforma con licencia GPL, creado para modelar y crear grficos tridimensionales. En la actualidad la ltima versin disponible de este modelador es la 2.44 que se puede obtener gratuitamente desde su sitio en Internet www.blender.org. La versin de blender utilizada para la creacin de los vehculos, ruedas, semforos e interseccin utilizados en el simulador, es la 2.42a. Blender tiene el mismo potencial para desarrollar productos de nivel profesional que otras herramientas modeladoras pagadas, incluso ya ha sido utilizado en el desarrollo de pelculas animadas como Elephants Dream.

4.4 Manipulador De Imgenes


Como su nombre lo indica, las herramientas de este tipo permiten manipular imgenes digitales (grficos, fotografas). Los usos ms comunes que se le dan ha este tipo de aplicaciones son entre otros la creacin de logos, cambio o recorte de fotografas, cambio de colores y brillo de fotografas, combinacin de imgenes a travs de uso de capas, eliminacin de elementos no deseados en una imagen, conversin entre los distintos formatos de imgenes existentes etc. Otro uso comn dentro de los desarrolladores de aplicaciones grficas (juegos, simuladores) tridimensionales es la creacin de texturas para cambiar o mejorar la apariencia de los objetos modelados. Este es el motivo por el cual se 64

integra un manipulador de imgenes al proyecto, la necesidad de crear texturas para los diferentes objetos 3d utilizados en el simulador. Los criterios utilizados a la hora de seleccionar un programa manipulador de imgenes son bsicamente los mismos utilizados en la seleccin de las otras herramientas, es decir, que sea un software open source, exista disponibilidad de recursos en el aprendizaje de la herramienta y sea multiplataforma.

4.4.1 Gimp
Gimp es un software para la manipulacin de imgenes digitales y es integrado al proyecto principalmente por la necesidad de crear texturas para los objetos tridimensionales creados para usar en las simulaciones de trfico. Gimp es la sigla de Programa de
Manipulacin de Imagen GNU, es gratuito posee licencia GNU (GNU No es Unix) GPL

(Licencia Pblica General). Inicialmente fue desarrollado para sistemas Unix pero en la actualidad soporta mltiples plataformas lo que le permite ser portado a Windows, Linux, Mac OS. La versin utilizada de Gimp en el proyecto corresponde a la 2.2, siendo la actual versin lanzada a la fecha de presentacin de este informe la 2.3.

4.5 Lenguaje de Programacin y Compilador


Como ambos motores estn escritos en C++, la codificacin, es decir, la implementacin de los modelos de simulacin y las distintas funcionalidades del software tambin sern realizadas en este lenguaje de programacin siguiendo el enfoque orientado a objetos. Para generar y compilar el cdigo se utilizar el compilador Microsoft Visual C++ 2005, en su edicin Express que es de uso gratuito. Esta versin de Visual C++ es limitada en cuanto a su potencial de desarrollo pero las funcionalidades provistas por la edicin Express son ms que suficientes para desarrollar el proyecto en lo que a codificacin

respecta ya que las restricciones son referentes al uso las libreras de clases de Microsoft o

65

clases Microsoft Fundacin (MFC) que no son utilizadas. La razn de por que utilizar Visual C++ obedece simplemente a que NxOgre utiliza este compilador en sus tutoriales, en los cdigos fuentes y ejecutables (archivos con formato de proyectos Visual C++), y provee de una serie de pasos para conseguir ajustar NxOgre con Visual C++. Aunque si se desea, claro est, se puede utiliza cualquier otro compilador de C++.

66

PARTE II. Desarrollo De La Aplicacin

67

CAPITULO 5. Integracin de las Herramientas en el Desarrollo de la Aplicacin

Las herramientas descritas en el capitulo anterior se van integrado al proyecto a medida que van siendo necesarias. En nuestro caso en particular se sigui el siguiente flujo de trabajo agrupando las herramientas en dos grupos como se grafica en la siguiente figura.

Figura N 4.7 Flujo integracin herramientas

Es bueno destacar que este proceso de integracin se enmarca dentro de la fase de construccin o codificacin del simulador y no engloba a todo el proceso de desarrollo del SW. A continuacin se detalla paso a paso como es abordado el proceso de construccin.

68

5.1 Modelado 3D
La decisin es primero modelar los objetos tridimensionales ocupados en el simulador. Estos son, como se mocion anteriormente, los vehculos, los semforos y la interseccin. Para crear los objetos tenemos a blender, expondremos aqu como modelar un vehculo liviano tipo sedn.

5.1.1 Modelado del Vehculo


Lo primero es disponer de un plano del vehculo que sirva como gua en el proceso de modelado. A este plano se le conoce como blueprint y generalmente provee de todas las vistas del objeto para facilitar su modelado en un ambiente de tres dimensiones. El vehculo seleccionado como modelo para utilizar en el simulador es el Audi A4 (ao 2004) cuyo blueprint esta disponible en la pagina dedicada al tema www.the-blueprints.com.

Figura N 4.8 Blueprints vehculo

69

La imagen anterior corresponde al blueprint de un Audi A4, como se puede apreciar provee las cuatro vistas fundamentales para modelar el vehculo. Lo siguiente a realizar una vez conseguido el blueprint es separar las cuatro vistas en un archivo diferente cada una, de tal manera de poder disponer de estas vistas por separado, esto se realiza con Gimp y como es de suponer no es un trabajo complicado realizar. Ahora con las vistas separas cada una en un archivo hay que utilizarlas como gua para comenzar a realizar el modelado. Esto se consigue separando la ventana de trabajo de Blender en 4 partes y asignando a cada parte de ventana (o subventana) una vista del blueprint. La imagen siguiente muestra el resultado de este proceso.

Figura N 4.9 Entorno de trabajo Blender

70

En la imagen se puede apreciar el entorno de trabajo de Blender, adems de las cuatro divisiones realizadas para albergar en cada una las distintas vistas del blueprint. Cada subventana posee un plano de trabajo distinto, no se puede apreciar muy claramente en la imagen pero la subventana superior izquierda visualiza el plano ZX (Z en color azul, X en color rojo), la ventana contigua y a la derecha visualiza el plano ZY (Y en verde) en su vista opuesta con la gua de la parte frontal del vehculo, por ltimo la ventana inferior derecha visualiza tambin el plano ZY desde su vista normal con la imagen del blueprint de la parte posterior del vehculo. Los planos de trabajo se asocian a una imagen de tal manera de tener correspondencia en cada uno de los otros planos, ms claramente, por ejemplo si en la vista superior izquierda se realiza un desplazamiento en X positivo (hacia la cola del vehculo), en la vista del plano YX (vista inferior izquierda) el desplazamiento tambin ser hacia la cola del vehculo. As tambin en la vista del plano ZY opuesto, el movimiento ser hacia adentro de la pantalla del monitor (cola del vehculo), y en la vista normal del plano ZY, el desplazamiento ser hacia fuera de la pantalla del monitor. O sea la disposicin de las vistas de trabajo y las imgenes debe ser coherente. Es importante mencionar tambin que la disposicin de las diferentes vistas depende de las caractersticas personales de cada modelador y puede variar entre uno y otro. Ahora con las vistas ubicadas de manera correcta solo queda seguir las imgenes guas para dar forma al vehculo. Esto se consigue de muchas maneras distintas, por nombrar algunas, se puede crear un gran cubo que cubra todo el vehculo, es decir, el blueprint y despus ir ajustando este cubo hasta dar la forma del vehculo. Tambin se pueden ir creando puntos separados que posteriormente se van uniendo y van dando forma a la malla del Audi. Tambin se utilizada la creacin de planos que se van ajustando a las distintas vistas del vehculo y conformando la maya de ste. Para el caso particular del proyecto se aplica una mezcla de estas dos ltimas tcnicas de modelado mencionadas, o sea a travs de la creacin de planos y puntos separados. Como el objetivo no es desarrollar

71

un tutorial para el modelado de un vehculo no se entrar en los detalles que esto llevara. A modo de ejemplo la imagen siguiente muestra un plano (figura geomtrica) creado en la visualizacin ZX que cubre las puertas del lado derecho del vehculo. El plano creado se visualiza por completo en la vista ZX, mientras que en el resto de las vistas solo se ven sus puntos, como es lgico de pensar.

Figura N 4.10 Modelamiento vehculo

Se ajustan los vrtices del plano creado para seguir la geometra del vehculo y se realizan todas las subdivisiones del plano (creacin de ms vrtices) que sean necesarias para conseguir este ajuste. Cada vrtice debe ser ajustado en las cuatro vistas para que el modelo tome la forma correcta en las tres dimensiones. Este proceso se repite hasta obtener 72

la malla completa del vehculo. La gran mayora de los blueprints vienen diseados de tal manera que todas las vistas sean equivalentes, es decir, por ejemplo que los espejos retrovisores estn a la misma altura en todas las vistas, de esta manera se pueden ajustar los vrtices para que en cada plano de trabajo tengan la misma posicin sobre el blueprint, independiente de la vista. Sin embargo en muchas ocasiones los blueprint no vienen tan exactos y es muy difcil hacer concordar un vrtice sobre el mismo lugar de la imagen gua en las diferentes vistas. A pesar de que cada ventana esta determinada para visualizar un plano de trabajo en particular, se tiene la libertar de rotar esta vista como se desee. Como un vehculo es un objeto simtrico, es suficiente con modelar una mitad de ste ya que la otra mitad se consigue duplicando lo ya modelado. La imagen siguiente muestra la malla completa

73
Figura N 4.11 Malla terminada

Las dos vistas superiores muestran el vehculo en modo alambre, mientras que las inferiores lo hacen en modo slido. El modelo construido es muy bsico con solo 332 vrtices, tiene la forma general del Audi y no consideran detalles como la separacin entre puertas, capo, relieves entre los vidrios y los marcos, focos, mascarilla delantera etc. El objetivo fue tratar de construir un modelo econmico en cuanto a nmero de polgonos utilizados, lo que se conoce en el mundo del modelado 3d como un modelo low poly, es por que mientras mayor sea el nmero de polgonos utilizados en el modelo mayor ser el costo en tiempo de procesamiento del objeto. Como se estima que el simulador tendr muchos vehculos interactuando en el sistema en un mismo instante la sobrecarga de procesamiento con objetos que contengan un elevado numero de polgonos (un modelo detallado puede tener sobre 20.000 vrtices), modelo high poly, sera contraproducente con los objetivos del proyecto ya que se perdera la fluidez y entorpecera la visualizacin de la interaccin de los autos dentro de la simulacin. Para tratar de mejorar el aspecto del modelo creado, se utilizan texturas que puedan ayudar en parte a dar un poco ms de similitud con un vehculo del mundo real. La gran parte del peso en cuanto a la apariencia del modelo recae entonces sobre las texturas que se le aplicarn. Para crear las texturas se utiliza el programa de manipulacin de imgenes Gimp. Como la idea de aplicar texturas es dar un poco ms de realismo al modelo, la mejor manera de lograrlo es a travs de la utilizacin de imgenes de vehculos reales. La pagina Web de Audi www.audi.com, provee imgenes de cada uno de sus modelos comercializados en vistas de 360, es decir, imgenes de todos los posibles ngulos de vista. Para crear las texturas se capturaron imgenes de 3 vistas (Audi A4), a saber, la vista lateral, frontal y posterior. Las imgenes capturadas se procesan en Gimp, eliminado lo que no es necesario, oscureciendo los vidrios para eliminar los reflejos y el interior del vehculo, juntando las 74

tres vistas en un solo archivo de formato jpg y retocando las imgenes en donde sea necesario. Con Gimp tambin se cambia el color de las texturas para poder crear vehculos de distintos colores. De esta manera se obtienen las texturas y se regresa a Blender para aplicarlas sobre la malla, lo que se conoce como mapeado UV. El mapeado UV es una manera de mapear texturas de tipo imagen, 2D, sobre modelos tridimensionales siguiendo las coordenadas de la superficie (coordenadas UV) [Ref11]. La siguiente imagen muestra el modelo finalizado con la textura aplicada.

Se puede apreciar claramente que la aplicacin de la textura cambia y favorece mucho el aspecto del vehculo. Mientras mejor elaboradas sean las texturas mejores resultados se obtendrn. Las ruedas se crean como objetos separados al vehculo ya que su comportamiento es diferente, las ruedas deben girar (rotacin) mientras que el vehculo debe desplazarse (traslacin), pero la manera de modelar una rueda es la misma expuesta para crear la malla del vehculo. Ocurre lo mismo con los semforos que no son objetos difciles modelar.

Figura N 1.12 modelo con textura aplicada

Por ltimo una vez que se tiene el modelo finalizado este se escala segn la 75

informacin entregada por las tablas expuestas en la primera parte del informe. Escalando el modelo a la longitud, altura y ancho de un vehculo de tipo liviano. En donde una unidad de blender se considera como un metro de longitud al igual que en Ogre (NxOgre), por lo tanto se mantiene la equivalencia de unidades entre la herramienta modeladora y el motor grfico. Para que el modelo creado pueda ser utilizado con Ogre es necesario exportarlo desde Blender a un archivo de formato .xml.mesh. El plugin que realiza este trabajo de exportacin se llama Ogre Meshes y fue desarrollado por miembros de la comunidad de Ogre. El archivo generado contiene informacin de la malla, puntos tridimensionales, vrtices, caras entre otros, en formato XML. Este archivo en formato XML debe ser convertido a un archivo binario que pueda ser ledo por Ogre, esto se hace a travs de una herramienta llamada OgreXMLConverter que es un ejecutable manejado a travs de lnea de comandos, este programa convertidor viene con el SDK de Ogre y genera como resultado de la conversin un archivo con extensin .mesh. Al momento de exportar el modelo desde Blender a un archivo .xml.mesh, el plugin Ogre Meshes crea otro archivo con extensin .material, que contiene toda informacin sobre los materiales aplicados al vehculo, en este caso la textura que se cre con Gimp. De esta manera es posible que Ogre reproduzca el vehculo con su textura, ya que recupera toda la informacin desde el archivo .material. Es necesario, claro esta, tener disponible la textura para que Ogre pueda acceder a ella y aplicarla al vehculo.

76

5.1.2 Modelado de la Interseccin


Para el modelado de la interseccin se toma como referencia el manual de demarcaciones de Vialidad, en las consideraciones esenciales, expuesto muy

resumidamente en el capitulo 2. Como la interseccin utilizada para prueba de simulador es genrica se utiliza un diseo tpico de una interseccin con dos flujos distintos. Si se deseara disear una interseccin real y particular se puede tomar como referencia una imagen area o satelital y modelarla tal como se describi en la seccin anterior el modelamiento de un vehculo, la diferencia estara en que la interseccin se modela desde una sola vista de la imagen de referencia. La siguiente imagen muestra la interseccin terminada en Blender.

Figura N 4.13 Interseccin Modelada

77

5.2 Programacin
En el grupo de las herramientas de programacin se encuentran el compilador, los motores, grfico y fisco, adems del envoltorio que permite trabajar de forma transparente con ambos. Todas herramientas de programacin se integran al proceso de desarrollo al mismo tiempo cuando se inicia la etapa de codificacin del simulador, al trabajar con el envoltorio NxOgre se trabaja paralelamente con Ogre y PhysX y para trabajar con NxOgre se utiliza el compilador Visual C++: La implementacin del simulador se realiza trabajando directamente con la API de NxOgre, dejando en un segundo plano a Ogre y PhysX (sin olvidar que son ellos los realizan el trabajo) aunque en algunas oportunidades es necesario trabajar directamente con los motores, afortunadamente NxOgre provee estas facilidades. Veamos a manera ejemplo cuales seran las lneas de cdigo (en pseudo cdigo C++) necesarias para crear un cuerpo en NxOgre, que podra ser un vehculo.
Inicio { //Declaracin del mundo, la escena y el cuerpo en este caso un vehculo world *mMundo; scene *mEscena; body *mVehiculo; //creacin del mundo mMundo = new world(mRoot); //creacin de la escena mEscena = mWorld->createScene("myEscena", mSceneMgr); //aplicar gravedad a la escena mScene->hasGravity(); //crear un suelo para la escena mScene->hasFloor(); //crear el cuerpo mVehiculo = mEscena->createBody("mVehiculo","vehiculo.mesh",new cubeShape(Vector3(4.7,1.4,2.0)), 1500.0f, Vector3(0,0.7,0)); }Fin

Lo primero es crear el mundo mMundo, en el cual ocurrirn las cosas, el constructor recibe como parmetro un objeto mRoot de la clase Root de Ogre para poder integrar al motor grfico en el programa, en capitulos anterios se explic la funcionalidad 78

de este objeto. Lo segundo es la creacin de la escena mEscena dentro del mundo (en un mundo pueden haber muchas escenas), el constructor recibe como parametro un string con el nombre de la escena que se esta creando y un objeto mSceneMgr de la clase SceneManager de Ogre, esto para crear de forma paralela una escena de Ogre y una de PhysX. Terminado esto se crea o aplica gravedad a la escena junto son un suelo para que los objetos no caigan al vaci. Recien despues de la creacin del mundo y la escena, junto con la gravedad y el suelo, se puede crear un cuerpo dentro de la escena. Para hacerlo es necesario dar un nombre al cuerpo, en este caso un string mVehiculo que corresponde al primer parmetro de la funcin createBody, una malla o mesh del objeto vehiculo.mesh que como se mecion anteriormente es un archivo binario que contiene la informacin de la geometria del vehculo (la mesh) que utiliza Ogre para reproducirlo en pantalla. El tercer parametro que recibe la funcin createBody es la forma (shape) que utiliza PhysX para realizar los calculos fsicos sobre el cuerpo, en este caso a pesar que la malla del objeto es la representacin de un vehculo, la forma fsica (modelo de colisin) que se asocia al cuerpo es un cubo de 4.7 metros de largo, 1.4 de alto y de 2 metros ancho. Por lo tanto, por muy realista que sea la mesh en la respresetancin del vehculo, el cuerpo se comportar como un cubo de las dimensiones antes dichas. El cuarto parmentro que recibe la funcin es la masa del cuerpo, en este caso se le da una masa de 1500 Kg. El timo parametro es la posicn inicial del cuerpo dentro de la escena. La clase NxOgre_Body (o body) posee dentro de sus miembros 2 atributos, el objeto mActor de la clase NxActor en PhysX y el objeto mEntity de la clase Entity en Ogre, a travs de estos dos objetos es posible acceder a las todos los atributos y funcionalidades de los objetos de Ogre (entidades) y PhysX (actores).

79

CAPITULO 6. Definicin De Requerimientos

En la siguiente seccin se realizar la especificacin de los requerimientos del simulador, utilizando como formato el Estndar de Requerimientos de Software ERS.

6.1 Descripcin del Software a Desarrollar


El software a desarrollar es un simulador de trfico bajo un ambiente tridimensional. Ms puntualmente para simular el flujo vehicular urbano en intersecciones sealizadas por semforos. La aplicacin SIMTIS, Simulador Trfico Intersecciones
Sealizadas, permitir observar visualmente en tres dimensiones el comportamiento del

flujo de vehculos al entrar y salir de una interseccin, as como tambin el comportamiento individual de cada vehculo. El simulador dar la posibilidad de ajustar diferentes tipos de parmetros relacionados con el comportamiento del sistema (flujo de trfico) y entregar un reporte al finalizar la simulacin con velocidades promedio, tiempos de demora a que fueron sometidos los vehculos en espera de cruzar la interseccin.

6.1.1 Objetivo
6.1.1.1 Objetivo General

Construir un software que realice una simulacin digital en tres dimensiones del comportamiento del flujo de trfico en intersecciones sealizadas por semforos.
6.1.1.2 Objetivos Especficos

Implementar modelos de micro simulacin de trfico para conseguir un comportamiento del sistema (flujo vehicular) adecuado, cercano a la realidad. Los modelos de micro simulacin a implementar son: Modelo de Gipps de vehculo siguiente y Modelo de aceleracin de influencia seal-interseccin.

80

Integrar a la aplicacin un motor grfico que permita obtener la representacin tridimensional de los objetos dentro de la simulacin.

Integrar a la aplicacin un motor fsico para realizar todos los clculos fsicos necesarios en la simulacin de tal manera de entregar a los vehculos en su dinmica comportamientos cercanos a la realidad.

Recibir como informacin de entrada todos los parmetros necesarios para la realizacin de las simulaciones.

Construir una interfaz grfica de usuario amigable fcil de manejar y entender, para permitir al usuario realizar todos los ajustes necesarios y deseables de los parmetros sobre los cuales se basarn las simulaciones.

Entregar informacin por pantalla sobre resultados de simulaciones y almacenar en formato persistente.

Permitir a la aplicacin trabajar con diferentes intersecciones o variaciones de una misma interseccin.

6.1.1.3 Alcances y Limites

Quizs la caracterstica que diferencia este simulador de otros relacionados con el flujo vehicular es su capacidad de mostrar el comportamiento del sistema, y sus componentes por separado, de una forma amigable en un escenario tridimensional. Ya que la gran mayora de los simuladores en el rea se limitan a entregar resultados finales como nmeros y estadsticas. La posibilidad de observar el flujo de trfico y a los vehculos en forma individual puede entregar informacin de carcter relevante a los usuarios que buscan soluciones a problemas de congestin en intersecciones problemticas y facilitar el anlisis del los resultados obtenidos de cada simulacin mejorando el proceso en la toma de decisiones.

81

El simulador no considera implementar modelos de adelantamiento o cambios de carril, as como tampoco el manejo de colisiones entre vehculos. Tambin realiza las abstracciones necesarias en la dinmica de vehculos como por ejemplo el proceso de aplicacin de torque a las ruedas.
6.1.1.4 Definiciones, Siglas y Abreviaciones

R_SW_99 FUN_99 R_FUN_99 DE_99 IS_99

: Requerimientos de interfaz de usuario, nmero secuencial desde 0 a 99. : Funcin del software, nmero secuencial desde 0 a 99. : Requerimientos funcionales del sistema, nmero secuencial desde 0 a 99. : Datos de entrada, nmero secuencial desde 0 a 99. : Informacin de salida, nmero secuencial desde 0 a 99.

6.2 Descripcin Global del Producto


6.2.1 Interfaz de Software
Nombre
Ogre3D

Tipo
Motor Grfico

Descripcin
Entrega las capacidades para trabajar con la parte grfica 3D. Simulador fsico Envoltorio del motor grfico y fsico APIs, construccin GUIs. para de

Versin
1.2.4

Rol
Crear y controlar los objetos grficos, a nivel grfico. Realizar todos los clculos fsicos de la simulacin. Permitir el uso transparente del motor grfico y fsico al mismo tiempo. Crear y controlar la interfaz de usuario del simulador.

PhysX

Motor Fsico

2.6.2

NxOgre

Envoltorio

0.4RC2

CEGUI

GUI

0.5-0RC2

82

6.2.2 Clasificacin de Usuarios


Usuario Usuario SW Nivel Acceso Sistema Total Nivel Acceso Informacin Total Nivel de Conocimiento Medio

6.2.3 Interfaz de Usuario


Nmero Cdigo R_SW_01 R_SW_02 R_SW_03 Grupo Usuario Usuario SW Usuario SW Usuario SW Descripcin Utilizacin de combo box para seleccin de intersecciones disponibles para simular. Utilizacin de botones para navegar por la GUI. Utilizacin de Scroll bar para controlar el despliegue de informacin de entrada y salida.

6.2.4 Interfaz de Hardware


Tarjeta de video SVGA 128 MB, monitor de 17, o ms. Teclado estndar, o ms. Mouse 2 botones, o ms.

6.3 Requerimientos Especficos


6.3.1 Funciones del Producto
Principales funciones del software. Descomposicin funcional global. FUN_01 : Manejar interfaz de usuario. FUN_02 : Crear la escena (interseccin, vehculos). FUN_03: Iniciar la simulacin. 83

FUN_04 : Calcular la velocidad de los vehculos. FUN_05: Dirigir el vehculo por su ruta de viaje. FUN_06: Controlar los semforos. FUN_07: Detener la simulacin. FUN_08 : Generar informes.

6.3.2 Requerimientos Funcionales del Sistema


Nmero
R_FUN_01

Funcin del SW Nombre o especificacin al que pertenece


FUN_04 Determinar aceleracin Modelo de

Descripcin
Para un vehculo determinar que modelo de aceleracin o micro simulacin aplicar. Determinar si ocurri algn evento dentro de la simulacin al cual un conductor deba reaccionar. Calcular la velocidad que se debe aplicar a un vehculo. Obtener la velocidad actual que lleva un vehculo en un determinado momento. Aplicar la velocidad calculada para un vehculo. Guiar el vehculo por su ruta de viaje predefinida. Cargar un nuevo vehculo para integrarlo a la simulacin. Cargar la interseccin sobre la cual se realizar la simulacin. Cargar los semforos y ubicarlos en cada calle de la interseccin. Dar inicio a la simulacin. Destruir vehculos salen del sistema Controlar y sincronizar los semforos en relacin al tiempo transcurrido y realizar los cambios de luces cuando corresponda.

R_FUN_02

FUN_04

Determinar la existencia de un evento Calcular velocidad Obtener velocidad Aplicar velocidad Conducir vehculo Cargar vehculos Cargar interseccin Cargar semforos Iniciar simulacin Destruir vehculos

R_FUN_03 R_FUN_04 R_FUN_05 R_FUN_06 R_FUN_07 R_FUN_08 R_FUN_09 R_FUN_10 R_FUN_11

FUN_04 FUN_04 FUN_07 FUN_05 FUN_02 FUN_02 FUN_02 FUN_03 FUN_02

R_FUN_12

FUN_06

Controlar semforos

84

Nmero

Funcin del SW Nombre o especificacin al que pertenece

Descripcin
Controlar los tiempos de cada intervalo de simulacin para determinar cuando se debe volver a calcular y aplicar una nueva velocidad. Dar inicio a un nuevo intervalo. Controlar el tiempo transcurrido desde el inicio de la simulacin para determinar la su finalizacin. Obtener los parmetros de entrada ingresados por el usuario, para aplicar en la simulacin. Validar los datos de entrada que ingresa el usuario segn el tipo de dato que se pretenda conseguir. Configurar los parmetros obtenidos del usurario. Asignar tiempos a semforos, asignar tiempos de reaccionar a conductores, asignar grado de aceptacin a las normas. Asignar ruta de viaje. Recuperar informacin desde un archivo de texto sobre las caractersticas de la interseccin a simular. Calles, pistas, rutas de viaje por pistas. Desplegar por pantalla los tiempos de espera promedio de los vehculos resultantes. Desplegar informacin sobre el nmero de vehculos que ingresaron a sistema durante la simulacin. Desplegar informacin sobre las velocidades promedios que registraron los vehculos al transitar por al interseccin Desplegar informacin sobre los flujos de trfico registrados en la interseccin Almacenar en un archivo de texto plano los resultados de la Simulacin.

R_FUN_13

FUN_04

Controlar los tiempos intervalo de simulacin

de

R_FUN_14

FUN_07

Controlar trmino simulacin. Capturar entrada

de

la

R_FUN_15

FUN_01

parmetros

de

R_FUN_16

FUN_01

Validar parmetros de entrada

R_FUN_17

FUN_02

Configurar parmetros

R_FUN_18

FUN_02

Recuperar informacin sobre interseccin

R_FUN_19

FUN_08

Generar informe tiempos de espera Generar informe cantidad de vehculos en el sistema

R_FUN_20

FUN_08

R_FUN_21

FUN_08

Generar informe velocidades promedio Generar vehicular Almacenar simulacin informe flujo

R_FUN_22

FUN_08

R_FUN_23

FUN_08

resultados

85

6.3.3 Interfaces Externas, Requerimientos de Informacin


Datos de entrada.
Detalle datos contenidos en tem Nombre simulacin Tiempo simulacin Interseccin a simular Ciclo semforo Tiempo luz amarilla Calle DE_02 Parmetros Globales Tiempo verde Tiempo roja luz luz Teclado Medio de entrada Teclado Teclado Mouse Teclado Teclado Mouse Teclado Rango valido exactitud y/o tolerancia NO APLICABLE Valor positivo entero Intersecciones disponibles Valor positivo entero Valor positivo No especificado NO APLICABLE Valor positivo No especificado Valor positivo No especificado Valor positivo No especificado Valor positivo No especificado Valor positivo entero [1-99] Lista de valores positivos Valor positivo No especificado 0 <= grado >= 1 Valor positivo No especificado Valor positivo No especificado Unidades de medida NO APLICABLE Minutos NO APLICABLE Segundos Segundos NO APLICABLE Segundos Segundos Formato de datos Texto largo no definido 99 Texto largo no definido 999 99,99 Texto largo no definido 99,99 99,99

Cdigo

Nombre tem

DE_01

Informacin General

DE_03

Parmetros por Pista, Tiempo de entrada al sistema

DE_04

Parmetros Conductor

Velocidad mxima Vehculo Liviano Tiempo de entrada constante Tiempo de entrada aleatorio Tiempo de entrada segn secuencia Tiempo de reaccin Grado acatamiento a normas Distancia entre vehculos Velocidad Deseada

Teclado

Km/h

99,99

Teclado

Segundos

99,99

Teclado

Segundos

99

Teclado Teclado Teclado

Segundos Segundos NO APLICABLE Metros Km/h

99,99 9,99 0,99/1,0

Teclado Teclado

99,9 99,99

86

Cdigo

Nombre tem

Detalle datos contenidos en tem Nmero Calles Nmero de Pistas de

Medio de entrada Archivo

Archivo

Rango valido exactitud y/o tolerancia Valor entero positivo No especificado Valor entero positivo No especificado puntos en el espacio 3d, No especificado puntos en el espacio 3d, No especificado

Unidades de medida NO APLICABLE NO APLICABLE NO APLICABLE

Formato de datos 9

9 Arreglo de puntos, Vector3 (x,y,z) Arreglo de puntos, Vector3 (x,y,z)

DE_05

Caractersticas Interseccin

Ruta de viaje por la pista

Archivo

Lnea detencin

de

Archivo

NO APLICABLE

Datos de Salida.
Cdigo Nombre del tem Detalles de datos contenidos en tem Interseccin, Calle, Pista, tiempo espera promedio, Flujo de vehculos, Velocidades promedio, Ciclo semforo, Tiempo luz verde, Tiempo luz amarilla, Tiempo luz roja. Medio de salida

IS_01

Informe Simulacin

Por pantalla, archivo de texto

6.3.4 Requerimientos de Hardware


Tipo Caractersticas Tcnicas mnimas Procesador: 2.5Ghz MRAM: 512 MB Tarjeta de Video: 128 MB Disco Duro: 10 GB Monitor: 17 Requisitos mnimos de desempeo Entregar una simulacin con movimiento de objetos fluidos. Considerando el procesamiento de la parte grfica y clculos fsicos adems de procesos de control. Rol

PC

Ejecutar simulaciones

las

87

6.3.5 Restricciones Operacionales


Cdigo Descripcin Las velocidades mximas permitidas a los vehculos livianos particulares en espacios urbanos debe ser considerara. Respetar la secuencia de sealizacin de semforos y el significado de cada sealizacin. Responsable Reglamentacin trnsito vigente Reglamentacin trnsito vigente de Ref. a req. Funcional e interfaces externas FUN_04 DE_02 FUN_06 DE_02

REST_O_01

REST_O_02

de

88

CAPITULO 7. Diseo Global del Software

Para documentar el diseo del simulador se toma como base el estndar de diseo con algunas modificaciones. Estas modificaciones son la integracin al estndar de diseo, en su seccin inicial, de la fase de Anlisis de la metodologa de modelamiento orientado a objetos OMT, ya que esta entrega una clara referencia a la utilizacin de modelos de objeto y modelos dinmicos.

7.1 Diseo Funcional del Software


7.1.1 Modelo de Objeto
Para el modelo de objeto se realizan dos diagramas. El diagrama de clases, el diagrama de objetos. Junto con un diccionario de datos para formalizar el significado de las clases sus atributos y mtodos.

89

7.1.1.1 Diagrama de clases

90

7.1.1.2 Diagrama de Objetos

Diagrama de objetos con las instancias y los atributos ms significativos.

91

7.1.1.3 Diccionario de datos


Clase Atributos
velMaxPermitida: Velocidad mxima permitida, por la reglamentacin de trnsito vigente, para el desplazamiento de vehculos. cicloSemaforo: Tiempo que se demora en completarse un ciclo completo de semforos en una interseccin. secuencia: Orden en la secuencia de los semforos, quien va primero, segundo, tercero. semaforoActivo: Almacena informacin del semforo que esta con flujo activo. Luz verde.

Operaciones
interseccion(): Constructor de la clase. sincronizaSemaforo(): Define la secuencia de los semforos, asigna los tiempos para cada intervalo. controlarSemaforo(): Controla los tiempos de los semforos, realiza los cambios de luces y de semforos (activo/inactivo). defineTrayectoria(): Define la trayectoria o ruta de viaje, que sigue un vehculo, para cada una de las calles y pistas. getVelMax(): Obtiene velocidad mxima la

Interseccion: Agrupa toda la informacin concerniente a la interseccin que ser el escenario para simulacin

getCicloSemaforo(): Obtiene el ciclo de semforo. iguSimulador(): Constructor de la clase. construirVentanas(): Construye las ventanas de la interfaz grfica. validarDatos(): Valida los datos ingresados por el usuario para que correspondan con los tipos adecuados. manjEventoBoton(): Maneja los eventos relacionados a los botones utilizados en las ventanas de la interfaz. manjEventoCombobox(): Maneja los eventos gatillados por el uso de los combobox utilizados en la interfaz. manjEventoScrollbar(): Maneja los eventos gatillados por el uso del scrollbar en la interfaz .

IGUSimulador: Clase encargada de manejar la interfaz grfica de usuario.

mInter: Arreglo que almacena todas las intersecciones , y sus caractersticas, disponibles para simular. paramEntrada: Estructura que registra todos los parmetros ingresados por el usuario.

92

Clase

Atributos
mWorld: Contiene el mundo desde el punto de vista de NxOgre en donde suceden las cosas (tiene lugar la simulacin). mEscena: Escena dentro del mundo donde se crearan los objetos 3d.

Operaciones

iniciarSimulacion(): Da inicio a la simulacin. detenerSimulacion(): Detiene la simulacin cuando el tiempo especificado haya terminado o se cancele la simulacin. newFrame(): Inicia repetitivamente un nuevo marco (iteracin) para la simulacin.

Simulador: Clase controladora de la simulacin.

tmpInicioSimulacion : Tiempo (hora) en el que se inicia la simulacin. tmpActualSimulacion : Tiempo actual dentro de la simulacin. tmpTransSimulacion: Tiempo transcurrido desde el inicio de la simulacin. tmpReaccion : Tiempo de reaccin del conductor, engloba el tiempo de percepcin-reaccin. distSeguridad: Contiene la distancia de seguridad para detencin segura. distInfluencia: Almacena la distancia de influencia para un conductor. distLineaInterseccion: Almacena la distancia hacia la lnea de detencin desde la posicin donde se encuentra el vehculo aceptacion : Contiene el grado de aceptacin a las normas del conductor. velDes: Contiene la velocidad deseada de desplazamiento del conductor. velDesAplicar: Almacena la velocidad deseada que se aplicar realmente (depende de la aceptacin). desaDeseada: Almacena la desaceleracin que deseara aplicar el conductor.

conductor(): Constructor de la clase getTmpReaccion(): Obtiene el tiempo de reaccin del conductor. getDistLineaInter(): Consigue la distancia hacia la lnea de detencin. setDistLineaInter(): Ajusta distancia hacia la lnea detencin la de

Conductor: Clase que contiene toda la informacin y operaciones necesaria sobre un conductor para realizar la simulacin.

93

Clase

Atributos
posicin: Contiene la posicin, como punto tridimensional, de la rueda en relacin con el chasis del vehculo. radioRueda: Radio de la rueda en metros. anchoRueda: Ancho de la rueda en metros. suspensionRueda: Largo de la suspensin en metros. restitucionResorte: Fuerza con la que se restituye el resorte de la suspensin. dampingResorte: Resistencia a la restitucin del resorte.

Operaciones

DescRueda: Clase que representa la rueda de un vehculo, contiene todas las caractersticas necesarias para simular una rueda

springBias: suspensin.

Inclinacin de la

lngTFD: Friccin longitudinal de la rueda. latTFD: Friccin lateral de la rueda. orientacionRueda: Almacena la direccin hacia donde esta mirando la rueda. mWheelShape: Contiene la forma (modelo de colisin) para la rueda dada por NxOgre. mWheel: Contiene la forma (modelo de colisin) para la rueda dada por PhysX. mNodo: Almacena el nodo que controla la representacin grfica de la rueda.

94

Clase

Atributos
largo: Largo del vehculo en metros. ancho: Ancho del vehculo en metros. alto: Alto del vehculo en metros. peso: Peso del vehculo en KG. aceleracin: vehculo. Aceleracin del

Operaciones

vehiculo(): clase.

Constructor

de

la

calcVelocidad(): Calcula la velocidad que el vehculo debe desarrollar en el siguiente intervalo de simulacin. deterModAceleracion(): Determina el modelo de aceleracin o el modelo de micro simulacin que se debe aplicar al vehculo. aplicarVeloc: Aplica la velocidad calculada al vehculo. actualizarNodo(): Actualiza los nodos de las ruedas, para que la representacin grfica (malla) mesh siga los movimientos del modelo de colisin fsica whellshape. llenaHojaRuta(): Llena la hoja de ruta de vehculo. orientarVehiculo() : Orienta al vehculo despus de crearlo para que ste mire hacia la interseccin. guiarVehculo(): Conduce al vehculo por su trayectoria, hoja de ruta. getVelocidad(): Obtiene velocidad de un vehculo. la

desacelNormal: Desaceleracin normal del vehculo. maxDesaceleracion: Mxima desaceleracin del vehculo. distEntreRuedas: Distancia entre las ruedas delanteras. distAVehLider: Distancia entre el vehculo y su vehculo lder. Vehiculo: Representa y contiene toda la informacin necesaria sobre un vehculo. nomMallaVehiculo: Nombre del archivo que contiene la malla 3D del chasis del vehculo. nomMallaRueda: Nombre del archivo que contiene la malla 3D de la rueda. existeVehLider: Almacena la informacin de existencia o no de un vehculo lder. mEscena: Escena en la que el vehculo es creado. bodyVehiculo: Cuerpo del vehculo, el cuerpo contiene una forma y una malla. vehLider: Contiene el vehculo lder. grupoVehiculo: Contiene el grupo de bodys al que pertenece el vehculo. hojaRuta: Contiene la hoja de ruta que debe seguir el vehculo.

deterEvento(): Determina si ha ocurrido algn evento al cual el conductor deba reaccionar. deterCruceLinDeten(): Determina si el vehculo ha cruzado o no la lnea de detencin de la calle.

95

Clase

Atributos

Operaciones
semaforo(): Constructor de la clase. esVerde(): Retorna si un semforo est o no con luz vede.

luzVerde: Almacena la informacin de si un semforo se encuentra o no con luz verde. luzAmarilla: Almacena la informacin de si un semforo se encuentra o no con luz amarilla. Semaforo: Representa un semforo para una calle con todas sus caractersticas. luzRoja: Almacena la informacin de si un semforo se encuentra o no con luz roja. tmpLuzVerde: Tiempo asignado para luz verde. tmpLuzAmarilla: Tiempo asignado para luz amarilla. tmpLuzRoja: Tiempo asignado para luz roja.

esAmarilla(): Retorna si un semforo esa o no con luz amarilla. esRojo(): Retorna si un semforo est o no con luz roja. setVerde(): Ajusta el estado del atributo luzVerde. setRojo(): Ajusta el estado del atributo luzRoja. setAmarillo(): Ajusta el estado del atributo luzAmarilla. getTmpLuzVerde(): Obtiene el tiempo asignado a la luz verde. getTmpLuzRoja(): Obtiene tiempo asignado a la luz roja. el

getTmpLuzAmarila(): Obtiene el tiempo asignado a la luz amarilla. Calle(): Constructor de la clase distCruceInter: Distancia entre la lnea de detencin de una calle y el trmino del cruce de la interseccin. El espacio propiamente tal de cruce. getDistCruceInter(): Obtiene la distancia de cruce de la interseccin. setDistCruceInter(): distancia de cruce. Ajusta la

Calle: Representa una calle de la interseccin

96

Clase

Atributos
trayectoria: almacena la trayectoria que debe seguir un vehculo que viaje por esta pista. lineaDetencion : Contiene el punto de la lnea de detencin de la calle donde deben detenerse los vehculos. ptoEntrada: Almacena el punto de entrada de los vehculos al sistema en esta pista. tmpEntrada: El tiempo que debe esperar un vehculo para entrar al sistema despus crear el ltimo vehculo en la pista. Cada cuanto tiempo se crea un vehculo. ultVehPista: Mantiene registro del ultimo vehculo creado en la pista. numVehPista: Contador del nmero de vehculos creados en la pista. entradaSgt: Tiempo faltante para crear el prximo vehculo en la pista. lmtVelPista: Almacena la velocidad limite, en caso de existir, para la pista .

Operaciones

pista(): Constructor de la clase

Pista: Agrupa toda la informacin sobre una pista de una de la calle

getUltVehPista(): Consigue el ltimo vehculo creado en la pista.

getEntradaSgt(): Consigue el tiempo faltante para crear un nuevo auto en la pista. getlmtVelPista(): Obtiene velocidad lmite de la pista. la

97

7.1.2 Modelo Dinmico


7.1.2.1 Diagrama De Transicin De Estados Para Una Instancia Vehiculo.

cuando: creado

Entrando al Sistema

despus: Entrar

cuando: Simulacin cancelada/detenida

Calculando Velocidad

despus: Calculada

cuando: Simulacin cancelada/detenida Aplicando Velocidad Destruido

cuando: Aplicada

Detenido

Avanzando

cuando: Simulacin cancelada/detenida

cuando: Simulacin cancelada/detenida

despus: Cruz interseccin

Destruido

Saliendo del Sistema

98

7.1.2.2 Diagrama De Transicin De Estados Para Una Instancia Semforo.

cuando: Luz Verde

cuando: Simulacin cancelada/terminada Activo

cuando: Expira tiempo verde cuando: Simulacin cancelada/terminada

cuando: Expira tiempo rojo Amarillo Terminado

cuando: Expira tiempo amarillo

cuando: Simulacin cancelada/terminada Inactivo (Rojo)

99

7.1.3 Modelo Funcional

7.1.3.1 Diagrama de Contexto

100

7.1.3.2 Diagrama De Flujo de Datos Nivel Superior

101

7.1.3.3 Diagrama De Flujo de Datos Nivel De Detalle Manejar IGU

102

7.1.3.4 Diagrama De Flujo de Datos Nivel De Detalle Controlar Simulacin

Determinar Creacin de Vehculo Crear Vehculos Tiempo entrada al sistema Tiempo transcurrido para determinar creacin Respuesta creacin Parmetros para creacin vehculo Solicitud Simular fsicamente un cuerpo

Malla vehculo Mallas 3d Escena para crear vehculo Malla Interseccin

Parmetros por tipo validados

Iniciar Simulacin

Parmetros para creacin de Escena Crear Mundo y Escena

Solicitud crear mundo y escena Escena

Tiempo transcurrido Solicitud determinar fin simulacin Duracin simulacin

Solicitud para servicio servicios

Tiempos simulacin Determinar Fin Simulacin

Tiempos de semforos Solicitar Servicios

Interseccin Tiempo expirado simulacin Finalizar Simulacin Solicitud manejar semforos Solicitud generar informes

Tiempo reaccin conductor Intervalo simulacin

103

7.1.3.5 Diagrama De Flujo de Datos Nivel De Detalle Manejar Semforos

Tiempos de semforos Solicitud manejar semforos 3.2 Asignar Tiempos

3.1 Inicializar Semforos

Solicitud asignar tiempos

Solicitud estado semforo Semforo inicializado

Solicitud sincronizacin semforos

3.4 Controlar Semforos Estado semforo Tiempos simulacin

3.3 Sincronizar Semforos

104

7.1.3.6 Diagrama De Flujo de Datos Nivel De Detalle Calcular Velocidad

105

7.1.3.7 Diagrama De Flujo de Datos Nivel De Detalle Generar Informes

106

7.1.4 Diccionario De Datos


Nombre Entidad Usuario Descripcin Representa al usuario operador de la aplicacin, el que ingresa todos los datos necesarios para realizar las simulaciones y al que se le entregan los informes con los resultados de las simulaciones. Representa al sistema envoltorio NxOgre encargado de integrar los motores fsicos y grficos. A travs de este envoltorio se tiene acceso a las capacidades de ambos motores para realizar las simulaciones fsicas y su representacin grfica. Representa el sistema utilizado para crear y manipular la interfaz grfica de usuario.

NxOgre

CEGUI

Nombre Funcin

SIMTIS

Manejar IGU

Controlar Simulacin

Manejar Semforos

Calcular Velocidad

Aplicar Velocidad

Descripcin Representa al sistema definido por la aplicacin, Simulador Trfico Intersecciones Sealizadas, y todas sus caractersticas y operaciones. Interacta con el Usuario que le suministra la informacin necesaria para operar y con los sistemas NxOgre, para realizar la simulacin fsica y su representacin grfica, y con CEGUI para conseguir operar su interfaz grfica. Funcin encargada de manejar la interfaz grfica de usuario, crear las ventanas, maneja los eventos de las ventanas, captura los parmetros ingresados por el usuario, valida los datos. Se comunica con el sistema de ventanas CEGUI para realizar su tarea. Funcin encargada de controlar la simulacin: Inicia la simulacin, crea la escena, crea los objetos de la escena, determina cuando crear un nuevo vehculo para ingresarlo al sistema, solicita servicios para controlar los semforos, calcular las velocidades de los vehculos. Funcin encargada de inicializar, los semforos y controlar su funcionamiento. Asigna los tiempos a los semforos, su secuencia de rotacin, los cambios de luces. Calcula la velocidad que deber desarrollar un vehculo en la nueva iteracin de la simulacin. Determina la existencia de un vehculo lder, la distancia entre el vehculo y su lder, la velocidad propia y la del vehculo lder (solicita las velocidades a NxOgre), la existencia de algn evento al que deba reaccionar un conductor. Determina el modelo de aceleracin o micro simulacin que se utilizar para calcular la velocidad dependiendo de todas las caractersticas mencionadas anteriormente. Funcin encargada de aplicar al vehculo la velocidad calculada. Enva un mensaje a NxOgre para que finalmente este aplique y simule fsicamente la nueva velocidad.

107

Genera los informes con los resultados finales de la simulacin. El informe generado contiene informacin de s velocidades promedios de los vehculos, sus tiempos de espera y el flujo vehicular. Nombre Almacn Descripcin Datos que lo componen Nombre interseccin, Archivo que contiene todas Nmero de calles, Nombre las intersecciones disponibles Intersecciones Disponibles calle, nmero de pistas, para ser utilizadas en las Nombre archivo interseccin, simulaciones. Nombre archivo malla 3d. Punto ubicacin de los semforos, punto ubicacin Archivo que contiene toda la de la lnea de detencin, largo Interseccin informacin sobre una del cruce de la interseccin, interseccin Calles, Hoja de ruta por pistas. Contiene las mayas de los Malla intersecciones, Malla objetos tridimensionales Mallas 3d chasis vehculo, malla rueda, modelados, adems de las texturas. texturas utilizadas por estos. 6 Generar Informes

Nombre Flujo

Datos que lo componen Origen Tiempo de Reaccin, Los parmetros que se Grado aceptacin a las Parmetros necesitan para simular normas, Velocidad Usuario Conductor el comportamiento del deseada para viajar de conductor. parte del conductor Los parmetros Parmetros necesarios para Velocidad mxima, ciclo Usuario interseccin representar una de los semforos, interseccin. Los parmetros Tiempo semforos, Parmetros necesarios para tiempos en cada luz de Usuario calle trabajar con una calle. semforo. Los parmetros Tiempo de entrada de Parmetros necesarios para vehculos a la pista. Cada Usuario trabajar con una pista cuanto tiempo se crea un pista de una calle. vehculo en la pista Una lista con todas las intersecciones disponibles para Intersecciones Manejar utilizar en una Nombre interseccin disponibles IGU simulacin. Para ser seleccionada por el usuario

Descripcin

Destino Manejar IGU

Manejar IGU Manejar IGU Manejar IGU

Usuario

108

Nombre ventana, posicin, de solicitud de gestar una tamao, tipo apariencia, ventana artefactos. Retorno de la ventana Ventana Direccin de la ventana gestada. Nombre Flujo Descripcin Datos que lo componen Solicitud para generar Solicitud informes despus de mensaje Generar finalizar la Informes interseccin. Solicitud Solicitud para manejar manejar y controlar los mensaje semforos semforos. Ciclo semforo, tiempo Tiempos de Tiempos asignados a luz roja, tiempo luz verde, semforos cada semforo. tiempo luz amarilla. Tiempo actual dentro de la Tiempo Tiempos utilizados en simulacin, tiempo simulacin la simulacin. transcurrido de la simulacin. Tiempo de reaccin Tiempo del conductor ante la Tiempo reaccin reaccin ocurrencia de algn conductor evento. Tiempo que toma Intervalo de realizar una iteracin Intervalo simulacin simulacin de la simulacin de trfico. Solicitud a NxOgre Solicitud para que cree el crear mundo mundo y la escena Tipo de escena y escena donde ocurrirn las cosas, la simulacin. Escena retorna por Escena Escena NxOgre. Solicitar a NxOgre El cuerpo del vehculo, es Solicitud que realice todos los decir, body que est simular clculos fsicos para el compuesto por una forma fsicamente cuerpo y los replique (modelo fsico) y una un cuerpo en el modelo grfico malla (modelo grfico). Solicitud para tener Solicitud conocimiento de mensaje estado estado de un semforo semforo. Estado Contiene el estado del Estado del semforo semforo semforo Solicitud Ventanas

Manejar IGU CEGUI Origen Controlar Simulacin Controlar Simulacin Controlar Simulacin Controlar Simulacin

CEGUI Manejar IGU Destino Generar Informe Manejar Semforos Manejar Semforos Manejar Semforos

Controlar Simulacin

Calcular Velocidad

Controlar Simulacin

Calcular Velocidad

Controlar Simulacin

NxOgre

NxOgre

Controlar Simulacin

Controlar Simulacin

NxOgre

Calcular Velocidad Manejar Semforos

Manejar Semforos Calcular Velocidad

109

Nombre Flujo Solicitud posicin cuerpo Posicin cuerpo

Solicitud aplicar velocidad

Descripcin Solicitud a NxOgre para conocer la posicin de un cuerpo. Respuesta a solicitud posicin de un cuerpo con la posicin del cuerpo. Solicitud a NxOgre para que aplique la velocidad sobre el cuerpo y simule su comportamiento.

Datos que lo componen El cuerpo (body)

Origen Calcular Velocidad

Destino NxOgre

Posicin del cuerpo.

NxOgre

Calcular Velocidad

Cuerpo, velocidad

Aplicar Velocidad

NxOgre

Informe simulacin

Tiempos de demora, velocidades promedio, Informe sobre los ciclo de semforo, tiempos Generar resultados obtenidos de semforos, nmero de Informes por la simulacin vehculos en la simulacin.

Usuario

Parmetros Parmetros capturados Parmetros por conductor, por tipo Manejar desde la interfaz por interseccin, por calle, IGU validados grfica ya validados. por pista Contiene la velocidad calculada para un Velocidad calculada vehculo. Solicitud Solicitud para saber velocidad cual es la velocidad El cuerpo (body) instantnea de instantnea de un un cuerpo cuerpo. velocidad Velocidad instantnea Velocidad instantnea instantnea de un cuerpo. Velocidad calculada Calcular Velocidad Calcular Velocidad NxOgre

Controlar Simulacin

Aplicar Velocidad

NxOgre Calcular Velocidad

110

7.2 Especificacin De Procesos


N Proceso: 2 Flujo de datos de entrada
Parmetros por tipo validados Escena

Nombre Proceso: Controlar Simulacin


/INICIO Crear el mundo y la escena; Agregar gravedad a la escena; Crear una instancia clase Interseccin; Marcar hora inicio simulacin; Iniciar simulacin; Repetir hasta finalizar la simulacin Conseguir Tiempo Actual; Determinar el tiempo transcurrido; Controlar semforos utilizando tiempos; Si tiempo transcurrido > tiempo simulacin terminar simulacin; destruir objetos en la escena; destruir escena; guardar resultados; mostrar informes; Si no Continuar; Si tiempo transcurrido > tiempo entrada Crear nuevo vehculo; Si no Continuar; Repetir para cada vehculo creado Calcular velocidad; Aplicar velocidad; Guiar vehculo; Fin Repetir para cada vehculo Fin Repetir hasta finalizar simulacin /FIN

Proceso Padre: Manejar IGU Flujo de datos salida

de

Solicitud generar informes Solicitud simular fsicamente un cuerpo Solicitud crear mundo y escena Intervalo simulacin Tiempo reaccin conductor

Almacenes de Datos referenciados Resultado simulacin

111

N Proceso: 3

Nombre Proceso: Manejar Semforos

Flujo de datos de /INICIO entrada


Solicitud manejar semforos Tiempos simulacin Tiempos de semforos Solicitud estado semforo Asignar tiempos a semforo Repetir para cada semforo Asignar tiempo luz verde; Asignar tiempo luz roja; Asignar tiempo luz amarilla; Fin repetir Fin Asignar tiempos Sincronizar secuencia semforos Repetir por cada semforo Poner semforo en la pila Asignar primer semforo en pila activo Fin repetir Fin Sincronizar Controlar semforo Determinar semforo activo; Determinar expiracin tiempo en luz; Si tiempo expiro Determinar luz activa de semforo; Si luz verde Cambiar a luz amarilla; Fin si luz verde Si luz amarilla Cambiar a luz roja; Cambiar de semforo activo Sacar semforo activo de la pila; Poner semforo al final de la pila Activar siguiente semforo en pila Fin cambio semforo Fin si luz amarilla Si tiempo no expiro Continuar; Fin Controlar semforo /FIN

Proceso Padre: Controlar Simulacin Flujo de datos de salida


Estado semforo

Almacenes de Datos referenciados No Aplicable

112

Nombre Proceso: Calcular Velocidad N Proceso: 4 Flujo de / INICIO datos de Determinar tiempo intervalo simulacin expir Si tiempo expir (nuevo intervalo de simulacin) entrada Determinar si tiene vehculo lder;
Tiempo reaccin conductor Intervalo simulacin Estado semforo
Si tiene Calcular distancia entre vehculos; Conseguir velocidad lder; Si no tiene Continuar; Determinar modelo de aceleracin Si no cruz lnea de detencin Si semforo esta en rojo Si tiene vehculo lder Si distancia a vehculo lder < Distancia a lnea de detencin Aceleracin vehculo siguiente; Si no Aceleracin influencia seal; Si no tiene lder Si distancia de influencia > Distancia a Lnea de interseccin Aceleracin influencia seal; Si no Aceleracin vehculo siguiente; Si no esta en rojo Si semforo esta en verde Aceleracin influencia seal; Si no verde ni rojo (amarillo) Si el tiempo que queda amarillo alcanza para cruzar la interseccin Aceleracin vehculo siguiente; Si no alcanza cruzar Si distancia de influencia > Distancia a Lnea de interseccin Aceleracin influencia seal; Si no Aceleracin vehculo siguiente; Si cruzo la lnea de detencin Aceleracin vehculo siguiente; Fin determinar modelo aceleracin Calcular la velocidad segn modelo de aceleracin Determinar existencia de eventos; Si hay evento Calcular velocidad usando tiempo reaccin del conductor; TmpIntSim = TmpReac; Si no hay evento Calcular velocidad utilizando tiempo definido de intervalote simulacin; TmpIntSim = 0.3 segundos Si tiempo no expiro (simulando intervalo actual) Continuar; /FIN

Proceso Padre:
Controlar Simulacin

Flujo de datos de salida


Solicitud estado semforo Solicitud posicin cuerpo Solicitud velocidad instantnea cuerpo Velocidad calculada

Velocidad instantnea

Almacenes de Datos referenciados No Aplicable

113

N Proceso: 5

Nombre Proceso: Aplicar velocidad

Flujo de datos de /INICIO entrada


Velocidad calculada Conseguir el vehculo; Conseguir las ruedas del vehculo; Para cada una de las 4 ruedas Aplicar velocidad calculada; /FIN

Proceso Padre: Controlar Simulacin Flujo de datos de salida


Solicitud aplicar velocidad

Almacenes de Datos referenciados No Aplicable

114

7.3 Modelamiento De Datos


La aplicacin utiliza dos tipos de archivos, en texto plano, diferentes para cargar informacin sobre las intersecciones que se utilizan como escenario de las simulaciones. Un archivo corresponde a un resumen de todas las intersecciones que estn disponibles para ser utilizadas por el simulador, el otro tipo de archivo contiene toda la informacin detallada sobre una interseccin, esto se hace para evitar saturar al usuario solicitndole demasiada informacin como puede ser la ruta que debe seguir un vehculo dentro de una calle, pensando que esa ruta es una coleccin de puntos tridimensionales y cada calle puede tener varias rutas (pistas). El archivo de resumen de las intersecciones se llama interseccion.rsm, y debe tener la siguiente estructura para que la aplicacin lo lea correctamente y pueda ejecutarse.

#indica comentario, esta lnea no ser considerada # nombre de la interseccin <interseccion> Nombre : String_nombre_interseccin #archivo en donde se encuentra detallada la interseccin Archivo : nombre_archivo.int #numero de calles que tiene la interseccin, valor entero positivo Numero calles : 99 #resumen de las calles, segn el numero de las calles anterior <calle> Nombre : String_nombre_calle Numero de Pistas : 99 </calle> #. #. #. <calle> Nombre : String_nombre_calle Numero de Pistas : 99 </calle> </interseccion>

115

Este archivo es ledo al iniciar la IGU, en donde se le da la opcin al usuario de elegir las intersecciones disponibles. Dependiendo de su eleccin el resto de las ventanas se crean dinmicamente segn el nmero de calles y pistas que tenga la interseccin, ya que es necesario conocer los tiempos de semforo para cada calle y los tiempos de ingreso de vehculos al sistema para cada pista. Una vez que el usuario seleccion la interseccin, esta debe ser cargada con todas sus caractersticas. Para esto el simulador lee un archivo de texto plano con el siguiente formato.

116

#este es un comentario #archivo que contiene la maya 3d .mesh Malla : String_nombreMalla.mesh #nombre de la malla del semforo Malla semaforo: String_nombreMalla_Semaforo.mesh #informacin por calles <calle> Nombre : String_nombre_calle #posicin del semforo en la calle, un punto 3d Posicion semaforo : x = 99.99; y = 99.99; z = 99.99; Rotacion semaforo: x = 99.99; y = 99.99; z = 99.99; Numero pistas : 9 <pista> Nombre : String_pista1 #punto donde sern creados los vehculos Punto entrada : x = 99.99; y = 99.99; z = 99.99; Linea detencion: x = 99.99; y = 99.99; z = 99.99; <ruta> x = 99.99; y = 99.99; z = 99.99; x = 99.99; y = 99.99; z = 99.99; x = 99.99; y = 99.99; z = 99.99; . . x = 99.99; y = 99.99; z = 99.99; </ruta> </pista> . . <pista> Nombre : String_pistaN #punto donde sern creados los vehculos Punto entrada : x = 99.99; y = 99.99; z = 99.99; Linea detencion: x = 99.99; y = 99.99; z = 99.99 <ruta> x = 99.99; y = 99.99; z = 99.99; x = 99.99; y = 99.99; z = 99.99; x = 99.99; y = 99.99; z = 99.99; . . x = 99.99; y = 99.99; z = 99.99; </ruta> </pista> </calle>

117

7.4 Diseo de Entradas


Documento : [F01] Nombre : [Formulario Informacin General] Descripcin : Informacin general sobre la simulacin que se realizar Campo Tipo Longitud Formato Nombre Simulacin alfanumrico 30 X----------X Tiempo Simulacin numrico 2 99 Nombre Interseccin alfanumrico 30 X----------X

Documento : [F02] Nombre : [Formulario Parmetros Globales] Descripcin : Parmetros globales que afectan a todos los vehculos por igual dentro de la simulacin. Campo Tipo Longitud Formato Ciclo Semforo numrico 5 999.99 Tiempo Luz Amarilla numrico 5 999.99 Nombre Calle alfanumrico 30 X----------X Tiempo luz Verde numrico 5 999.99 Tiempo luz Roja numrico 5 999.99 Velocidad Mxima numrico numrico 999.99

Documento : [F03] Nombre : [Formulario Parmetros por Pista] Descripcin : Frecuencia con la que entrarn los f por pista Campo Tipo Longitud Nombre Calle alfanumrico 30 Nombre Pista alfanumrico 30 Tiempo entrada numrico 4 Constante Tiempo Entrada numrico 4 Aleatorio Tiempo Entrada numrico 4 Segn Secuencia

vehculos al sistema, Formato X----------X X----------X 99.99 99.99 99.99 99.99;99.99;...;99.99

118

7.5 Diseo de informes


Documento : [S01] Nombre : [Informe Simulacin] Salida : pantalla/archivo Descripcin : Informe que contiene los resultados de la simulacin realizada Campo Tipo Longitud Formato Interseccin alfanumrico 30 X----------X Ciclo Semforo numrico 5 999.99 Tiempo Luz Amarilla numrico 5 999.99 Nombre Calle alfanumrico 30 X----------X Nombre Pista alfanumrico 30 X----------X Tiempo luz Verde numrico 5 999.99 Tiempo luz Roja numrico 5 999.99 Tiempo de Espera numrico 5 999.99 Numero de vehculos numrico 6 9999.99

119

7.6 Pantallas
Las pantallas son presentadas en orden a como van apareciendo ante el usuario, con una breve descripcin de cada una de ellas. Pantalla informacin general.

Corresponde a la pantalla inicial y captura la informacin sobre las caractersticas generales de la simulacin. Tales como un nombre para identificar la simulacin, al finalizar esta se crear un archivo de resultados con el nombre que ingrese el usuario en este campo. Un tiempo de duracin de la simulacin, y la eleccin de la interseccin que se simular, esto dentro de las selecciones disponibles.

120

Ventana Parmetros Globales

Es la segunda pantalla en el orden de aparicin ante el usuario y es la encargada de capturar la informacin global para la simulacin, es decir, la informacin que afectar a todos los vehculos dentro de la interseccin. Esta pantalla solicita al usuario que ingrese un Ciclo de Semforo para la interseccin junto con un tiempo designado para la luz amarilla. Siguiendo con la configuracin de semforo ahora se divide el tiempo asignado a las luces verde y roja por calles, de esta manera el usuario debe seleccionar en el combobox la calle y seguidamente asignarle un tiempo de luz verde y luz roja. En la seccin de Configuracin de Velocidades, se debe ingresar la velocidad mxima permitida para el desplazamiento de los vehculos en este caso vehculos livianos. En el caso que el usuario ingrese una configuracin de semforo errnea, se

121

desplegar la siguiente pantalla de advertencia sealando el acontecimiento.

Ventana Parmetros por Pista.

La ventana Parmetros Por Pista recoge la informacin de cada cuanto tiempo se crear un nuevo vehculo que ingresar a la interseccin. Esta informacin se divide por calles de la interseccin y por pistas de la calle, de esta manera se ingresa el tiempo en 122

segundos que debe pasar hasta para crear un nuevo vehculo en la pista. El usuario dispone de tres modos de tiempo de ingreso, uno constante otro aleatorio y uno segn alguna secuencia. El tiempo constante como su nombre lo indica es inalterable dentro de la simulacin, el tiempo aleatorio se mueve dentro de un rango de dos valores y la secuencia es un conjunto de tiempos separados por guiones ej. 10-12-14-8-6. La secuencia se implementa como una cola circular sin fin, por lo tanto cuando se llega al fin de la secuencia se comienza nuevamente con el primer valor, as hasta terminar la simulacin. Ventana Parmetros Conductor

Parmetros Conductor es la ultima ventana de configuracin para la simulacin, indica al usuario que debe ingresar el Tiempo de Reaccin que le toma al conductor enfrentar un evento, este tiempo en realidad es el tiempo percepcin-reaccin descrito en los primeros captulos. El Grado Aceptacin normas es un valor entre 0 y 1 que dice cuan 123

propenso o no es el conductor a adoptar las normas impuestas (velocidad mxima), siendo 0 ninguna aceptacin y 1 una total aceptacin. La Distancia entre Vehculos es la distancia que un vehculo nunca sobrepasar como espacio entre el y su vehculo lder (ver modelo de Gipps). Velocidad deseada es la velocidad con la cual el conductor deseara viajar en condiciones ideales sin ninguna limitante por delante de l. Esta velocidad es contrastada con la velocidad mxima permitida y con el grado de aceptacin para obtener una velocidad deseada con condicionamiento por decirlo de alguna manera y utilizarla en los modelos de simulacin como la velocidad deseada de viaje. Ventana Informe Simulacin

Al expirar el tiempo asignado a la simulacin se despliega la ventana Informe 124

Simulacin que corresponde a la ltima ventana de la interfaz grfica de usuario. Contiene los datos capturados durante la ejecucin de la simulacin, informacin como velocidades promedio, tiempos de demora y flujos vehiculares. Al aceptar la ventana se finaliza la aplicacin. Ventanas de Advertencia En ocasiones cuando el usuario ingresa un valor errneo o dejo alguna informacin sin completar se despliega una ventana de advertencia similar a la que se muestra en la siguiente captura.

Cuando una velocidad mxima parece ser muy elevada al sentido comn para una interseccin urbana.

Cuando falta asignar tiempos de entrada a alguna pista.

125

Cuando se asigna un rango incorrecto a un tiempo de entrada aleatorio. El acento de las palabras en la interfaz grfica fue omitido deliberadamente ya que CEGUI, encargado de gestar y administrar las ventanas, integrado a Ogre no acepta acentos.

126

7.7 Casos de Prueba


Para observar el comportamiento del simulador y analizar los resultados que entrega se exponen 3 casos de prueba realizados con diferentes configuraciones cada uno. Los resultados fueron los siguientes.
Caso 1

Tabla N 7.1: Parmetros entrada Caso Prueba 1


Nombre Simulacin Tiempo Simulacin Interseccin a Simulador Ciclo de Semforo Tiempo Asignado a Luz Amarilla Tiempo Luz Calle Verde (seg) Calle_Prueba01 Calle_Prueba02 58 : Simulacin_Prueba_01 : 05 minutos : Interseccion_Prueba_2 : 95 segundos : 03 segundos Tiempo Entrada Tipo entrada (seg) Constante Pista 1 12 Constante Pista 2 8 Constante Pista 3 6 Constante Pista 1 3 Constante Pista 2 4 Constante Pista 3 2

Tiempo Luz Roja (seg) 34

31

61

127

Tabla N 7.2: Resultados simulacin Caso Prueba 1


Calle_Prueba01 Pista 1 276 Flujo Vehicular (Veh/h) Pista 2 Pista 3 Total Pista 1 Velocidad Promedio/Tiempo (Km/h) Pista 2 Pista 3 Total Pista 1 Velocidad Promedio/Espacio (Km/h) Pista 2 Pista 3 Total Pista 1 Tiempo Demora Promedio (seg) Pista 2 Pista 3 Total 396 540 1212 36.56 36.75 36.72 36.68 27.48 27.77 28.07 27.77 22.45 22.19 21.98 22.21 Calle_Prueba02 Pista 1 792 Pista 2 Pista 3 Total Pista 1 Pista 2 Pista 3 Total Pista 1 Pista 2 Pista 3 Total Pista 1 Pista 2 Pista 3 Total 744 636 2172 17.27 18.45 20.71 18.81 12.46 13.49 14.68 13.54 49.52 45.71 41.99 45.74

Como era de esperar la calle Calle_Prueba02 es la que registra mayor flujo de vehculos en la simulacin esto debido a que los tiempos de entrada asignado a sus pistas son menores que los asignados a la calle Calle_Prueba01. En este caso de prueba la configuracin de semforos realizada para la interseccin no es adecuada ya que se est dando preferencia en tiempo a la calle que aporta el menor flujo de vehculos, considerablemente menor casi la mitad del flujo que aporta la calle Calle_Prueba02. Esta configuracin de semforo hace que la calle con mayor flujo aumente sus tiempos de demora y disminuya sus velocidades de viaje principalmente por que no todos los vehculos que esperan por cruzar la interseccin pueden hacerlo.

128

Caso 2

Tabla N 7.3: Parmetros entrada Caso Prueba 2


Nombre Simulacin Tiempo Simulacin Interseccin a Simulador Ciclo de Semforo Tiempo Asignado a Luz Amarilla Tiempo Luz Calle Verde (seg) Calle_Prueba01 Calle_Prueba02 31 : Simulacin_Prueba_02 : 05 minutos : Interseccion_Prueba_2 : 95 segundos : 03 segundos Tiempo Entrada Tipo entrada (seg) Constante Pista 1 12 Constante Pista 2 8 Constante Pista 3 6 Constante Pista 1 3 Constante Pista 2 4 Constante Pista 3 2

Tiempo Luz Roja (seg) 61

58

34

Tabla N 7.4: Resultados simulacin Caso Prueba 2


Calle_Prueba01 Pista 1 276 Flujo Vehicular (Veh/h) Pista 2 Pista 3 Total Pista 1 Velocidad Promedio/Tiempo (Km/h) Pista 2 Pista 3 Total Pista 1 Velocidad Promedio/Espacio (Km/h) Pista 2 Pista 3 Total Pista 1 Tiempo Demora Promedio (seg) Pista 2 Pista 3 Total 372 468 1116 24.91 24.60 22.15 23.89 16.17 15.90 14.48 15.52 38.24 38.85 42.58 39.89 Calle_Prueba02 Pista 1 996 Pista 2 Pista 3 Total Pista 1 Pista 2 Pista 3 Total Pista 1 Pista 2 Pista 3 Total Pista 1 Pista 2 Pista 3 Total 792 996 2784 32.52 34.38 32.42 33.10 25.02 26.60 24.84 25.49 24.66 23.19 24.81 24.22

129

Para este caso de prueba se conservan los mismos parmetros de entrada que en el caso anterior la nica excepcin es que los tiempos de semforo se intercambiaron entre las calles, es decir, los tiempos de la calle Calle_prueba01 son ahora los de la calle Calle_Prueba02 y viceversa. Por lo tanto la calle Calle_Prueba02 sigue aportando el mayor flujo de vehculos a la interseccin sin embargo sus tiempos de espera disminuyeron considerablemente casi a la mitad. Esto se debe principalmente al aumento en el tiempo de luz verde para su semforo, con esto ahora todos los vehculos detenidos que esperan cruzar la interseccin lo consiguen en el intervalo asignado a la luz verde. La calle Calle_Prueba02 adems aument su flujo de vehculos esto tambin debido a la nueva configuracin de semforo, ahora puede poner ms vehculos en la interseccin. La calle Calle_Prueba01 entrega una pequea disminucin en su flujo y un aumento en sus tiempos de demora por que ya no tiene flujo tan expedito producto de la disminucin de su tiempo en luz verde y aumento en luz roja. Sin embargo ahora la preferencia la tiene la calle que aporta, un considerable, mayor flujo a la interseccin.
Caso 3

Tabla N 7.5: Parmetros entrada Caso Prueba 3


Nombre Simulacin Tiempo Simulacin Interseccin a Simulador Ciclo de Semforo Tiempo Asignado a Luz Amarilla Tiempo Luz Calle Verde (seg) Calle_Prueba01 Calle_Prueba02 37 : Simulacin_Prueba_03 : 05 minutos : Interseccion_Prueba_2 : 85 segundos : 03 segundos Tiempo Entrada Tipo entrada (seg) Constante Pista 1 12 Constante Pista 2 8 Constante Pista 3 6 Constante Pista 1 3 Constante Pista 2 4 Constante Pista 3 2

Tiempo Luz Roja (seg) 45

42

40

130

Tabla N 7.6: Resultados simulacin Caso Prueba 3


Calle_Prueba01 Pista 1 276 Flujo Vehicular (Veh/h) Pista 2 Pista 3 Total Pista 1 Velocidad Promedio/Tiempo (Km/h) Pista 2 Pista 3 Total Pista 1 Velocidad Promedio/Espacio (Km/h) Pista 2 Pista 3 Total Pista 1 Tiempo Demora Promedio (seg) Pista 2 Pista 3 Total 408 552 1236 34.61 31.34 30.64 32.19 24.71 21.95 21.41 22.69 24.96 28.11 28.78 27.28 Calle_Prueba02 Pista 1 852 Pista 2 Pista 3 Total Pista 1 Pista 2 Pista 3 Total Pista 1 Pista 2 Pista 3 Total Pista 1 Pista 2 Pista 3 Total 708 864 2424 26.67 30.46 25.99 27.71 20.14 22.86 19.93 20.98 30.63 26.97 30.92 29.51

Para el caso de prueba 3 se cambi la configuracin de semforos para la interseccin, asignando un ciclo de 85 segundos con un tiempo de 3 segundos para la luz amarilla, el resto de los parmetros se mantuvo igual que en los dos casos anteriores. En ste caso de prueba los tiempos de demora de las dos calles se aproximan bastante el uno del otro habiendo una diferencia entre ellos de slo dos segundos y fraccin. El mayor flujo de vehculos lo sigue aportando la calle Calle_Prueba02 con una disminucin pequea en su flujo. La calle Calle_Prueba01 en tanto experimenta un leve aumento en su flujo. Esta nueva configuracin de semforo consigue la menor demora para la interseccin, sumadas las dos calles, de los tres casos de prueba expuestos lo que quiere decir que al disminuir el ciclo de semforo en 10 segundos y tratando de equiparar los tiempos en los dos semforos se logran demoras aceptables para las dos calles. Este no 131

significa que la nueva configuracin de tiempos de semforo sea el optimo para la interseccin de prueba, con los parmetros de de entrada asignados. Slo muestra los impactos que producen las diferentes combinaciones de tiempos en los semforos de la interseccin. Tabla N 7.6: Parmetros de entrada para conductores
Tiempo de Reaccin (Seg) Grado de Aceptacin [0-1] Distancia entre Vehculos (m) Velocidad Deseada (Km/h) 1.0 1 1.5 70

Los parmetros de entrada para los conductores se mantuvieron sin alteracin en los tres casos de prueba descritos.

132

7.7.1 Capturas de Simulaciones

133

134

Conclusin

Las conclusiones al trmino del proyecto de titulacin se desprenden de varios aspectos diferentes del mismo, los relacionados al software libre, la necesidad y potencialidad de la integracin de varias herramientas en el desarrollo y los resultados sobre el problema principal que da origen al proyecto. La existencia del software libre en el desarrollo de aplicaciones es cada da ms significativa. Las potencialidades entregadas por el software libre, en sus mayores exponentes, prcticamente no tienen diferencias con las potencialidades entregadas por las herramientas de pago de similares caractersticas. Una gran limitacin a la hora de emprender un proyecto sobre todo a nivel de investigacin con fines acadmicos es la utilizacin y disponibilidad de licencias que permitan desarrollar. El acierto al seleccionar herramientas open source para integrarlas en el desarrollo del proyecto super estas limitaciones y adems entreg un valor agregado impensado, que esta relacionado con el aporte de las comunidades que se crean entorno al software libre, principalmente el soporte que entregan los foros que son el repositorio de conocimientos ms grande que una herramienta pueda entregar. Para poder hoy da exponer el proyecto realizado fue necesario invertir muchas horas dentro de estas comunidades para poder crear las competencias y habilidades necesarias para el logro de los objetivos. Los foros de Blender, Ogre3D, NxOgre, CEGUI y en alguna medida PhysX, (auque este ltimo es pagado pero de libre uso para su utilizacin en proyectos de carcter acadmico no comercial), fueron los fuentes que sin duda marcaron el xito en el cumplimiento de los objetivos. Por otro lado, el concepto fundamental que queda en mente despus de integrar las distintas herramientas es la modularizacin, especializacin y compatibilidad de estas. En cuanto a la modularizacin se puede ver a cada herramienta como un componente separado pero fundamental en el funcionamiento del simulador, la especializacin de las 135

herramientas permite obtener las mejores prestaciones que otorga cada una de ellas. Por una parte est el motor grfico como un subsistema del cual se pueden aprovechar sus caractersticas para trabajar de mejor manera la parte visual del simulador. Por otro lado est el motor fsico que se puede ver de igual manera que el anterior pero enfocado a conseguir las simulaciones fsicas de los objetos, los vehculos. La compatibilidad en las herramientas utilizadas es importante, ya que es gravitante que se puedan comunicar entre ellas, que el comportamiento fsico de los vehculos pueda observarse grficamente de una forma amigable. No es sorprendente encontrar que la gran mayora de las herramientas open source son compatibles entre ellas (si sus reas estn relacionadas), ya que su carcter de libertad permite a cualquiera que lo necesite desarrollar aplicaciones o envoltorios que se encarguen de comunicar los sistemas, el envoltorio que se encarga de comunicar los dos motores utilizados en el simulador es NxOgre, su presencia en el proyecto es muy significativa. Que cada cosa se dedique a lo suyo y lo haga de la mejor manera, y que exista la posibilidad de integrar sus funcionalidades a terceros proyectos resulta sin duda muy beneficioso. Al inicio del proyecto solo se tena la idea de que era lo que se deseaba desarrollar, pero ningn conocimiento acerca de cmo realizarlo. Afortunadamente la Red provee de todo lo necesario para lograr el desarrollo, solo hay que invertir tiempo buscando orientacin, alternativas y especializndose en el uso de stas. Quizs el tamao del proyecto resulta ser un poco grande para un solo integrante, integrar a ms personas y especializarlas en algn mbito determinado puede resultar ms beneficioso. Finalmente, terminada la aplicacin, es posible realizar simulaciones de trfico

sobre intersecciones sealizadas, obteniendo como resultado los tiempos de espera que lleva cruzar por la interseccin as como el nmero de vehculos que usaron el sistema. Es posible configurar las simulaciones con diferentes parmetros y ver como afectan estos. Lo que permite saber con cierto grado de aproximacin a la realidad como podra comportarse 136

una interseccin verdadera a cambios en los tiempos de semforo, tiempos de reaccin de conductores, limites de velocidades, permitiendo a las personas encargadas de tomar decisiones sobre el control de trfico urbano en intersecciones sealizadas mejorar sus procesos y no aventurar con los resultados de sus decisiones. Esto ltimo es caracterstica fundamental de toda simulacin o simulador, abaratar costos o evitar implantar decisiones equivocadas con resultados altamente costosos.

137

Bibliografa
1. Nicholas J. Garber, Lester A. Hoel. 2001.Traffic and Highway Engineering. 2. Principles of Highway Engineering and Traffic Analysis. Fred L. Mannering 3. Roger P. Roess, William R. McShane, Elena S. Prassas. 1997 2da Ed. Traffic Engineering. 4. Wolfgang S. Homburger, Jerome W. Hall, Roy C. Loutzenheiser, William R. Reilly. 2001 15 Ed. Fundamentals of Traffic Engineering. Wolfgang S. Homburger 5. JavierAracil. 1997. Dinmica de Sistemas. 6. Fsica Volumen I: MECANICA. Marcelo Alonso Edward 7. Matematicas. Luis Postigo

Referencias
[Ref01]: Wolfgang S. Homburger, Fundamentals of Traffic Engineering, 15 edicin 2001. [Ref02]: Rodrigo Gonzlez Rivera, Calibracin del Microsimulador AIMSUN para flujo ininterrumpido en la ciudad de Concepcin, octubre del 2005. [Ref03]: Juan Carlos Dextre, Modelo de Simulacin de Trfico Vehicular, Congreso Nacional de Ingeniera Civil Trujillo 1998. [Ref04]: Juan Carlos Dextre, Modelo de Simulacin de Trfico Vehicular, Congreso Nacional de Ingeniera Civil Trujillo 1998. [Ref05]: Jess Racero Moreno, Modelo de Cambio de Carril para un Simulador Microscpico de Trfico Urbano [Ref06]: Ogre3D manual, http://www.ogre3d.org/docs/manual/manual_4.html#SEC4 [Ref07]: Wikipedia, http://en.wikipedia.org/wiki/Physics_engine. [Ref08]: Ogre3D foro, http://www.ogre3d.org/phpBB2/. 138

[Ref09]: Wikipedia, http://es.wikipedia.org/wiki/PhysX. [Ref10]: Robin Southern, http://nxogre.org. [Ref11]: WikiBlender, http://wiki.blender.org/index.php/Manual.es/PartIV/UV_Mapping. [Ref12]: Francisco Navarro, http://www.escuelaconductores.cl/?showthread=3&idnot=5. [Ref13]: Manual de Demarcaciones Vialidad,

http://www.vialidad.gov.cl/areasde_vialidad/seguridad_vial/normas/manuales.htm#dem.

139

You might also like