48
Trabalho de Conclusão de Curso Simulação do controle de tráfego de automóveis em uma malha rodoviária urbana: Versão 3.0 Ederson André Savi Orientador: José Roque Voltolini da Silva

Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

  • Upload
    lykhue

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Trabalho de Conclusão de Curso

Simulação do controle de tráfego de

automóveis em uma malha rodoviária

urbana: Versão 3.0

Ederson André SaviOrientador: José Roque Voltolini da Silva

Page 2: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Roteiro

•Introdução

Objetivos do trabalho

•Fundamentação teórica

1ª versão de Freire (2004)

2ª versão de Ranghetti (2007)

•Desenvolvimento

•Implementação

•Conclusão

•Extensões

Page 3: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Introdução

•Simuladores, uma nova perspectiva no estudo dotrânsito.

•Buscam a melhor solução para a mobilidade deveículos.

•Também visam diminuir o quadro de poluiçãosonora, atmosférica e a fadiga dos usuários.

•Duas versões já desenvolvidas por Freire (2004) eRanghetti (2007) na Furb.

•Este trabalho propõem-se como uma extensão aosimulador de Freire (2004) e Ranghetti (2007).

Page 4: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Introdução

• Compatibilidade com o editor de malhas viárias dePerondi.

• Padrão de arquitetura Model View Controller (MVC).

Page 5: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Objetivos do trabalho

•Reformular a estrutura de dados.

•Disponibilizar a visualização em perspectiva.

•Permitir velocidades diferente por carro.

•Permitir definição de rotas para determinados carros.

Estender o trabalho desenvolvido por Freire (2004 – Versão 1) e Ranghetti (2007 –Versão 2)

Page 6: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

FUNDAMENTAÇÃO TEÓRICA

Trabalho de Conclusão de Curso

Page 7: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Simuladores de trânsito de veículos

Fundamentação Teórica

•Trânsito é “a utilização das vias por pessoas, veículos e animais, isolados ou em grupos, conduzidos ou não, para fins de circulação, parada, estacionamento e operação de carga ou descarga.” (DENATRAN, 2004).

•São ferramentas de análise do tráfego de bastante utilidade para a área civil.

Page 8: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Grafos

Fundamentação Teórica

• Grafos é um conjunto de arestas e vértices que podem ser interligados de várias maneiras.

• Mesma estrutura de grafos usada pelo Editor Gráfico de Malhas Viárias (EGMR) de Perondi(2007).

Page 9: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Grafos

Fundamentação Teórica

Estrutura de dados no EGMR de Perondi.

Page 10: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Computação gráfica e a API JoGL

Fundamentação Teórica

•A computação gráfica é a área da ciência da computação que estuda a geração, manipulação e interpretação de imagens por meio de computadores.

•JoGL é descrita como uma biblioteca que faz a ligação entre a linguagem Java e a OpenGL.

Page 11: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Computação gráfica e a API JoGL

•Com a JoGL é possível integrar a Abstract Window Toolkit (AWT) e Swing, que são as bibliotecas de interface gráfica para os usuários do ambiente Java, com a OpenGL.

•Atualmente a JoGL provê acesso à versão OpenGL 2.0.

Fundamentação Teórica

Page 12: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Protótipo de simulação do controle de tráfego de automóveis em uma malha

rodoviária urbana de Freire (2004)

•Simulador de trânsito de veículos em uma malha rodoviária.

•A malha rodoviária é carregada a partir de um arquivo texto.

•Visualização gráfica em duas dimensões.

•O trajeto do veículo é de forma aleatória.

Fundamentação Teórica

Page 13: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Fundamentação Teórica

Simulação de veículos trafegando, de Freire (2004)

Page 14: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Protótipo de simulação do controle de tráfego de automóveis em uma malha rodoviária urbana Ranghetti (2007)

•Disponibilizar um veículo guiado pelo usuário.

•Acrescentar a terceira dimensão, porém somente ortogonal.

•Verificar o aumento de consumo de memória durante a execução.

•Reformular a função de disponibilidade de trechos para os veículos.

Fundamentação Teórica

Page 15: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Fundamentação Teórica

Tela inicial do Simulador de Ranghetti (2007)

Page 16: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Protótipo de Editor Gráfico de Malha Rodoviária (EGMR) de Perondi (2007)

• Reescrever o código existente para a linguagem Java.• Incluir funcionalidades para o desenho de viadutos.• Adicionar ferramenta para o desenho de curvas.• Converter o atual formato do arquivo da malha para XML.• Imagem de satélite ou aerofotogrametria como fundo.• Oferecer a possibilidade de visualização da malha em 3D.

Fundamentação Teórica

Page 17: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Protótipo de Editor Gráfico de Malha Rodoviária (EGMR) de Perondi (2007)

<list><modelo.Trecho>

<i__cdTrecho>1</i__cdTrecho><i__cdRua>0</i__cdRua><inicio>

<selecionado>-1</selecionado><x>-39.63390951354041</x><y>-146.2994869189296</y><z>0.0</z>

</inicio><final__>

<selecionado>-1</selecionado><x>-39.59390951443448</x><y>135.97246431288752</y><z>0.0</z>

</final__>....

Fundamentação Teórica

Page 18: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Protótipo de Editor Gráfico de Malha Rodoviária (EGMR) de Perondi (2007)

... <f__Largura>9.0</f__Largura>

<mEsq>0</mEsq><mDir>0</mDir><nivel>0</nivel><quebra>0</quebra><vl__Quebra>0</vl__Quebra><cruza>false</cruza><selecionado>false</selecionado><semaforos/>

</modelo.Trecho>

Fundamentação Teórica

Page 19: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

DESENVOLVIMENTO

Trabalho de Conclusão de Curso

Page 20: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Requisitos do Sistema Proposto

Desenvolvimento

• O sistema deverá permitir a visualização do ambiente de simulação em perspectiva (Requisito Funcional - RF).

• O sistema deverá manter as funcionalidades do simulador apresentadas em versões anteriores (RF).

• O sistema deverá permitir velocidades diferentes para cada carro (RF).

Page 21: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Requisitos do Sistema

Desenvolvimento

• O sistema deverá permitir a definição de rotas para determinados carros (RF);

• O sistema deverá manter a estrutura de malhas rodoviárias utilizando grafos (Requisito Não Funcional - RNF);

• O sistema deverá ser implementado na linguagem Java e utilizar a biblioteca JoGL (RNF).

Page 22: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Especificação do Sistema

Desenvolvimento

•Casos de uso.

•Diagrama de modelo de classes.

Page 23: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Desenvolvimento

Casos de Uso

Page 24: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Representação da Malha Rodoviária

Desenvolvimento

• Quebra• Valor de quebra

• Utilizadas para impedir que veículos façam contornos indevidos em cruzamento de vias.

• Utilizado armazenamento da rota do veículo para impedir que ele entre em loop.

Page 25: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Representação da Malha Rodoviária

Desenvolvimento

0;1

0;1

0;1

0;1

0;1

0;1

1;12;1

1;1

1;1

Page 26: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Representação da Malha Rodoviária

Desenvolvimento

Page 27: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Posição automóvel na via

Desenvolvimento

• Os veículos somente param na via quando ossemáforo a frente já esta ocupado.• O cronometro do veículo para nesta situação.

Page 28: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Detectando colisões e alocando semáforo

Desenvolvimento

•Detectar semáforo do veículo queesta a frente.

Page 29: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Modelo Model-View-Controller (MVC)

Desenvolvimento

• A camada view representa a interface com o

usuário.

• A camada control realiza a ligação com a camada model, que vai implementar as ações do usuário e o tratamento dos eventos.

• A camada model representa as informações sobre o qual a aplicação opera, que neste projeto são relacionados com as rodovias e carros.

Page 30: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Diagrama de modelo de classes

Desenvolvimento

Page 31: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Camada View

Desenvolvimento

Page 32: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Camada Control

Desenvolvimento

Page 33: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Camada Model

Desenvolvimento

Page 34: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Implementação

Desenvolvimento

•O protótipo foi implementado no ambiente Eclipse Ganymede, usando a biblioteca gráfica JoGL em Java.

Rotinas implementadas:

•Visão em perspectiva 3D.

•Colisão.

•Deslocamento do veículo.

Page 35: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Visão em perspectiva 3D

Implementação

1. /**2. * Método usado para especificar o volume de visualização.3. */4. public void especificaParametrosVisualizacao() {5. // Especifica sistema de coordenadas de projeção6. gl.glMatrixMode(GL.GL_PROJECTION);7. // Inicializa sistema de coordenadas de projeção8. gl.glLoadIdentity();9.10. // Especifica a projeção perspectiva(angulo,aspecto,zMin,zMax)11. glu.gluPerspective(zoom, fAspect, 0.5, 1000);12.13. posicionaObservador();14. }

15. private float[] obsEye = new float[3];//perspectiva – camera16. private float[] imgCnt = new float[3];//perspectiva - camera

Page 36: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Visão em perspectiva 3D

Implementação

17. /**18. * Método usado para especificar a posição do observador virtual.19. */20. public void posicionaObservador() {21. // Especifica sistema de coordenadas do modelo22. gl.glMatrixMode(GL.GL_MODELVIEW);23. // Inicializa sistema de coordenadas do modelo24. gl.glLoadIdentity();25. // Especifica posição do observador e do alvo26. // eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ27. // eyeX, eyeY, eyeZ = define a posicao da camera28. // centerX, centerY, centerZ = define o centro da imagem, para 29.onde esta olhando30. // upX, upY, upZ = define qual eixo esta virado pra cima31. glu.gluLookAt(obsEye[0], obsEye[1], obsEye[2], imgCnt[0], 32.imgCnt[1], imgCnt[2], 0.0, 1.0, 0.0);33. }

Page 37: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Visão em perspectiva 3D

Implementação

Page 38: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Colisão

Implementação

• Cria uma silhueta em volta do veículo para a detecção de semáforos.

•Utiliza a classe java.awt.Rectangle.

•Método contains(x,y).

Page 39: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Deslocamento do veículo

Implementação

public boolean calcular() throws InterruptedException {//pega tempo de existencia do carro na viatimeNow = cronus.tempo();

//distancia em metrosposicaoNaPista = velocidade * (timeNow/1000D);

//calculado o quanto o carro se deslocou, ira calcular o seu ponto no plano

Ponto pAux = this.reta.posicaoNaReta(posicaoNaPista);...}

Page 40: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

OPERACIONALIDADE DA IMPLEMENTAÇÃO

Trabalho de Conclusão de Curso

Page 41: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Rotas para os veículos

Operacionabilidade da Implementação

Page 42: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Inicializar a simulação

Operacionabilidade da Implementação

Page 43: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Visão em perspectiva

Operacionabilidade da Implementação

Page 44: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Resultados e Discussão

Não foi implementado o calculo de distância entre dois pontos da via devido a falta de tempo e complexidade da rotina.

Page 45: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Tabela comparativa entre as versões

Protótipo de Freire

(2004)

Protótipo de Ranghetti

(2007)

Protótipo versão 3

Opção de carro guiado X X

Visualização em 3D - ortogonal X X

Visualização em 3D - perspectiva X

Definir velocidade para os veículos X X X

Veículos com diferentes velocidade X

Definir quantidade de veículos X X X

Iniciar, parar, pausar simulação X X X

Calcular comprimento da rua X X

Representação de viadutos X X

Determinar rotas X

Page 46: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Conclusão

O presente trabalho é uma extensão do simulador de tráfego de automóveis em uma malha rodoviária desenvolvido por Freire (2004) e estendido por Ranghetti (2007).

As extensões desenvolvidas foram a visualização em perspectiva 3D, variação da velocidade para determinados grupos de carros e a definição de rotas para uma quantidade de carros.

O simulador adequou-se a carregar a malha rodoviária criada pelo EGMR de Perondi (2007), inclusive todas as suas características.

Não foi idealizado nenhum tipo de controle para alterar a velocidade de qualquer veículo na malha durante a simulação

Page 47: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Extensões

Para continuação deste trabalho são sugeridas as seguintes extensões:

• Adequar a velocidade do veículo que esta atrás para a velocidade do veículo que esta a frente.

• Permitir a distribuição do processamento para vários computadores.

• Rotina para fazer estatísticas sobre o tráfego na malha.

• Melhorar a qualidade gráfica, fazendo uso de texturas e criando um terreno.

Page 48: Simulação do controle de tráfego de automóveis em uma ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2008-2-08-ap...Window Toolkit (AWT) e Swing, que são as bibliotecas de interface

Fim

Trabalho de conclusão de curso