95
Universidade Federal do Rio de Janeiro Escola Polit´ ecnica DepartamentodeEletrˆonicaedeComputa¸c˜ao Um Sistema de Localiza¸ ao e Previs˜ ao de Chegada dos Ve´ ıculos de Transporte P´ ublico Usando Redes IEEE 802.11 Autor: Vitor Borges Coutinho da Silva Orientador: Prof. Miguel Elias Mitre Campista, D.Sc. Coorientador: Prof. Lu´ ıs Henrique Maciel Kosmalski Costa, Dr. Examinador: Prof. Marcelo Gon¸calves Rubinstein, D.Sc. Examinador: Prof. Marcelo Luiz Drumond Lanza, M.Sc. DEL Agosto de 2013

Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

  • Upload
    buimien

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Universidade Federal do Rio de Janeiro

Escola Politecnica

Departamento de Eletronica e de Computacao

Um Sistema de Localizacao e Previsao de Chegada dos

Veıculos de Transporte Publico Usando Redes IEEE 802.11

Autor:

Vitor Borges Coutinho da Silva

Orientador:

Prof. Miguel Elias Mitre Campista, D.Sc.

Coorientador:

Prof. Luıs Henrique Maciel Kosmalski Costa, Dr.

Examinador:

Prof. Marcelo Goncalves Rubinstein, D.Sc.

Examinador:

Prof. Marcelo Luiz Drumond Lanza, M.Sc.

DEL

Agosto de 2013

Page 2: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO

Escola Politecnica - Departamento de Eletronica e de Computacao

Centro de Tecnologia, bloco H, sala H-217, Cidade Universitaria

Rio de Janeiro - RJ CEP 21949-900

Este exemplar e de propriedade da Universidade Federal do Rio de Janeiro, que

podera incluı-lo em base de dados, armazenar em computador, microfilmar ou adotar

qualquer forma de arquivamento.

E permitida a mencao, reproducao parcial ou integral e a transmissao entre bibli-

otecas deste trabalho, sem modificacao de seu texto, em qualquer meio que esteja

ou venha a ser fixado, para pesquisa academica, comentarios e citacoes, desde que

sem finalidade comercial e que seja feita a referencia bibliografica completa.

Os conceitos expressos neste trabalho sao de responsabilidade do(s) autor(es) e

do(s) orientador(es).

ii

Page 3: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

DEDICATORIA

A minha famılia.

iii

Page 4: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

AGRADECIMENTO

Agradeco a meu pai Julio e minha mae Ieda por sempre me apoiarem e por

investirem em minha formacao. Agradeco ainda a meus pais por minha educacao

como pessoa, pelos conselhos e pelo carinho. Agradeco a minha irma Patricia por

nao ter me ensinado a fazer brigadeiro. Brincadeiras a parte, agradeco a minha irma

por todos os conselhos e brincadeiras. Agradeco a toda minha famılia pela atencao

e carinho.

Agradeco a todos os amigos da faculdade, em especial Vitor Rosa, Vitor Antu-

nes, Nilson Carvalho, Jonathan Gois, e Alan Dantas, por tornarem a graduacao

mais divertida e agradavel. Agradeco a todos os amigos de fora da faculdade pelo

apoio e pela diversao, em especial Cristiano Barbosa, Luiza Ferreira, Pedro Freitas

e Ubirajara Ribeiro.

Agradeco a todos os professores que me deram aula, sem excecao, todos foram

essenciais a minha formacao. Agradeco a equipe do Grupo de Teleinformatica e

Automacao pelo apoio durante este trabalho. Em especial agradeco aos meus ori-

entadores Miguel Campista e Luıs Costa pela dedicacao e auxılio neste projeto.

Agradeco tambem a banca avaliadora pela atencao.

Por fim, agradeco a Deus por estar presente em minha vida.

iv

Page 5: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

RESUMO

Atualmente, as grandes cidades sofrem com os engarrafamentos gerados pelo cres-

cente volume de veıculos nas ruas. A principal causa desse problema se deve ao uso

excessivo de meios de transporte particulares, em detrimento ao uso dos transpor-

tes publicos de massa, como onibus e trens. Esse comportamento ocorre, pois as

pessoas julgam os transportes de massa desconfortaveis e nao confiaveis o sufici-

ente. Portanto, a baixa qualidade de servico oferecida aos usuarios, os repele do

uso dos transportes publicos de massa. Com isso, cada vez mais pessoas utilizam

veıculos particulares, agravando a situacao do transito nas cidades. Uma solucao

para resolver o problema do transito e prover o alargamento das vias mais utiliza-

das, aumentando a capacidade de escoamento do transito. Contudo, essa solucao

e temporaria, visto que soluciona o sintoma do problema e nao o problema em si.

Para efetivamente solucionar o problema do transito nas grandes cidades, uma al-

ternativa e estimular a utilizacao dos transportes de massa. Todavia, para isso e

necessario aumentar a qualidade de servico oferecida aos usuarios. O presente pro-

jeto atua em favor desse aumento atraves do desenvolvimento de um sistema que

calcula e entrega informacoes de horario de chegada de onibus aos pontos de parada

aos usuarios. Os usuarios ao receberem essa informacao podem se programar para

ir ao ponto de parada apenas quando estiver perto de seu meio de transporte che-

gar, aumentando o conforto dos usuarios. Para estimar o horario de chegada dos

onibus nos pontos de parada, o sistema desenvolvido utiliza informacoes recentes do

transito. Os resultados obtidos mostram que o sistema criado e capaz de atender as

demandas de uma cidade grande como o Rio de Janeiro.

Palavras-Chave: Sistemas de Transporte Inteligente, Estimativa de Hora de Che-

gada, Localizacao Automatica de Veıculo.

v

Page 6: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

ABSTRACT

Currently, major cities suffer from congestion generated by the growing volume of

vehicles on the streets. The main cause of this problem is due to the excessive use of

private means of transportation, rather than the use of mass public transportation

such as buses and trains. This behavior occurs because people judge mass transpor-

tation uncomfortable and not reliable enough. Therefore, the low quality of service

offered to users, repels them from the use of mass public transportation systems.

With this, more and more people use private vehicles, worsening the traffic situa-

tion in the cities. A solution to solve the traffic problem is to provide the extension

of the most used routes, increasing the flow capacity of the transit. However, this

solution is temporary, since it addresses the symptom of the problem and not the

problem itself. To effectively solve the traffic problem in big cities, an alternative is

to encourage the use of public mass transportation. However, to achieve this goal, it

is necessary to increase the quality of service offered to users. This project operates

in favor of this increase through the development of a system that calculates and

delivers bus arrival time information to users. With users recieving this informa-

tion, they can plan to go to the bus stop only when the buses are close to arrive,

increasing users comfort. To estimate the time of arrival of buses in bus stops, the

developed system uses the latest information about the traffic. The results show that

the system created is able to meet the demands of a big city like Rio de Janeiro.

Key-words: Intelligent Transportation Systems, Bus Arrival Time Estimation,

Automatic Vehicle Location.

vi

Page 7: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

SIGLAS

API - Application Programming Interface;

APTS - Advanced Public Transportation Systems;

ARP - Analisador de Redes de Petri;

ARM - Advanced RISC Machine;

AVL - Automatic Vehicle Location;

GB - Gigabyte;

GPS - Global Positioning System;

GTA - Grupo de Teleinformatica e Automacao;

ITS - Intelligent Transportation Systems;

MB - Megabyte;

RAM - Random Access Memory;

SSID - Service Set IDentifier;

UA - Unidade de Acostamento;

UFRJ - Universidade Federal do Rio de Janeiro;

USB - Universal Serial Bus;

V2I - Vehicle-to-Infrastructure.

vii

Page 8: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Sumario

1 Introducao 1

1.1 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Delimitacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.6 Organizacao do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Sistemas de Transporte Inteligente nos Meios de Transporte Publicos 5

2.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Entidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 Servicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.1 Localizacao Automatica de Veıculos . . . . . . . . . . . . . . . 7

2.3.2 Informacao ao Passageiro . . . . . . . . . . . . . . . . . . . . . 12

2.3.3 Gerenciamento de Sinalizacao de Transito . . . . . . . . . . . 13

2.3.4 Contagem Automatica de Passageiros . . . . . . . . . . . . . . 13

2.3.5 Sistema Eletronico de Cobranca . . . . . . . . . . . . . . . . . 14

2.3.6 WiFi para o Passageiro . . . . . . . . . . . . . . . . . . . . . . 14

2.3.7 TV nos Transportes . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3 Trabalhos Relacionados 16

3.1 Localizacao de Veıculos . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2 Previsao de Tempo de Chegada . . . . . . . . . . . . . . . . . . . . . 17

viii

Page 9: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

4 Arquitetura do Sistema 20

4.1 Visao Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.2 Entidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2.1 Central . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2.2 Unidade de Acostamento . . . . . . . . . . . . . . . . . . . . . 23

4.2.3 Onibus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.2.4 Cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.3 Comunicacoes entre Entidades . . . . . . . . . . . . . . . . . . . . . . 24

4.4 Modelo em Rede de Petri . . . . . . . . . . . . . . . . . . . . . . . . . 25

5 Implementacao do Sistema 31

5.1 Localizacao Automatica de Veıculos . . . . . . . . . . . . . . . . . . . 32

5.1.1 Informacao dos Onibus . . . . . . . . . . . . . . . . . . . . . . 36

5.1.2 Mapa das Linhas de Onibus . . . . . . . . . . . . . . . . . . . 37

5.1.3 Intervalos entre UAs . . . . . . . . . . . . . . . . . . . . . . . 43

5.2 Previsao de Chegada de Veıculos . . . . . . . . . . . . . . . . . . . . 45

5.2.1 Pagina de Requisicao de Estimativas . . . . . . . . . . . . . . 45

5.2.2 Calculo de Estimativas . . . . . . . . . . . . . . . . . . . . . . 45

5.2.3 Resposta aos Clientes . . . . . . . . . . . . . . . . . . . . . . . 52

5.3 Linguagens e Bibliotecas . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.4 Exemplos do Funcionamento do Sistema . . . . . . . . . . . . . . . . 54

5.4.1 Construcao Inicial de uma Linha de Onibus . . . . . . . . . . 54

5.4.2 Mudanca de Rota . . . . . . . . . . . . . . . . . . . . . . . . . 56

6 Resultados 63

6.1 Ambiente de Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.2 Linhas COPPEAD e Estacao UFRJ . . . . . . . . . . . . . . . . . . . 64

6.3 Tempo de Tratamento de Mensagens de Localizacao . . . . . . . . . . 67

6.3.1 Variacao da Quantidade de Onibus . . . . . . . . . . . . . . . 68

6.3.2 Variacao da Quantidade de Linhas de Onibus . . . . . . . . . 69

6.3.3 Variacao da Quantidade de UAs em uma Linha de Onibus . . 70

6.3.4 Cenario Rio de Janeiro . . . . . . . . . . . . . . . . . . . . . . 72

7 Conclusoes e Trabalhos Futuros 74

ix

Page 10: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Bibliografia 76

A Propriedades da Rede de Petri 80

A.1 Descricao da Rede de Petri para Simulador ARP . . . . . . . . . . . . 80

A.2 Saıda da Analise da Rede . . . . . . . . . . . . . . . . . . . . . . . . 81

x

Page 11: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Lista de Figuras

2.1 Exemplo de trilateracao bidimensional. . . . . . . . . . . . . . . . . . . 9

2.2 Exemplo de triangulacao bidimensional. . . . . . . . . . . . . . . . . . . 10

4.1 Entidades do sistema na arquitetura. . . . . . . . . . . . . . . . . . . . . 22

4.2 Comunicacoes entre entidades na arquitetura. . . . . . . . . . . . . . . . 24

4.3 Rede de Petri do servico de localizacao automatica de veıculos. . . . . . . 27

4.4 Rede de Petri do servico de previsao de chegada de onibus. . . . . . . . . 28

5.1 Mensagem enviada pela UA para o onibus. . . . . . . . . . . . . . . . . 32

5.2 Mensagem enviada pelo onibus para a UA. . . . . . . . . . . . . . . . . 33

5.3 Mensagem enviada pelo onibus para a Central. . . . . . . . . . . . . . . 34

5.4 Estruturas principais simplificadas do programa da Central. . . . . . . . . 35

5.5 Fluxograma do procedimento de atualizacao dos mapas das linhas de onibus. 38

5.6 Visualizacao de mapa criado pelo programa. . . . . . . . . . . . . . . . . 42

5.7 Pagina de solicitacao de estimativa. . . . . . . . . . . . . . . . . . . . . 46

5.8 Ponto de onibus e linha de onibus selecionados. . . . . . . . . . . . . . . 47

5.9 Estimativa devolvida ao Cliente. . . . . . . . . . . . . . . . . . . . . . . 48

5.10 Mensagem de requisicao enviada pelo Cliente para a Central. . . . . . . . 48

5.11 Mudanca de rota em curso. . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.12 Linha com ciclo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.13 Criacao do mapa da linha com primeira UA. . . . . . . . . . . . . . . . . 54

5.14 Mapa apos insercao da segunda UA. . . . . . . . . . . . . . . . . . . . . 55

5.15 Mapa apos insercao da terceira UA. . . . . . . . . . . . . . . . . . . . . 55

5.16 Mapa apos insercao da quarta UA. . . . . . . . . . . . . . . . . . . . . . 56

5.17 Mapa final da linha de onibus. . . . . . . . . . . . . . . . . . . . . . . . 56

5.18 Rota inicial da linha de onibus. . . . . . . . . . . . . . . . . . . . . . . 57

xi

Page 12: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

5.19 Onibus se move ate a UA-2. . . . . . . . . . . . . . . . . . . . . . . . . 57

5.20 Onibus alcanca a UA-5. . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.21 Onibus retorna ao ponto inicial. . . . . . . . . . . . . . . . . . . . . . . 58

5.22 Onibus chega na UA-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.23 Onibus se move ate UA-5. E a mudanca na rota e concretizada. . . . . . . 59

5.24 Onibus na UA-1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.25 Onibus na UA-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.26 Onibus na UA-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.27 Onibus na UA-1. E exclusao de UAs 3 e 4. . . . . . . . . . . . . . . . . 61

5.28 Onibus na UA-2. Atualizacao de peso para novo maximo. . . . . . . . . . 61

5.29 Rota final da linha de onibus. . . . . . . . . . . . . . . . . . . . . . . . 61

6.1 Ambiente de testes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.2 Rota da linha de onibus universitaria COPPEAD. . . . . . . . . . . . . . 65

6.3 Rota da linha de onibus universitaria Estacao UFRJ. . . . . . . . . . . . 66

6.4 Variacao da quantidade de onibus no sistema. . . . . . . . . . . . . . . . 69

6.5 Variacao da quantidade de linhas de onibus no sistema. . . . . . . . . . . 70

6.6 Variacao da quantidade de UAs no sistema. . . . . . . . . . . . . . . . . 71

6.7 Cenario Rio de Janeiro. . . . . . . . . . . . . . . . . . . . . . . . . . . 72

xii

Page 13: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Lista de Tabelas

3.1 Tecnicas de previsao de tempo de chegada. Adaptado de [1]. . . . . . 18

6.1 Estatısticas do teste das linhas COPPEAD e Estacao UFRJ. . . . . . 67

xiii

Page 14: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Capıtulo 1

Introducao

As grandes metropoles mundiais vem sofrendo com engarrafamentos gerados pelo

aumento de volume de veıculos. Um numero crescente de pessoas escolhe, diaria-

mente, se locomover pela cidade atraves de meios de transporte particulares, como

carros e motos. Ao menos no Brasil, a principal justificativa e que os meios de

transporte publicos nao sao confortaveis o suficiente e que os transportes particula-

res sao mais rapidos. O problema e que essa escolha aumenta o volume do transito,

gerando mais engarrafamentos e fazendo com que mais pessoas optem pelo uso de

transportes particulares, agravando mais ainda o problema.

O problema do transito nas grandes metropoles pode ser resolvido de maneira

paliativa atraves do aumento das vias, o que ja vem sendo feito nas principais cidades

do mundo. Contudo, essa solucao nao resolve o problema, mas sim os sintomas

criados em um primeiro momento, ja que o numero de veıculos particulares continua

aumentando. De maneira mais efetiva, uma solucao que agiria sobre a fonte dos

problemas, isto e, sobre o excesso de veıculos particulares, e o estımulo do uso

dos meios de transporte publicos. Entretanto, para atrair mais passageiros para

os sistemas de transporte publicos, estes devem ser melhorados, de forma a atingir

uma qualidade maior dos servicos prestados aos usuarios, bem como uma maior

confiabilidade. Uma vez que mais pessoas utilizem os veıculos de transporte publicos,

por exemplo, os onibus, os problemas do transito na cidade serao reduzidos. Essa

melhoria e consequencia direta da maior capacidade de transporte de pessoas por

unidade de area ocupada de via, se comparado aos veıculos particulares.

1

Page 15: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

1.1 Tema

O presente trabalho esta inserido na area de Sistemas Inteligentes de Transporte

(Intelligent Transportation Systems - ITS), mais especificamente na area de

Sistemas Avancados de Transporte Publico (Advanced Public Transportation

Systems - APTS). Os APTS vem sendo pesquisados e desenvolvidos com a intencao

de aumentar a qualidade de servico dos transportes publicos. O objetivo e atrair

mais passageiros para esses meios de transporte, reduzindo o volume de veıculos no

transito.

1.2 Delimitacao

Os meios de transporte publico usualmente seguem rotas predefinidas, exceto em

caso de acidentes, interdicao de vias ou desvios de rota realizados pelo condutor,

sejam esses intencionais ou por erro humano. Portanto, em condicoes normais de

operacao, efetuar o monitoramento dos veıculos a fim de estimar o tempo de chegada

em pontos de interesse futuros e computacionalmente viavel.

Este projeto final possui como premissa a existencia de meios de transporte publico

com rotas previamente definidas. Mais especificamente, os testes e simulacoes reali-

zados avaliam o caso dos onibus. O modelo computacional foca no monitoramento

dos veıculos em pontos de interesse. Nesses pontos, assume-se que existam equi-

pamentos IEEE 802.11 para coleta de dados e que o sistema realize a previsao de

chegada apenas para esses pontos. No caso dos onibus, os pontos de interesse sao

os pontos de onibus, onde os usuarios embarcam e desembarcam.

1.3 Justificativa

O presente projeto visa melhorar a qualidade dos transportes publicos atraves

da entrega de mais informacao acerca desses transportes aos seus usuarios. Ao

disponibilizar informacoes sobre o tempo que os proximos onibus levam para chegar

aos pontos de onibus, pode-se minimizar o tempo de espera dos usuarios. A pessoa,

ciente do horario do onibus, se programara para ir ate o ponto de onibus apenas

2

Page 16: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

quando estiver perto do onibus desejado chegar, provendo um melhor atendimento

ao usuario.

Em outros paıses, os sistemas de previsao de chegada de transporte publico sao

comuns. No Brasil, entretanto, ainda sao poucas as cidades com iniciativas seme-

lhantes. Logo, o presente projeto visa preencher essa lacuna.

1.4 Objetivos

O objetivo e propor e desenvolver um sistema que, utilizando roteadores sem-fio

de baixo custo instalados nos onibus e nos pontos de onibus, seja capaz de rastrear

e estimar os horarios de chegada dos onibus nos pontos requisitados pelos usuarios.

Mais especificamente, sao desenvolvidos:

1. um programa para roteadores sem-fio com baixa capacidade de processamento

que informe a posicao do onibus na infraestrutura da rede;

2. um programa que centralize as informacoes dadas pelos onibus monitorando

a trajetoria e estimando os tempos nos trechos das trajetorias, e;

3. uma interface para disponibilizar a informacao gerada aos usuarios dos meios

de transporte publico.

Ao final deste projeto, pretende-se oferecer uma alternativa para solucionar o

problema da espera prolongada dos usuarios por transportes publicos nos pontos de

parada devido a falta de informacao do servico.

1.5 Metodologia

Para atender os objetivos do projeto, inicialmente, foi necessario avaliar se a arqui-

tetura proposta funcionaria corretamente. Para realizar a avaliacao, foi desenvolvido

um modelo em redes de Petri que representa, simplificadamente, a arquitetura do

sistema. Em seguida, a rede desenvolvida foi submetida a um simulador, para que

as suas propriedades, assim como possıveis problemas, fossem identificados.

3

Page 17: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Apos a analise, a implementacao do sistema foi iniciada, comecando pela criacao

de uma versao simplificada do programa que centralizaria a informacao dos onibus,

onde somente os envios e recebimentos de mensagem foram programados. Em se-

guida, foram criados os programas para os roteadores sem-fio necessarios para in-

formar a posicao dos veıculos. Entao, para verificar se o programa central recebia

as mensagens que indicavam a posicao dos veıculos, testes preliminares foram reali-

zados.

Apos verificar que a comunicacao entre os roteadores e o programa central estava

funcionando, o programa central foi incrementado para tratar as mensagens recebi-

das dos onibus, de forma que os onibus fossem monitorados e os tempos nos trechos

das rotas estimados.

Ao final de tudo, criou-se uma pagina da Internet. Essa pagina e a interface

grafica do sistema, na qual os usuarios podem solicitar os calculos de estimativa que

eles desejarem e ainda receber as respostas as suas solicitacoes.

Apos a realizacao das etapas anteriores, o funcionamento do sistema foi avali-

ado por meio de simulacoes. Dentre as simulacoes, foi utilizado um prototipo com

roteadores, agregando as caracterısticas dos roteadores a simulacao e, portanto,

tornando-a mais realista. Os resultados mostram que o sistema e capaz de prover o

servico de estimativa de chegada dos onibus em metropoles como o Rio de Janeiro.

1.6 Organizacao do Texto

O Capıtulo 2 aborda os Sistemas Inteligentes de Transporte, sendo apresentados

os principais servicos visados por esses sistemas. O Capıtulo 3 apresenta trabalhos

relacionados do projeto. A arquitetura proposta bem como uma visao mais geral

do sistema sao apresentadas no Capıtulo 4. No Capıtulo 5, os detalhes da imple-

mentacao do sistema e exemplos de funcionamento sao explicitados. Ja o Capıtulo 6

mostra os testes aos quais o sistema foi submetido e seus resultados. Por fim, o

Capıtulo 7 apresenta as conclusoes e os trabalhos futuros.

4

Page 18: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Capıtulo 2

Sistemas de Transporte Inteligente

nos Meios de Transporte Publicos

2.1 Introducao

Na cidade do Rio de Janeiro, em 2011, aproximadamente dois milhoes e meio de

veıculos compunham a frota ativa [2]. Hoje, o controle e o monitoramento do trafego

criado por essa imensa frota sao realizados por agentes de transito auxiliados por

cameras espalhadas pela cidade. Os agentes dependem da existencia dessas cameras

para visualizar o panorama do transito na cidade e tomar decisoes baseadas no que

eles veem. Contudo, algumas vezes, situacoes que podem trazer complicacoes para o

transito da cidade ocorrem fora da abrangencia dessas cameras. Alem disso, muitas

vezes sao necessarias interferencias manuais para resolver os problemas de transito,

por exemplo, o destacamento de guardas de transito nas ruas para coordenar os

semaforos em perıodos de grande fluxo de veıculos.

Uma alternativa moderna as cameras para controle de transito sao os sistemas in-

teligentes de transporte (Intelligent Transportation Systems - ITS) que reunem

as tecnologias desenvolvidas nas ultimas decadas aplicadas no cenario dos sistemas

de transporte. Essas tecnologias incluem desde sensores ate comunicacoes sem-

fio [3]. O uso dessas novas tecnologias disponibiliza mais informacao, permitindo

que as decisoes sejam tomadas com maior seguranca. Alem disso, solucoes com-

putacionais estao sendo criadas para automatizar alguns processos do sistema de

5

Page 19: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

transporte, por exemplo, o pagamento de passagens e a contagem de passageiros, o

que alem de permitir parcialmente o gerenciamento remoto do sistema, tambem fa-

cilita e agiliza seu monitoramento. No presente trabalho, somente as solucoes de ITS

voltadas para meios de transporte publicos sao avaliadas, ou seja, apenas as solucoes

para sistemas avancados de transporte publico (Advanced Public Transportation

Systems - APTS) sao abordadas.

2.2 Entidades

A separacao por entidades e uma forma de facilitar a visualizacao dos papeis que

existem no contexto dos APTS. As entidades podem oferecer servicos para as outras

entidades e consumir os servicos criados pelas outras entidades, ou por ela propria.

Nos APTS, tres entidades podem ser distinguidas [4]: Cliente, Operador e Veıculo.

O Cliente e o principal consumidor de servicos do APTS. Neste trabalho, o Cliente

e caracterizado como uma pessoa que tem a intencao de usar os meios de transporte

publico e os servicos disponibilizados pelos Operadores do APTS.

O Veıculo e a principal fonte de informacao dos APTS. O Veıculo e tambem o

local onde alguns dos servicos criados pelos Operadores sao disponibilizados para os

Clientes. Usualmente, os Veıculos realizam o sensoriamento de informacoes como

posicao geografica, numero de passageiros em seu interior, velocidade, quantidade

de combustıvel, consumo de combustıvel, entre outras.

Os Operadores sao as empresas publicas ou privadas que atraves do processamento

das informacoes recebidas dos Veıculos e de outras origens externas ao sistema ofere-

cem servicos ou monitoram e controlam o sistema de transporte. As fontes externas

sao necessarias, pois fatores fora do sistema podem influenciar muito no transito

urbano. Por exemplo, em dias de chuva intensa o transito geralmente fica mais

lento, ja que o condutor e forcado a reduzir a velocidade e aumentar a distancia de

seguranca frontal, ou seja, a distancia ate o veıculo a sua frente.

6

Page 20: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

2.3 Servicos

De maneira geral, os ITS tratam o gerenciamento do transito como um todo.

Contudo, como ja mencionado, este trabalho se restringe a avaliar os ITS somente

no contexto dos meios de transporte publicos. Nesse cenario especıfico, os benefıcios

dos ITS se estendem desde os usuarios ate as empresas que realizam o transporte em

si. Os benefıcios sao fruto dos servicos prestados pelos operadores, sejam os servicos

para atender os requisitos dos usuarios, sejam eles para atender as demandas das

empresas. Nesta secao, os servicos mais importantes providos pelos sistemas de

transportes inteligentes sao brevemente descritos.

2.3.1 Localizacao Automatica de Veıculos

Quando nao se utilizam sistemas de localizacao automatica de veıculos, o monito-

ramento dos veıculos, e consequentemente do transito, e realizado tendo como base

imagens obtidas por cameras espalhadas pela cidade em um processo nao automa-

tizado. Tal fato prejudica a granularidade da informacao obtida pelos sistemas de

monitoramento tradicionais sobre a distribuicao e posicionamento dos veıculos na

cidade. Um servico de Localizacao Automatica de Veıculos (Automatic Vehicle

Location - AVL), quando utilizado, possibilita uma granularidade superior da in-

formacao, permitindo aos ITS avaliar melhor a real situacao do transito na cidade,

e com isso tomar decisoes mais seguras e melhores.

O conhecimento da posicao de cada veıculo cria, ainda, a possibilidade de novos

servicos serem oferecidos aos usuarios dos transportes publicos, por exemplo, um

servico de distribuicao de conteudos baseado na posicao dos veıculos. Nesse sistema

seriam transmitidos notıcias do bairro ou outros assuntos de interesse da regiao

ao onibus, onde poderiam ser vistos pelos usuarios em televisores instalados nos

veıculos.

O primeiro passo para a construcao de um sistema AVL e determinar a localizacao

geografica do veıculo. Existem diversos metodos para localizar um dado objeto no

espaco, e eles se dividem basicamente em tres grandes areas [5] que serao explicadas

posteriormente:

7

Page 21: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

• radio localizacao;

• dead reckoning ;

• localizacao por proximidade.

O segundo passo para a construcao de um sistema de localizacao automatica de

veıculos para sistemas inteligentes de transporte e enviar a informacao da localizacao

do veıculo obtida para os Operadores, para que estes usem a informacao para moni-

torar os veıculos ou ainda criar novos servicos com base na informacao disponıvel. As

redes mais usadas para disponibilizar essa informacao sao as redes celulares moveis,

atraves do uso do 3G e do 4G; e as redes sem-fio, atraves do uso de pontos de acesso

com o padrao IEEE 802.11 distribuıdos pela cidade.

2.3.1.1 Radio localizacao

Os sistemas de localizacao via radio podem ser classificados como unilaterais e

multilaterais.

Os sistemas de localizacao via radio unilaterais, de maneira geral, utilizam si-

nais de radiofrequencia de diferentes fontes conhecidas para determinar a posicao

geografica de um no em relacao as fontes. Os sinais de radio sao recebidos pelo no

a ser localizado, e quando isso ocorre, ele calcula a distancia dele ate cada uma das

fontes emissoras dos sinais recebidos. Apos o calculo das distancias, sera realizado

um processamento conhecido como trilateracao para determinar de fato a posicao

do no em relacao as fontes dos sinais.

A tecnica de trilateracao se baseia em um princıpio geometrico e nas distancias

entre o no a ser localizado e as fontes de sinal. O princıpio geometrico usado na

trilateracao se baseia na ideia da circunferencia, que e o lugar geometrico em que

todos os pontos de um plano que se localizam a uma mesma distancia de um ponto

fixo, denominado o centro da circunferencia, recaem.

Usando o princıpio citado e a informacao da distancia entre o no e a fonte de

um sinal, pode-se tracar uma circunferencia com raio igual a distancia calculada e

8

Page 22: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Fonte 1

R1

Fonte 2

R2

Fonte 3

R3

Figura 2.1: Exemplo de trilateracao bidimensional.

o centro na posicao da fonte de sinal. A circunferencia tracada representa, entao,

todos os possıveis pontos que o no pode estar em relacao a posicao da fonte do

sinal. Se o procedimento anterior for aplicado para duas fontes de sinal distintas,

passam a existir duas circunferencias interceptando a posicao real do no. Como

as circunferencias nao sao coincidentes, existirao no maximo dois pontos possıveis

nos quais as circunferencias se interceptam, esses pontos representam os pontos do

espaco onde o no pode estar. Entao, para determinar com certeza a posicao do no

no espaco bidimensional, e necessario aplicar o procedimento mais uma vez, para

uma terceira fonte distinta, o que ira determinar qual dos dois pontos anteriores

era a localizacao real do no. Como existem erros associados as distancias medidas,

no final do procedimento ao inves de obter-se um ponto exato, obtem-se uma area

na intersecao das tres circunferencias, representando as posicoes geograficas mais

provaveis de se encontrar o no, como ilustrado na Figura 2.1.

O processo descrito anteriormente se trata da localizacao de um objeto em um

plano para um sistema unilateral. Entretanto, o processo pode ser facilmente es-

tendido para a localizacao de um objeto no espaco tridimensional, bastando para

isso utilizar esferas ao inves de circunferencias e quatro fontes distintas de sinal ao

inves de tres. A localizacao efetuada e em relacao as fontes de sinal usadas, no

caso especıfico em que essas fontes estao fixas em uma posicao conhecida do espaco,

como latitude e longitude, ou se movem em uma trajetoria pre-estabelecida. Ao

9

Page 23: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Receptor 1

Receptor 2

Receptor 3

Figura 2.2: Exemplo de triangulacao bidimensional.

determinar-se a posicao em relacao as fontes, determina-se tambem a posicao em

relacao a Terra.

Nos sistemas de localizacao via radio multilaterais, ao inves de o no a ser localizado

receber sinais de diferentes fontes conhecidas para determinar sua posicao geografica,

diversos receptores de posicao geografica conhecida recebem um sinal transmitido

pelo no e atraves das diferencas na recepcao desse sinal os receptores calculam a

posicao do no. A tecnica usada nesses sistemas para localizar o no no espaco e a

triangulacao.

A triangulacao se baseia na medicao de angulos ao inves da medicao de distancias.

Na triangulacao, os receptores devem descobrir a direcao de onde o sinal recebido

partiu. Duas linhas de direcao distintas definem um ponto, mas como sempre exis-

tem erros nas medicoes, uma terceira linha de direcao deve ser usada para definir a

posicao do no como uma area, um triangulo, que abrange os locais mais provaveis

do no estar, como ilustrado na Figura 2.2.

Diversos processos conhecidos e estabelecidos usam a radio localizacao, entre eles

estao o GPS e sistemas de localizacao usando torres de telefonia movel. O GPS e

um exemplo de sistema unilateral, enquanto que os sistemas que usam as torres de

telefonia movel sao multilaterais.

10

Page 24: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

2.3.1.2 Dead reckoning

Nessa tecnica, a posicao do ponto de origem do objeto rastreado e conhecida, ela

e a condicao inicial do sistema. A partir desse ponto, sensores no proprio objeto

rastreiam os movimentos. Assim, as informacoes de distancia percorrida e direcao

sao sensoriadas permitindo que a localizacao do objeto seja conhecida em relacao a

origem a todo o momento.

A vantagem dessa abordagem e que o objeto nao depende de nenhum elemento

externo alem da condicao inicial para se localizar. A condicao inicial, por sua vez,

geralmente e dada por um sistema de radio localizacao, como o GPS. O grande

problema desses sistemas e o acumulo de erro. Especificamente para o caso de um

veıculo, se a distancia percorrida for calculada no veıculo usando um odometro, o

raio das rodas deve ser constante. Todavia, isso nao acontece sempre, pois o raio das

rodas varia com mudancas de temperatura, com mudancas no peso dos veıculos e

com o esvaziamento das proprias rodas, que acontece com o tempo. Essas variacoes

se acumulam a cada rotacao das rodas, produzindo erros no calculo da distancia.

Mesmo no caso de serem utilizados acelerometros, a acumulacao de erro acontece.

Os erros citados podem ser reduzidos se existirem outras referencias no percurso

dos veıculos. Referencias adicionais limitam o acumulo dos erros de integracao ao

trecho entre duas referencias, ja que ao alcancar uma nova referencia descarta-se o

erro acumulado.

Sistemas de navegacao inercial sao sistemas que se baseiam na tecnica Dead rec-

koning e que utilizam giroscopios em conjunto com os acelerometros. Esses sistemas

estao presentes em avioes modernos e sao usados quando os sistemas dependentes

de fatores externos param de funcionar. Isso e realizado para que ainda seja possıvel

estimar a posicao dos avioes em casos de pane.

2.3.1.3 Localizacao por proximidade

Nos sistemas que efetuam localizacao por proximidade a posicao do objeto e deter-

minada descobrindo qual e o dispositivo de controle mais proximo do objeto. Nesses

sistemas, dispositivos de controle sao espalhados estrategicamente pela cidade, nos

11

Page 25: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

pontos de interesse onde se quer descobrir a localizacao do objeto. Os dispositivos

de controle podem ser ativos ou passivos, variando desde sensores magneticos ou

oticos espalhados pela cidade, ate radios transmissores e receptores.

Os metodos de localizacao por proximidade podem funcionar de formas distintas.

O objeto pode possuir um papel ativo ou passivo na sua localizacao. Quando o

objeto possui papel ativo, ele determina sua propria posicao em relacao a rede de

sensores espalhada. Nesse caso os sensores da rede emitem periodicamente algum

tipo de mensagem com sua identificacao, e o objeto descobre sua posicao na rede de

sensores ouvindo o canal de comunicacao em busca dessas mensagens. No caso de

o objeto possuir papel passivo na sua localizacao, e o objeto que emite mensagens

periodicamente com sua identificacao, sendo a rede de sensores responsavel por

escutar o canal em busca dessas mensagens, localizando o objeto.

A forma de localizacao utilizada neste trabalho e a localizacao por proximidade,

com o veıculo possuindo papel ativo na sua localizacao. A localizacao por proximi-

dade e escolhida por possibilitar o uso de um mesmo tipo de dispositivo na fase de

localizacao do veıculo e na fase do envio de informacao aos Operadores. Isso reduz

a complexidade e o custo do sistema em relacao as outras formas de localizacao,

que precisam de um tipo de dispositivo na fase de localizacao e outro na fase do

envio de informacao aos Operadores. Escolheu-se fazer o veıculo possuir papel ativo

em sua localizacao, pois essa forma e mais simples de ser aplicada no cenario deste

trabalho. Neste projeto os dispositivos utilizados sao roteadores sem-fio.

2.3.2 Informacao ao Passageiro

Os clientes dos transportes publicos, hoje, nao tem informacoes acerca do trans-

porte a sua disposicao. Utilizando os APTS, os clientes podem ter acesso a in-

formacoes como estimativa para o transporte desejado chegar onde o cliente esta ou

mesmo no destino e numero de passageiros nos veıculos. As estimativas sao possıveis

gracas ao servico de localizacao automatica de veıculos, que permite que os clientes

saibam quando o transporte ira chegar e nao percam tempo desnecessariamente.

O numero de passageiros nos veıculos pode ser usado pelos clientes para decidir se

12

Page 26: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

devem ir para o ponto de onibus ou se devem aguardar um transporte mais vazio.

Essas informacoes ajudam o cliente a se programar, e aumentam a confiabilidade

dos sistemas de transporte publicos.

2.3.3 Gerenciamento de Sinalizacao de Transito

O gerenciamento de sinalizacao de transito entrega aos operadores um poder maior

para atacar os problemas do transito. Nesse tipo de controle, os operadores podem

modificar os intervalos de abertura e fechamento de semaforos, aumentando ou di-

minuindo a prioridade dos fluxos de veıculos das vias. Por exemplo, suponha que

em um cruzamento, uma via esteja com trafego maior que o da outra via do cru-

zamento. Nesse caso, os operadores podem modificar os intervalos de abertura e

fechamento dos semaforos do cruzamento, aumentando o tempo que a via congesti-

onada permanece com o sinal aberto. Como consequencia, o intervalo de tempo que

a via com transito menos intenso permanece fechada aumenta, permitindo um maior

escoamento do trafego. Outro possıvel uso para esse servico seria no caso da pre-

senca de um veıculo com prioridade, por exemplo, ambulancias, carros do corpo de

bombeiros ou da polıcia. Nesse cenario, o operador poderia controlar os semaforos

de forma a agilizar a chegada desses veıculos em seus destinos. De forma similar, o

presente servico tambem pode ser utilizado para priorizar vias com maior numero

de veıculos de transporte publico. O servico de gerenciamento das sinalizacoes de

transito pode ser automatizado, sendo os intervalos de abertura e fechamento dos

sinais controlados por computadores [6].

2.3.4 Contagem Automatica de Passageiros

Atraves de sensores dentro dos veıculos, e possıvel contabilizar o numero de pes-

soas dentro deles de forma automatica. Esse servico e interessante tanto para as

empresas que oferecem transportes publicos quanto para o publico que utiliza essa

forma de transporte. Para o primeiro grupo, o servico oferece uma forma de controlar

os ganhos e obter estatısticas, como o numero de pessoas que utilizam as diferentes

linhas de onibus da empresa nas diferentes horas do dia. Com isso a empresa poderia

realocar seus onibus para as linhas mais usadas no momento, aumentando sua qua-

lidade de servico. O aumento da qualidade beneficia diretamente o segundo grupo,

13

Page 27: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

ou seja, os usuarios. Alem disso, se o numero de passageiros dentro dos veıculos for

divulgado, os usuarios poderao escolher esperar por onibus mais vazios.

2.3.5 Sistema Eletronico de Cobranca

O servico de cobranca eletronica ja esta disponıvel em todos os onibus da cidade

do Rio de Janeiro. Com esse servico, o usuario compra ou recarrega um cartao

inteligente com um determinado saldo, e ao entrar no veıculo, passa o cartao em um

dispositivo eletronico que desconta o valor da passagem do saldo presente no cartao.

Esse servico facilita o controle financeiro das empresas de onibus; torna os onibus

menos suscetıveis a assaltos para roubo do dinheiro em posse do trocador; aumenta

a velocidade da cobranca dos passageiros, pois o passageiro nao precisa receber o

troco; viabiliza a existencia de sistemas como o Bilhete Unico Carioca, que prove

descontos aos usuarios que precisam utilizar mais de um onibus num curto intervalo

de tempo; e ainda permite ao usuario visualizar o historico de operacoes que ele

efetuou [7].

2.3.6 WiFi para o Passageiro

As pessoas desejam estar conectadas em rede a todo o momento e em qualquer

lugar. Essa premissa nao deve ser diferente no interior de meios de transporte

publicos. Atualmente, alguns passageiros ja acessam a Internet por meio de redes

celulares 3G ou 4G. Porem, ao oferecer o servico de internet sem-fio ao passageiro

usando o padrao IEEE 802.11, pode-se aumentar a razao dado obtido por energia

consumida [8], o que e de primordial importancia para o usuario caso ele esteja

usando um smartphone ou um tablet para acessar a Internet. Alem da vantagem

energetica para o usuario, com a disponibilizacao desse servico gratuitamente, o

custo do acesso a Internet dos usuarios diminuiria. Logo, oferecer servico de acesso

a Internet dentro dos veıculos, aumenta a qualidade do servico prestado e o conforto

do passageiro, o que atrai mais pessoas para o transporte publico.

14

Page 28: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

2.3.7 TV nos Transportes

Outro servico voltado para o aumento da qualidade de servico e do conforto do

passageiro e o uso de televisoes nos meios de transporte. Inserir televisoes nos

meios de transportes e uma forma de manter o cliente informado, entrete-lo, tornar

seu tempo gasto no transito uma experiencia menos estressante. Esse servico pode

ser financiado por propagandas veiculadas no proprio televisor, inclusive algumas

empresas de onibus da cidade do Rio de Janeiro ja oferecem esse servico [9].

2.4 Conclusao

Neste capıtulo foram apresentados os principais servicos dos ITS relacionados aos

meios de transporte publicos. Este projeto propoe um servico de informacao ao

passageiro, onde a previsao de chegada dos onibus e divulgada. Alem disso, como o

calculo da previsao de chegada de um veıculo requer o conhecimento da localizacao

dele, um sistema de localizacao automatica de veıculo tambem e desenvolvido. O

proximo capıtulo apresenta os trabalhos relacionados ao projeto.

15

Page 29: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Capıtulo 3

Trabalhos Relacionados

Neste capıtulo, os trabalhos relacionados ao projeto sao apresentados.

3.1 Localizacao de Veıculos

A localizacao de veıculos e um tema estudado ha muitos anos no contexto de ITS.

Como ja enunciado no capıtulo anterior, existem diversas tecnicas de rastreamento

de veıculos.

Muitos trabalhos na area de sistemas de transporte inteligentes utilizam a loca-

lizacao por meio de GPS, devido a grande acuracia alcancada por esses sistemas.

Contudo, sistemas de GPS exigem equipamentos especializados, e no contexto de

ITS, exigem que alguma tecnologia de comunicacao seja acoplada ao modulo GPS

para que a informacao da posicao do veıculo seja divulgada. Essa combinacao torna

o sistema mais complexo e custoso.

Em oposicao ao uso comum do GPS, tecnicas de localizacao que utilizam as

proprias tecnologias de comunicacao para localizar os veıculos vem sendo estudadas.

Uma das vantagens do uso desses sistemas e que, alem de prover a localizacao dos

veıculos, as redes criadas poderiam ser utilizadas para outros fins. Os sistemas mais

simples de localizacao desse tipo funcionam como sistemas de localizacao por proxi-

midade, sendo a localizacao do veıculo dada apenas pela informacao sobre qual no

da rede ele esta conectado. Em [10], e proposto um sistema que utiliza a tecnologia

de comunicacao sem-fio ZigBee para localizar onibus. A vantagem da proposta e

16

Page 30: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

o custo da tecnologia ZigBee ser baixo. Porem, para disseminar a informacao da

localizacao dos onibus utilizou-se outra rede, a GPRS, o que acaba por tornar o

sistema mais complexo e custoso. O ideal seria utilizar a tecnologia de comunicacao

escolhida para localizar e disseminar a informacao criada.

A precisao dos sistemas de localizacao que usam tecnologias de comunicacao des-

critos ate agora e inferior a apresentada pelos sistemas de posicionamento via satelite.

Contudo, tecnicas para aumentar a precisao desses sistemas vem sendo propostas.

Por exemplo, em [11], o veıculo alvo mede a potencia do sinal recebido de varios

pontos de acesso em seu entorno, e atraves de uma rede neural criada e calibrada no

trabalho, realiza o posicionamento do veıculo. Os resultados do trabalho mostram

que o sistema criado obteve erros medios quadraticos de 7,02 metros. Esse resultado

se aproxima do alcancado por sistemas de posicionamento via satelite, que e de 4

metros [12]. O ponto fraco dessa forma de posicionamento esta na calibracao da

rede neural, que e um processo longo para uma cidade inteira.

3.2 Previsao de Tempo de Chegada

A partir dos dados entregues por sistemas de localizacao, pode-se prever o tempo

que um dado veıculo chegara a um lugar especıfico. As tecnicas para o calculo das

previsoes vem sendo amplamente estudadas, ja que essas previsoes sao usadas em

sistemas inteligentes de transporte, aumentando a confiabilidade desses sistemas.

As principais tecnicas para calcular as previsoes podem ser vistas na Tabela 3.1.

Os metodos baseados em dados de historico preveem o tempo de chegada de

acordo com informacoes de dias anteriores, semanas e ate meses [13]. A partir des-

sas informacoes, uma media das informacoes passadas e realizada, de dados que

pertencem ao mesmo perıodo de um mesmo dia da semana. Essas estimativas fun-

cionam bem em circunstancias esperadas, mas nao modelam situacoes nao cıclicas,

como acidentes. Alem disso, um volume de informacoes passadas muito grande e

necessario para que essa tecnica seja implantada.

17

Page 31: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Tabela 3.1: Tecnicas de previsao de tempo de chegada. Adaptado de [1].

Tecnica Autor(es) Comentarios

Metodos comManolis e Kwstis [13]

Preve o tempo de viagem em um tempobase em dados particular como o tempo medio de viagemde historico para o mesmo perıodo historicamente.Abordagem de Lin e Zeng [14], Assume que o tempotempo real Karbassi e Barth [15] futuro de viagem sera o

mesmo que o do presente.Analise de D’Angelo et al. [16], Assume que padroes historicos seseries temporais Ishak e Al-Deek [17] manterao no futuro segundo um modelo.Modelos de Rice e van Zwet [18], Preve a variavel dependente baseadaregressao Frechette e Khan [19] numa funcao formada por um

conjunto de variaveis independentes.Tecnicas de Chien et al. [20], Previsao baseada em dadosinteligencia Vanajakshi e Rilett [21], de exemplo. Necessario um grandeartificial Jeong e Rilett [22] banco de dados para previsao acurada.Abordagem Vanajakshi et al. [23], Estabelece relacionamentos entre as variaveisbaseada Shalaby e Farhan [24] e corrobora usando observacoes em campo.em modelo Nao e especıfico para regiao ou dados.

Ao contrario dos metodos baseados em dados de historico, as abordagens de tempo

real utilizam apenas as informacoes do proprio dia, modelando melhor situacoes

particulares do dia, como acidentes. As abordagens de tempo real basicamente

assumem que o tempo que um dado veıculo leva em um dado percurso e igual ao

tempo que um outro veıculo que ja fez esse trajeto levou [14]. A desvantagem desses

metodos e que eles sao muito afetados por perdas dos dados, por exemplo, devido a

falha de equipamentos ou perdas na recepcao[1].

Assim como os metodos baseados em dados de historico, modelos de series tem-

porais assumem que o padrao do transito se mantera historicamente. Contudo, essa

forma de previsao relaciona os dados de historico com as estimativas atraves de mo-

delos [16], possivelmente nao lineares, e nao atraves de medias. Com isso, variacoes

nos dados historicos ou mudancas no relacionamento entre os dados historicos e o

tempo real podem causar pouca precisao nas previsoes resultantes [16].

Diferentemente das tecnicas citadas anteriormente, as tecnicas que utilizam mo-

delos de regressao nao assumem que o transito depende de dados passados. Essas

tecnicas realizam a previsao atraves de um conjunto de variaveis independentes es-

colhidas para modelar o transito. O problema desses modelos e que nos sistemas

18

Page 32: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

de transporte as variaveis sao muito intercorrelacionadas, limitando a aplicacao da

tecnica [20].

Outros metodos baseados em modelos tem sido estudados bastante por nao serem

especıficos para uma regiao. Dentre esses metodos, se destacam os que utilizam

filtros de Kalman, pois estes tem o potencial de se adaptar as flutuacoes do transito

com parametros dependentes do tempo [25]. Contudo quando os dados de localizacao

sao temporalmente esparsos, essa abordagem nao funciona bem [15].

Por ser difıcil modelar matematicamente o comportamento do transito, metodos

que usam inteligencia artificial vem sendo desenvolvidos. Esses metodos geralmente

utilizam redes neurais criadas para realizar as previsoes. Isso e feito devido as suas

habilidades de resolver relacionamentos nao lineares complexos e emular o processo

de aprendizagem do cerebro humano [25]. O principal problema dessas tecnicas e

a necessidade de enormes quantidades de informacao no processo de aprendizagem

das redes [1].

Neste projeto de conclusao de curso, os dados de localizacao sao esparsos, ja que

a posicao dos veıculos somente e conhecida nos pontos de acesso espalhados pela

via. Alem disso, nao ha uma base de dados com informacoes de localizacao antigas.

Devido a essas restricoes, neste projeto, a tecnica usada para previsao de tempo de

chegada e a de tempo real.

19

Page 33: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Capıtulo 4

Arquitetura do Sistema

4.1 Visao Geral

O trabalho desenvolvido divide-se em duas partes. A primeira e um servico de ITS

de localizacao automatica, ja que nao precisa de uma ordem explıcita para localizar

um veıculo. A segunda e um servico de ITS de estimativa de chegada de onibus aos

pontos de parada que se baseia em informacoes da primeira parte.

A localizacao automatica de veıculos desenvolvida tem foco em veıculos de trans-

portes publicos, mais especificamente em onibus, mas pode ser estendida para outros

veıculos. O cenario da aplicacao e o de redes veiculares e o servico se baseia na tecnica

de localizacao por proximidade, onde a localizacao por proximidade e realizada em

relacao a pontos de acesso espalhados pela via. O onibus ao se aproximar de um

desses pontos de acesso, se conecta a ele. Em seguida, ocorre uma troca de men-

sagens, onde o onibus se identifica para o ponto de acesso e vice-versa. Terminada

a troca de mensagens anterior, o onibus envia uma mensagem a um computador

central informando a qual ponto de acesso ele esta conectado.

Ao localizarem-se os onibus em relacao aos pontos de onibus e sabendo a rota que

os onibus de uma determinada linha percorrem, pode-se oferecer o servico de estima-

tiva de horario de chegada de onibus em todos os pontos de onibus. Basta, para isso,

criar um mapa das linhas de onibus, a partir das informacoes da posicao dos onibus

em relacao aos pontos de parada, e usar esse mapa em conjunto com o historico de

perıodos que os onibus demoram entre dois pontos de parada consecutivos da linha.

20

Page 34: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

O conhecimento do mapa da linha de onibus e essencial para o servico de estimacao

de hora de chegada. A abordagem inicial, para suprir essa necessidade, e supor que

a rota dos onibus nao se altera nunca, e com isso a rota das linhas de onibus e

armazenada em um arquivo que e lido sempre que necessario. Porem, essa suposicao

pode falhar, caso mudancas temporarias na rota ocorram, por exemplo, em caso

de fechamento de uma via devido a um acidente. Esse problema ja havia sido

percebido nos trabalhos [26] e [27] anteriores e nao havia sido abordado. Por isso,

neste trabalho, os mapas das linhas de onibus serao criados dinamicamente, com o

intuito de evitar os problemas levantados nos trabalhos anteriores.

4.2 Entidades

No sistema, existem quatro entidades, sao elas:

• Central;

• Unidade de Acostamento (UA);

• Onibus;

• Cliente.

Pode-se estabelecer uma relacao entre as entidades do sistema, mencionadas acima,

e as entidades dos APTS citadas no Capıtulo 2. As entidades do sistema Central e

Unidade de Acostamento sao gerenciadas por um Operador, por exemplo, a secreta-

ria de transporte da cidade onde o sistema esta sendo instalado, outra organizacao

governamental ou ainda uma empresa privada. A entidade Onibus do sistema cor-

responde a entidade Veıculo caracterizada no Capıtulo 2, e a entidade Cliente do

sistema corresponde a entidade Cliente do Capıtulo 2. As entidades do sistema estao

ilustradas na Figura 4.1.

4.2.1 Central

A Central e um computador que executa o programa principal do sistema. A

Central possui todas as informacoes do sistema, os mapas criados dinamicamente,

os dados da localizacao de cada veıculo e os historicos dos tempos entre dois pontos

21

Page 35: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Internet

Central Unidade de Acostamento

ClienteÔnibus

Figura 4.1: Entidades do sistema na arquitetura.

consecutivos. Historicos esses que sao usados para oferecer estimativas sobre as che-

gadas dos onibus aos Clientes. O pseudocodigo simplificado do programa executado

na Central pode ser visto a seguir:

Entrada: mensagem "m" recebida do onibus "b" servindo a linha "l"

Lista de Onibus: B

// Cada linha de onibus contem o seu mapa, que e uma sequencia de UAs.

Lista de Linhas de Onibus: L

// T associa um trecho da linha de onibus ao tempo gasto para percorre-lo

Mapa Associativo <Trecho, Tempo> T

Busca b em B

Se achou b E b n~ao mudou de linha E mensagem anterior foi recebida

Armazena tempo gasto no trecho entre a UA anterior e a UA atual em T

Se n~ao achou b

Cria onibus e adiciona em B

Atualiza informac~ao de localizac~ao do onibus b com as UAs de m

Busca linha de b em L

Se achou a linha l

Atualiza o mapa da linha l usando as UAs de m

Sen~ao

Cria mapa da linha l usando a UA atual como ponto inicial

Se a linha l n~ao e circular

Para cada onibus cadastrado b’ servindo a linha l faca

Enquanto o onibus b’ n~ao esta no ponto final faca

Acumule o tempo gasto por b’ no trecho da ultima UA ate a atual

// No fim do calculo a estimativa de cada UA deve ser a mınima,

// representando o tempo para o onibus mais proximo chegar na UA.

Se estimativa do onibus b’ chegar < estimativa da UA atual

estimativa da UA atual = estimativa do onibus b’ chegar

Move o onibus b’ para a proxima UA da linha l

22

Page 36: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

4.2.2 Unidade de Acostamento

No sistema existem varias Unidades de Acostamento. As UAs sao os pontos de

acesso posicionados na cidade, oferecendo redes sem-fio com identificadores (Service

Set Identifier - SSID) pre-fixados e iguais. Essa premissa e necessaria para que os

roteadores inseridos dentro dos onibus possam facilmente identificar e se conectar

a rede de acesso. As UAs tem papel fundamental tanto na localizacao dos onibus,

quanto no envio dessa informacao ate a Central. No sistema proposto, os onibus

sao localizados por proximidade em relacao as UAs, e a informacao da posicao dos

onibus e encaminhada a Central atraves das UAs. Para o caso especıfico dos onibus,

os pontos de parada sao locais interessantes para a instalacao de UAs, fazendo com

que as estimativas sejam calculadas para esses locais.

4.2.3 Onibus

Os onibus sao os veıculos automotores de transporte publico abordados neste

trabalho. Para que o veıculo possa ser rastreado, ele deve possuir um roteador ou

outro dispositivo com interface IEEE 802.11. Tal roteador deve ser instalado no

interior do veıculo e deve executar as aplicacoes criadas, que sao responsaveis pela

localizacao do onibus em relacao as UAs. O dispositivo instalado deve ser capaz de

se conectar as redes sem-fio criadas pelas UAs.

4.2.4 Cliente

O Cliente e caracterizado como uma pessoa, que pede informacoes da hora de

chegada dos onibus a um dado ponto de onibus ao servico de estimativas do sistema.

A requisicao e realizada pelo Cliente por meio de uma pagina da Internet, e a resposta

ao pedido alcanca o Cliente tambem atraves de uma pagina da Internet, utilizando

a tecnologia de acesso a Internet disponıvel para o Cliente.

23

Page 37: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

4.3 Comunicacoes entre Entidades

As quatro entidades se comunicam de formas distintas, usando diferentes tecnolo-

gias para tal. Todas as entidades e as comunicacoes entre elas podem ser visualizadas

na Figura 4.2.

CentralCliente

UA Ônibus

Internet

3GEthernet

IEEE 802.11

Eth

ern

et

Ethernet

3G

Figura 4.2: Comunicacoes entre entidades na arquitetura.

A comunicacao entre o Cliente e a Central, ocorre atraves da Internet, o que

garante compatibilidade, esteja o cliente usando um celular com redes moveis, esteja

ele usando um computador de mesa conectado a um provedor de banda larga. A

comunicacao entre as UAs e a Central pode ser realizada de diferentes maneiras:

atraves de cabos Ethernet, atraves de um modem 3G instalado na porta USB da

UA, ou ainda, atraves de multiplos saltos entre as UAs ate que um contato direto

com a Central seja alcancado. Os saltos seriam realizados atraves de uma interface

de rede sem-fio secundaria, instalada na porta USB da UA.

A comunicacao entre os onibus e a Central, na realidade, e realizada atraves

das UAs. Portanto, resta apenas descrever a comunicacao entre um onibus e uma

UA. Essa comunicacao pode ser caracterizada como uma comunicacao do tipo V2I,

veıculo para infraestrutura, das redes veiculares. Assim, esse tipo de comunicacao

esta sujeita a desafios e problemas inerentes a essas redes, por exemplo, pode acon-

tecer de a comunicacao entre o onibus e a UA nao ocorrer, devido ao perıodo de

24

Page 38: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

curto de contato entre onibus e UA.

Os principais problemas das redes veiculares decorrem do curto intervalo de con-

tato entre os nos da rede, pois os veıculos se movem rapidamente. Contudo, es-

tudos realizados observaram que um veıculo, trafegando a aproximadamente 96

quilometros por hora, e capaz de enviar a uma UA 19 megabytes de informacao

usando as redes sem-fio do padrao IEEE 802.11b [28]. Isso indica que mesmo a

uma velocidade superior a de um onibus, veıculo alvo do trabalho, uma quantidade

relevante de informacao pode ser transmitida.

No trabalho [26], mediu-se o tempo medio que os onibus permanecem ao alcance

de uma UA. Esse tempo medio e igual a 65 segundos, caso o onibus pare no ponto

para pegar passageiros, ou 36 segundos, caso contrario. Ja no trabalho [29], os

autores mostraram que o tempo de associacao dos roteadores inseridos nos veıculos

com as UAs foi de ate 9 segundos. Com base nesses valores, e considerando que

os pacotes usados na localizacao sao da ordem de uma centena de bytes, pode-se

supor que o movimento dos onibus nao e problematico para a aplicacao, podendo

ser usado o padrao IEEE 802.11b nas comunicacoes entre os onibus e as UAs.

4.4 Modelo em Rede de Petri

Como o sistema envolve a comunicacao de diversas entidades, optou-se por mo-

delar o sistema, utilizando metodos formais simplificadamente, antes da imple-

mentacao ser iniciada. A modelagem em rede de Petri foi escolhida, pois possui

a capacidade de representar bem sistemas distribuıdos discretos, o que e o caso do

sistema desenvolvido.

Como o sistema e formado por dois servicos diferentes, a rede de Petri completa

do sistema foi dividida em duas partes para facilitar a visualizacao: uma parte para

o servico AVL, na Figura 4.3, e a outra para o servico de previsao de chegada de

onibus, na Figura 4.4. Pelas figuras, nota-se que o servico de localizacao faz uso

de comunicacoes entre todas as entidades, excetuando-se a Cliente, enquanto o de

previsao de chegada de onibus depende apenas da comunicacao entre a Central e o

25

Page 39: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Cliente. Alem disso, observa-se que a Central e a entidade que une ambos os servicos

no sistema, sendo a unica que aparece nas duas partes da rede de Petri completa.

O comportamento do sistema esta descrito nas redes de Petri. O servico de

localizacao se inicia com o onibus se identificando a UA e vice-versa. Em seguida,

o onibus envia uma mensagem a Central informando a qual UA ele esta conectado,

a ultima UA que ele esteve conectado, a linha de onibus que ele esta servindo e o

seu proprio identificador. A partir dessa mensagem, a Central cria ou atualiza o

mapa da linha de onibus que o onibus esta realizando. Apos o processamento do

mapa da linha de onibus, as estimativas de horario de chegada dos proximos onibus

a todas as UAs do mapa sao calculadas. O servico de previsao de chegada de onibus

e oferecido aos Clientes. Neste servico os Clientes solicitam as estimativas a Central

enviando uma mensagem com as informacoes da solicitacao. A Central, ao receber

a solicitacao, envia uma mensagem ao Cliente contendo a estimativa solicitada.

A descricao dos lugares da rede de Petri completa criada encontra-se abaixo:

• P1 - representa o repouso da UA, e possui uma ficha, significando que a UA

sempre esta apta a receber e enviar mensagens para os onibus, desde que seja

uma por vez.

• P2 - denota as mensagens ja enviadas pelo onibus, porem ainda nao recebidas

pela UA.

• P3 - representa as mensagens enviadas pela UA, porem ainda nao recebidas

pelo onibus.

• P4 - e o estado inicial do comportamento dos onibus, pode conter N fichas,

cada uma representando um onibus, ainda desconectado.

• P5 - representa quando o onibus ja esta apto a enviar uma mensagem a UA,

quando ele se associou a UA.

• P6 - denota a espera do onibus pela chegada da mensagem enviada pela UA,

antes de enviar uma mensagem a Central.

26

Page 40: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Figura 4.3: Rede de Petri do servico de localizacao automatica de veıculos.

• P7 - e o estado onde o onibus espera a resposta da Central, antes de retornar

ao estado inicial.

• P8 - contem as mensagens enviadas pelo onibus a Central ainda nao entregues.

• P9 - contem as mensagens enviadas pela Central ao onibus ainda nao recebidas

por este.

• P10 - e o estado inicial da Central, possui duas fichas para representar que uma

mensagem de localizacao e uma requisicao de estimativa do Cliente podem ser

atendidas em simultaneo.

• P11 - representa o estado em que a mensagem recebida pela Central esta em

tratamento para localizar o veıculo e construir ou atualizar o mapa da linha

27

Page 41: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Figura 4.4: Rede de Petri do servico de previsao de chegada de onibus.

de onibus.

• P12 - demonstra que a estimativa da linha de onibus da mensagem esta sendo

calculada pela Central.

• P13 - indica o pedido de estimativa do Cliente em transito para a Central.

• P14 - indica a mensagem da Central com a estimativa pedida indo para o

Cliente.

• P15 - e o estado inicial do comportamento dos Clientes, pode conter N fichas,

esse estado representa o universo de Clientes.

• P16 - e o estado que indica que o Cliente esta no site de requisicao de estima-

tivas.

• P17 - indica o Cliente aguardando a resposta a sua requisicao.

28

Page 42: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

A descricao das transicoes da rede de Petri completa desenvolvida pode ser vista

a seguir:

• T1 - indica as acoes de recebimento na UA de uma mensagem vinda do onibus

e envio de uma mensagem da UA para o onibus.

• T2 - indica a associacao do onibus a UA.

• T3 - corresponde ao envio de uma mensagem do onibus para a UA.

• T4 - corresponde ao recebimento de uma mensagem proveniente da UA pelo

onibus e envio de uma mensagem do onibus a Central.

• T5 - indica o recebimento pelo onibus de uma mensagem enviada pela Central.

• T6 - denota as acoes de recebimento na Central de uma mensagem vinda do

onibus e envio de uma mensagem da Central para o onibus.

• T7 - indica o fim do tratamento da mensagem enviada pelo onibus.

• T8 - indica o fim do calculo da estimativa da linha de onibus indicada na

mensagem recebida.

• T9 - corresponde ao recebimento de um pedido de estimativa vindo do Cliente

pela Central e envio da resposta desse pedido da Central ao Cliente.

• T10 - mostra a entrada do Cliente na pagina de requisicao de estimativas.

• T11 - indica o envio da requisicao de estimativa do Cliente a Central.

• T12 - denota o recebimento da resposta a requisicao enviada pela Central ao

Cliente.

A rede completa criada foi inserida em um simulador de redes de Petri, o Ana-

lisador de Redes de Petri (ARP) [30], para que as propriedades da rede fossem

levantadas e possıveis erros de logica fossem retirados. Para inserir a rede no simu-

lador, foi necessario descrever a rede em forma de texto. A descricao em texto da

rede e a saıda da analise da rede feita pelo simulador se encontram no Apendice A.

29

Page 43: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Dentre as propriedades obtidas, as mais importantes foram:

• A rede e viva, ou seja, nao ocorrem bloqueios na arquitetura.

• A rede e limitada, o que significa que a arquitetura nao cria um numero infinito

de mensagens a partir de um numero finito.

• A rede e reinicializavel, o que mostra que a arquitetura apos rastrear um

onibus, ou responder uma estimativa de um cliente, estara apta a realizar

qualquer das duas tarefas novamente.

Como as propriedades indicaram que a rede funcionava como esperado, entao o

desenvolvimento da aplicacao pode ser iniciado. O proximo capıtulo apresentara a

implementacao realizada do sistema.

30

Page 44: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Capıtulo 5

Implementacao do Sistema

Este capıtulo descreve o funcionamento do sistema do ponto de vista da imple-

mentacao. Neste projeto final foram criados os quatro programas, cujas tarefas sao

apresentadas, simplificadamente, abaixo:

• vbcsBusClientUA - Este programa recebe a mensagem enviada pelas UAs com

a identificacao delas e envia a mensagem com a identificacao do proprio onibus

as UAs.

• vbcsBusClientCentral - Este programa recebe a mensagem enviada pela

Central para criacao de historico de comunicacoes e envia a mensagem com as

informacoes sobre o proprio onibus e sobre sua localizacao na rede.

• vbcsUAServer - Este programa envia a mensagem com a identificacao da

propria UA para o onibus e recebe a mensagem com a identificacao do onibus

enviada por ele para criacao de historico de comunicacoes.

• vbcsCentralServer - Este programa envia uma mensagem ao onibus para

criacao de historico de comunicacoes e recebe a mensagem enviada pelo onibus

com as informacoes sobre o proprio onibus e sua posicao na rede. Este pro-

grama, a partir das mensagens recebidas vindas dos onibus, cria o mapa das

linhas de onibus, localiza os onibus e calcula as estimativas de tempo de che-

gada dos onibus. Alem disso, e este programa que recebe e responde os pedidos

de estimativa dos Clientes.

31

Page 45: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

5.1 Localizacao Automatica de Veıculos

Desde o inıcio, cada UA executa um programa, chamado vbcsUAServer, que

aguarda as conexoes dos onibus ao socket da UA. Esse programa possui um ciclo in-

finito e e caracterizado como um servidor socket serial. Isso e, ele so trata a proxima

mensagem, quando termina de tratar a mensagem atual. Da mesma maneira, a Cen-

tral executa um programa servidor, chamado vbcsCentralServer, que tambem foi

desenvolvido com sockets, e aguarda as conexoes dos onibus ao socket especıfico do

servico de localizacao.

O processo de localizacao automatica e iniciado pelo onibus. No roteador sem-fio

instalado no onibus, um script busca continuamente pelas redes sem-fio criadas pelas

UAs, se conectando a UA mais proxima, definida como aquela que possuir maior

potencia de sinal. Assim que o onibus se conecta a uma UA, o script inicia um

programa, vbcsBusClientUA, que se conecta ao socket da UA. Com isso, o programa

servidor na UA, citado anteriormente, aceita a conexao e envia uma mensagem ao

onibus.

A mensagem enviada, mostrada na Figura 5.1, contem o identificador da UA.

Neste trabalho, escolheu-se utilizar como identificador as coordenadas geograficas

da UA, ou seja, longitude e latitude. No caso de um plano, como sao as ruas, a

latitude e a longitude identificam unicamente um objeto estatico no espaco. Alem

disso, a localizacao passa a ter um significado mais proximo do geografico, nao sendo

necessario verificar onde a UA esta para localizar o onibus.

<GTApfvbcsUFRJ>

<UAID>

#Identificador da Unidade de Acostamento

#Latitude;Longitude

-22.842709;-43.236139

</UAID>

</GTApfvbcsUFRJ>

Figura 5.1: Mensagem enviada pela UA para o onibus.

32

Page 46: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

No sistema criado, o onibus armazena tanto a informacao da UA em que ele se

encontra no momento, quanto a informacao da ultima UA onde ele esteve. Sendo

assim, quando o onibus recebe a mensagem enviada pela UA, a informacao antiga

da UA atual e movida para o arquivo que representa a UA anterior, e o programa

sobrescreve o arquivo da UA atual com a informacao retirada da mensagem recebida

da UA. Terminada a etapa anterior, o onibus responde a UA com uma mensagem,

mostrada na Figura 5.2. Essa mensagem contem as informacoes que identificam e

caracterizam o onibus, o identificador do onibus em si e o identificador da linha de

onibus que ele esta realizando atualmente. Posteriormente, a UA recebe a mensagem

enviada pelo onibus, armazenando-a em um arquivo de log.

<GTApfvbcsUFRJ>

<BusLineID>

#Identificador da Linha do Ônibus

COPPEAD

</BusLineID>

<BusID>

#Identificador do Ônibus

BUS125

</BusID>

</GTApfvbcsUFRJ>

Figura 5.2: Mensagem enviada pelo onibus para a UA.

Assim que o programa vbcsBusClientUA termina sua execucao, o script do onibus

inicia o programa vbcsBusClientCentral, que se conecta ao socket especıfico do

servico de localizacao da Central. Entao, o programa presente na Central aceita

a conexao, enviando, em seguida, uma mensagem para o onibus. Essa mensagem

contem apenas a data que a comunicacao foi realizada, servindo para constituicao de

um historico de comunicacoes entre o onibus e a Central. Apos receber e armazenar

o conteudo da mensagem no historico, o onibus envia uma mensagem, semelhante

a mostrada na Figura 5.3, a Central. Essa mensagem contem todas as informacoes

acerca do onibus no momento, em qual UA o onibus se encontra, a ultima UA que

ele esteve, o identificador do onibus e o identificador da linha de onibus que ele esta

realizando. A Central ao receber essa mensagem, inicia o seu tratamento.

33

Page 47: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

<GTApfvbcsUFRJ>

<BusLineID>

#Identificador da Linha do Ônibus

COPPEAD

</BusLineID>

<BusID>

#Identificador do Ônibus

BUS125

</BusID>

<PrevUAID>

#Identificador da UA anterior

#Latitude;Longitude

-22.840363;-43.237508

</PrevUAID>

<CurrUAID>

#Identificador da UA atual

#Latitude;Longitude

-22.842709;-43.236139

</CurrUAID>

</GTApfvbcsUFRJ>

Figura 5.3: Mensagem enviada pelo onibus para a Central.

As secoes a seguir dividem o tratamento das mensagens em funcao das estruturas

presentes no programa e finalidade do tratamento. Apesar de nao ser essencial para

o servico de localizacao, a criacao e manutencao do mapa dinamico das linhas de

onibus, assim como o calculo do intervalo de tempo gasto para o onibus percorrer

o trecho entre duas UAs e realizado nessa parte. Para facilitar o entendimento, as

principais estruturas presentes no programa da Central podem ser visualizadas, de

forma simplificada, na Figura 5.4.

• Bus - cada objeto da classe Bus armazena as informacoes, identificador do

onibus, linha de onibus que ele esta servindo, UA onde o onibus se encontra e

ultima UA onde ele esteve, de um onibus presente no sistema. A lista de ob-

jetos Bus contem as informacoes de todos os onibus cadastrados no programa.

• BusLine - um objeto BusLine e a representacao no programa de uma linha

de onibus real. As informacoes da linha de onibus, como o mapa da linha de

onibus, identificador dela e o numero de onibus realizando-a, estao contidas

nesse objeto. O mapa da linha de onibus e representado pela lista de BusStops

no interior do objeto BusLine. A lista de objetos BusLine armazena todas as

34

Page 48: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

busID, busLineID, prevBusStopID, currBusStopID

Lista de BusStopCount nextBusStop

Lista de BusStopCount prevBusStop

BusStop

BusLine

Lista de BusLine

Lista de BusStop

Bus

Lista de Bus

vbcsCentralServer

Mapa Associativo <Trecho,Time>

Lista de TimeBusLine

BusLineID

timeElapsed

TimeBusLine

Figura 5.4: Estruturas principais simplificadas do programa da Central.

linhas de onibus cadastradas no sistema.

• BusStop - cada objeto BusStop representa uma unidade de acostamento in-

serida no mapa de uma linha de onibus, o que significa que uma UA fısica

existira mais de uma vez no programa se o mapa de mais de uma linha de

onibus contiver a UA. Cada objeto BusStop contem duas listas de objetos

BusStopCount, sendo que uma delas indica os BusStops imediatamente apos

o atual no mapa da linha de onibus e a outra os BusStops imediatamente an-

tes do atual no mapa. Isso e necessario em situacoes como linhas com ciclo e

mapas em processo de mudanca, que sera detalhado posteriormente.

• BusStopCount - cada objeto da classe BusStopCount contem um identificador,

semelhante ao contido na classe BusStop; e um contador, que serve como peso.

Os objetos da classe BusStopCount funcionam como arcos pesados, indicando

objetos BusStop.

35

Page 49: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

• Time - cada objeto Time esta associado a um trecho UA de origem e UA de

destino. Esse objeto contem uma lista de objetos TimeBusLine para armaze-

nar os intervalos de tempo necessarios para percorrer um dado trecho e uma

variavel que controla o numero maximo de objetos nessa lista. A lista contem

inclusive intervalos de tempo de linhas de onibus diferentes que passem pelo

mesmo trecho.

• TimeBusLine - um objeto TimeBusLine armazena a informacao do intervalo de

tempo necessario para percorrer um dado trecho e a linha de onibus responsavel

por essa informacao. A ultima informacao serve para distinguir intervalos de

tempo de linhas de onibus diferentes que passem pelo mesmo trecho.

A princıpio, pode nao ser intuitivo a necessidade de uma lista de BusStopCount

para representar os BusStops que vem antes e depois do atual, ao inves de apenas

um ponteiro para o anterior e para o proximo. Contudo, deseja-se que o mapa da

linha de onibus seja gradualmente dinamico. Isto e, o mapa nao deve ser alterado

instantaneamente a cada modificacao que aparecer na linha de onibus, pois podem

haver mudancas devido a comportamento inadequado de um motorista, por exemplo.

Esse dinamismo gradual exige que por certo perıodo de tempo exista mais de uma

possibilidade de BusStop anterior ou proximo na rota. Alem disso, a estrutura em

questao e absolutamente necessaria para representar rotas de onibus com ciclos, isto

e, rotas que passam no mesmo ponto duas vezes.

5.1.1 Informacao dos Onibus

Para reunir as informacoes de todos os onibus do sistema, uma lista de objetos

da classe Bus existe no programa da Central. Cada objeto da classe Bus possui

variaveis para armazenar as informacoes da mensagem mais recente recebida. Alem

disso, uma variavel guarda a data que a ultima mensagem desse onibus foi recebida

e outra variavel guarda a data que a penultima mensagem foi recebida.

Quando uma mensagem proveniente de um onibus e recebida, suas informacoes

sao extraıdas e o programa busca na lista de objetos Bus pelo objeto que tem o

mesmo identificador do onibus que o contido na mensagem. Caso nao encontre

36

Page 50: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

nenhum objeto correspondente, um novo objeto Bus e criado e adicionado na lista

contendo as informacoes da mensagem recebida e a data de recebimento. Porem,

caso um objeto seja encontrado, o programa verifica possıveis situacoes que possam

ter acontecido com o onibus. Por exemplo, ele pode ter mudado de linha de onibus ou

ter saltado uma ou mais UAs. Essas verificacoes influenciam a criacao do mapa das

linhas de onibus, e serao vistas posteriormente. Apos as verificacoes, as informacoes

do objeto encontrado sao atualizadas com as da mensagem e as datas modificadas

de acordo. Apos esse processo, pode-se dizer que a lista de objetos da classe Bus

armazena todas as informacoes necessarias para se localizar um onibus.

5.1.2 Mapa das Linhas de Onibus

Neste trabalho, como ja foi dito, escolheu-se criar um mapa e mante-lo dinamica-

mente. Em outras palavras, o sistema aprende a lista de pontos de onibus de cada

linha dinamicamente. Para isso ser possıvel, tres classes sao utilizadas: BusLine;

BusStop; e BusStopCount.

Para facilitar o acompanhamento da descricao do procedimento de atualizacao

dos mapas das linhas de onibus, pode-se ver o fluxograma simplificado desse proce-

dimento na Figura 5.5.

As verificacoes realizadas durante a atualizacao das informacoes dos onibus influ-

enciam nesse momento. As verificacoes indicam se o onibus esta sendo visto pela

primeira vez, se ele mudou de linha em relacao a ultima vez que foi visto ou se

ele nao conseguiu enviar a mensagem de localizacao em alguma UA anterior. Para

saber se o onibus mudou de linha, basta comparar o identificador da linha de onibus

contido na mensagem recebida com o contido no objeto Bus do onibus em questao,

antes da atualizacao. Para verificar se o onibus foi capaz de enviar uma mensagem

de localizacao a Central em um ponto anterior, deve-se comparar o identificador

da UA anterior contido na mensagem com o identificador do BusStop atual do ob-

jeto Bus antes da atualizacao. Caso sejam diferentes, pode-se afirmar que alguma

mensagem de localizacao nao foi recebida pela Central.

37

Page 51: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Início

Recebeu mensagem de

localização anterior

Fim

Não

Ônibus mudou de linha de ônibus

Sim

Busca BusLine da

linha anteriorSim

Busca BusLine da

linha de ônibus

atual

Achou

Incrementa

contador de

ônibus da BusLine

Achou

Decrementa

contador de

ônibus da BusLine

Sim

Sim

Não

Ônibus visto pela primeira vez

Não

Sim

Busca BusLine da

linha de ônibus da

mensagem

Não

Achou

Cria BusStop da

UA da mensagem

Cria BusLine da

linha de ônibus da

mensagem com o

novo BusStop

Não

Busca UA da

mensagem na

lista de BusStops

da BusLine

Sim

Achou

Cria BusStop da

UA da mensagem

dentro da BusLine

Não

Atribui valor

máximo ao peso de

todos os BusStops

da BusLine

Cria

BusStopCount

para a UA anterior

no BusStop atual

Atualiza lista de

BusStopCounts das

UAs anteriores da

UA atual

Sim

Atualiza peso de

todos os BusStops

da BusLine

Atualiza lista de

BusStopCounts das

próximas UAs da

UA anterior

Limpa lista de

BusStops da

BusLine

Figura 5.5: Fluxograma do procedimento de atualizacao dos mapas das linhas de onibus.

38

Page 52: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Caso se verifique que a Central nao recebeu alguma mensagem de localizacao

anterior, o procedimento de atualizacao do mapa da linha nao e executado e o

tratamento da mensagem recebida termina. Caso contrario, diz-se que o onibus age

normalmente, o tratamento da mensagem recebida continua e o procedimento de

atualizacao do mapa da linha sera realizado.

Se tiver sido verificado que o onibus mudou de linha, o programa procurara a

linha de onibus antiga na lista de BusLines e retirara uma unidade do contador de

onibus daquela linha. Em seguida, a nova linha de onibus sera procurada e, caso

exista, uma unidade sera adicionada ao contador de onibus dessa linha. Da mesma

maneira, se o onibus estiver sendo visto pela primeira vez, a linha do novo onibus

sera encontrada se existir, e uma unidade sera adicionada ao contador de onibus

dessa linha.

Apos as verificacoes anteriores e com o onibus agindo normalmente, busca-se a

linha de onibus atraves do identificador contido na mensagem recebida. Nao havendo

nenhum objeto BusLine referente a linha especificada na mensagem, um objeto

BusStop e criado e inserido na nova linha sendo criada. Esse BusStop representa

o ponto de partida da linha de onibus, e e criado a partir do identificador da UA

atual contido na mensagem. Ja no caso de a linha de onibus ter sido encontrada,

o programa ira procurar dentro da lista de BusStops, da BusLine encontrada, pela

UA atual da mensagem.

Se a UA nao for encontrada na lista, um objeto BusStop e criado para ela e

inicializado com o peso maximo. O valor maximo do peso dos BusStops varia com

o numero de BusStops na linha, conforme mostrado na Equacao 5.1:

maxWeightBusStop = 2 ∗ qtBusStopInBusLine ∗ qtBusInBusLine, (5.1)

onde maxWeightBusStop e o valor maximo permitido para o peso dos BusStops,

qtBusStopInBusLine representa a quantidade de BusStops no objeto BusLine e qt-

BusInBusLine representa o numero de objetos Bus percorrendo a BusLine. Entao,

39

Page 53: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

para ser justo com os BusStops adicionados anteriormente, decidiu-se que quando

um novo BusStop for acrescentado em uma BusLine, apos o peso maximo ser atu-

alizado, o peso de todas as UAs cadastradas na linha e igualado a ele. Terminado

o ajuste dos pesos dos BusStops, cria-se um objeto BusStopCount para referenciar

a UA anterior da mensagem com peso do arco maximo, o peso do arco maximo e

regido pela Equacao 5.2:

maxWeightBusStopCount = 2 ∗ qtBusStopInBusLine, (5.2)

onde maxWeightBusStopCount e o valor maximo permitido para o peso do arco

e qtBusStopInBusLine representa a quantidade de BusStops no objeto BusLine.

Entao, esse objeto BusStopCount e inserido na lista de UAs que aparecem antes da

UA atual na rota, no interior do objeto BusStop.

Contudo, se a UA for encontrada na lista de BusStops da linha, a lista de BusStop-

Counts que representa os pontos anteriores ao BusStop e atualizada. Na atualizacao,

subtrai-se uma unidade do peso do arco de todos os elementos da lista. Em seguida,

somam-se duas unidades no peso do arco referente a UA anterior da mensagem re-

cebida, se o valor apos a soma for superior ao maximo, ele sera igualado ao maximo.

Caso algum objeto BusStopCount alcance peso do arco igual a zero apos esse pro-

cesso, ele sera removido, significando que aquele BusStop nao e mais utilizado como

anterior do atual. O passo seguinte e a atualizacao do peso do BusStop. Nessa

atualizacao, o peso de todos os BusStops da lista e decrementado de uma unidade.

Apos a subtracao, soma-se ao peso do BusStop o valor da Equacao 5.3:

weightBusStopIncrement = 2 ∗ qtBusStopInBusLine, (5.3)

onde weightBusStopIncrement e o valor do incremento somado ao peso do BusStop e

qtBusStopInBusLine representa a quantidade de BusStops no objeto BusLine. Caso

apos a soma o valor do peso do BusStop ultrapasse o valor maximo estipulado pela

Equacao 5.1, o peso do BusStop sera igualado ao maximo.

Como visto, dois tipos distintos de pesos sao usados no trabalho, esses pesos tem

funcoes diferentes. O peso do arco associado ao BusStopCount e o peso que rege a

40

Page 54: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

dinamicidade do mapa, ou seja, quao rapido o mapa aceita uma modificacao na rota

como verdadeira e intencional. Esse peso no trabalho e uma constante independente

que pode ser ajustada no codigo. Entretanto, o valor escolhido deve respeitar a

restricao de ser no maximo duas vezes o numero de onibus servindo a linha, como

visto na Equacao 5.2. Essa restricao e necessaria, pois em uma mudanca de rota,

obrigatoriamente, o peso do arco, que indica que o BusStop em processo de remocao

faz parte da rota, deve alcancar o valor zero antes do peso do BusStop em remocao.

Caso isso nao seja respeitado, o objeto do BusStop em remocao e removido antes

de ser retirado do mapa da linha de onibus, gerando uma falha no programa. Nos

testes, o valor usado foi o maximo permitido.

Ja o peso dos BusStops e usado apenas para fins de liberacao de memoria, o que

fica claro no exemplo de funcionamento de mudanca de rota. O valor desses pesos

deve ser grande o suficiente para que nenhum BusStop seja excluıdo antes da hora, o

que levaria a inconsistencias na rota de onibus. Por isso, o valor inicial atribuıdo e o

maximo contido na Equacao 5.1. A ideia por tras do valor maximo desses pesos e que

seria necessario que todos os onibus realizando a linha percorressem todos os pontos

da linha pelo menos duas vezes, para que um ponto nao utilizado fosse excluıdo. Da

mesma maneira, o incremento dado quando o BusStop e usado deve garantir que

o BusStop utilizado nao sera excluıdo enquanto o onibus percorre normalmente os

outros BusStops da linha. Por isso, o incremento e funcao apenas do numero de

BusStops contido na linha de onibus, como visto na Equacao 5.3.

O proximo passo na atualizacao do mapa da linha e atualizar a lista de proximas

UAs da UA anterior. Para isso, busca-se na lista de BusStops da BusLine pelo

BusStop com identificador igual ao da UA anterior contido na mensagem. Quando

o BusStop for encontrado, atualiza-se a lista de BusStopCounts que representa as

proximas UAs do BusStop seguindo os mesmos criterios da atualizacao feita para a

lista de UAs anteriores.

Apos todas as atualizacoes nos pesos terem sido realizadas, o mapa da linha de

onibus esta pronto. Porem, pode haver UAs nao utilizadas na lista de UAs da linha

de onibus. E importante notar que apesar da existencia das UAs nao utilizadas, de

41

Page 55: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

fato elas ja nao pertencem a rota da linha de onibus, pois partindo do ponto inicial,

elas nao sao alcancaveis. Para remover essas UAs inuteis, inicia-se o processo de

limpeza da rota da linha de onibus, ou seja, da lista de BusStops dentro da BusLine.

Nesse processo, os BusStops podem ser eliminados por dois criterios, sao eles:

1. O BusStop nao e mais referenciado como anterior ou proximo BusStop por

nenhum outro BusStop contido na linha.

2. O peso do BusStop alcancou o valor zero.

Inicialmente, utilizava-se apenas o primeiro criterio, mas em casos onde varias UAs

em sequencia deixam de ser usadas na rota, essas UAs continuam se referenciando,

nao sendo possıvel remove-las pelo primeiro criterio, por isso o segundo criterio e

necessario.

Realizados todos os procedimentos acima, o mapa da linha de onibus e construıdo

e atualizado dinamicamente, e as UAs nao utilizadas sao excluıdas da lista das linhas

de onibus. Um exemplo de mapa construıdo pelo programa pode ser visualizado na

Figura 5.6. Nas figuras que representam os mapas de linhas de onibus desse projeto

final, as circunferencias representam as UAs, ou seja, os BusStops. O numero no

interior do retangulo em cada UA e o peso da UA usado em um criterio de exclusao.

Ja os numeros nas setas representam os pesos dos arcos associados as informacoes

de proxima UA e UA anterior da UA de origem da seta.

UAUAPeso=5

UA

Peso=2 Peso=2

Peso=2Peso=2

Peso=6 Peso=4

Figura 5.6: Visualizacao de mapa criado pelo programa.

42

Page 56: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

5.1.3 Intervalos entre UAs

Os intervalos de tempo gastos entre duas UAs devem ser conhecidos para, poste-

riormente, as estimativas de previsao de chegada serem calculadas. Para criar esses

tempos, sao usadas as informacoes armazenadas nos objetos da classe Bus. Nesses

objetos foram armazenados os horarios de chegada das duas ultimas mensagens,

bem como os identificadores das duas ultimas UAs que o onibus passou. Porem,

somente quando o onibus estiver agindo normalmente, segundo as verificacoes ja

citadas, essas informacoes serao usadas para o calculo do intervalo de tempo entre

as UAs.

As classes Time e TimeBusLine sao usadas para armazenar e lidar com os dados

relativos as estimativas. No programa principal, uma estrutura map contem objetos

da classe Time. Nessa estrutura, a concatenacao dos identificadores das UAs do

trecho separados por um asterisco e utilizada como ındice identificador de cada

objeto, seguindo a forma origem*destino. Por exemplo, o trecho da mensagem 5.3

e identificado como: -22.840363;-43.237508*-22.842709;-43.236139.

Pode-se observar que da maneira que a estrutura de armazenamento e construıda

todas as linhas que passam pelo mesmo par de UAs origem*destino tem seus tempos

armazenados no mesmo objeto Time. Isso acontece pois os tempos sao diferenciados

quanto a linha de onibus apenas no objeto TimeBusLine. A estrutura de armazena-

mento dos tempos e construıda dessa forma para que a media dos intervalos gastos

no trecho possa ser calculada de duas formas distintas. Uma das formas de calculo

utiliza as informacoes de todas as linhas de onibus que passam no trecho enquanto

a outra usa apenas as informacoes pertencentes a linha de onibus sendo estimada.

Os dois metodos para o calculo de media estao presentes no objeto Time, e sao

discutidos na secao de estimativas.

O calculo do tempo gasto para percorrer o trecho consiste em subtrair os dois

horarios contidos no objeto Bus, obtendo como resultado o intervalo de tempo gasto

entre as duas UAs. Apos a subtracao, cria-se um objeto TimeBusLine com o tempo

calculado e com o identificador da linha de onibus do objeto Bus. Em seguida, o

identificador do trecho e criado usando os identificadores das UAs anterior e atual

43

Page 57: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

contidas no objeto Bus. Entao, realiza-se uma busca no map pelo objeto Time

correspondente ao identificador criado. Caso o objeto do trecho nao exista na es-

trutura, ele e inicializado com o primeiro TimeBusLine inserido e incluıdo no map.

Entretanto, caso o objeto do trecho exista, o objeto TimeBusLine criado e inserido

no final da lista de TimeBusLines do objeto Time encontrado. Caso o numero de

elementos nessa lista ultrapasse o maximo permitido pela variavel de controle do

objeto Time, remove-se o primeiro elemento, como uma FIFO. A lista ser FIFO

garante que os elementos existentes nela sao sempre os mais recentes. A exclusao

leva em consideracao o numero de elementos totais e nao o numero de elementos de

cada linha de onibus. Com isso, e possıvel que uma linha de onibus monopolize os

tempos gastos armazenados para um determinado trecho. Por exemplo, caso duas

linhas de onibus com numeros diferentes de onibus compartilhem um determinado

trecho em suas rotas. Para reduzir o problema, fez-se o tamanho maximo da lista

ser variavel e proporcional ao numero de linhas de onibus total no programa, como

mostrado na Equacao 5.4:

maxTimeBusLineListSize = qtBusLine ∗K, (5.4)

onde maxTimeBusLineListSize e o tamanho maximo da lista de objetos TimeBus-

Line, qtBusLine representa o numero de objetos BusLine existentes no sistema e K

e um parametro que controla a proporcao entre as variaveis maxTimeBusLineList-

Size e qtBusLine. Neste projeto K foi ajustado para 10, podendo ser alterado se

necessario.

Nao impedir um monopolio esta associado a ideia de se armazenar as informacoes

mais recentes para os trechos. Contudo, o monopolio pode ser malefico caso existam

linhas de onibus que passam pelas mesmas duas UAs seguidas, caracterizando o

trecho origem*destino, mas por caminhos geograficos muito distintos. Esse problema

e um problema de amostragem. A solucao proposta e a insercao entre as UAs que o

problema ocorre de uma nova UA na rota da linha de onibus que percorre o maior

caminho do trecho.

44

Page 58: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

5.2 Previsao de Chegada de Veıculos

A previsao de chegada de veıculos e um servico de ITS oferecido aos usuarios dos

meios de transporte publicos. De posse do mapa da linha de onibus e da informacao

dos tempos gastos pelos onibus entre duas UAs, pode-se calcular o tempo que um

onibus leva para alcancar os pontos seguintes da sua rota. Esse servico e oferecido

pela Central aos Clientes.

5.2.1 Pagina de Requisicao de Estimativas

O Cliente precisa informar uma linha e um ponto de onibus para receber uma

estimativa de hora de chegada do proximo onibus. Para esse fim, criou-se uma

pagina na Internet que pode ser vista na Figura 5.7.

Na pagina criada, o Cliente deve selecionar uma das linhas de onibus disponıveis

no sistema. Em seguida, o Cliente deve clicar em uma das figuras dos pontos de

onibus no mapa. Com isso, o ponto de onibus selecionado ficara vermelho, indicando

a escolha feita, como pode ser visto na Figura 5.8. Apos o Cliente selecionar as

informacoes necessarias, ele deve clicar no botao “Estimar”. Caso o Cliente se

esqueca de selecionar o ponto ou a linha de onibus, uma janela o informa e pede

para que os campos sejam preenchidos corretamente. Caso contrario, o Cliente e

direcionado para uma pagina onde ele recebe a resposta a sua requisicao, como pode

ser visualizado na Figura 5.9.

A pagina onde o Cliente recebe a resposta possui um codigo em PHP que cria

uma mensagem similar a da Figura 5.10. Em seguida, a pagina envia a mensagem

criada para o socket especıfico do servico de estimativa da Central. A mensagem

contem as informacoes da requisicao do usuario: linha e ponto de onibus escolhidos.

A Central recebe o pedido e responde com a estimativa desejada via socket.

5.2.2 Calculo de Estimativas

O calculo das estimativas e realizado apos o servico de localizacao automatica de

veıculos ter terminado o tratamento da mensagem recebida. E importante notar

que apesar do servico de previsao depender do Cliente, o calculo das estimativas e

45

Page 59: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Figura 5.7: Pagina de solicitacao de estimativa.

independente das requisicoes do Cliente. Essa escolha e feita para evitar a sobrecarga

do processador. A sobrecarga aconteceria caso os calculos fossem efetuados a cada

requisicao de Cliente e muitos Clientes pedissem estimativas simultaneamente. O

resultado caso a sobrecarga acontecesse seria uma especie de negacao de servico.

Toda vez que a Central recebe uma mensagem, apos o servico de localizacao au-

tomatica de veıculos, a linha de onibus identificada na mensagem tem as estimativas

calculadas para todos os BusStops. A unica restricao para o calculo das estimativas

ser realizado e que a linha de onibus em questao deve ter os pontos inicial e final

diferentes, isso e, nao deve ser uma linha circular. Isso se deve pois para o caso de

46

Page 60: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Figura 5.8: Ponto de onibus e linha de onibus selecionados.

linhas circulares o algoritmo utilizado no calculo de estimativas segue o mapa da

linha de onibus eternamente. Entretanto, para usar o servico em casos de linhas

circulares basta dividir a linha de onibus em duas. Por exemplo, de acordo com o

sentido que a linha esta sendo percorrida em relacao a algum ponto de referencia,

como, em direcao a qual bairro o onibus esta indo. Apesar de linhas circulares nao

segmentadas nao serem estimadas, linhas que contenham ciclos em seu interior sao

estimadas normalmente.

Alem das variaveis descritas na secao anterior, a classe BusStop possui ainda

quatro variaveis para armazenar as estimativas de tempo. Cada variavel guarda

estimativas calculadas de maneiras diferentes. As quatro estimativas sao resul-

47

Page 61: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Figura 5.9: Estimativa devolvida ao Cliente.

<GTApfvbcsUFRJ>

<ReqBusLineID>

#Identificador da Linha do Ônibus requisitada

COPPEAD

</ReqBusLineID>

<ReqUAID>

#Identificador da UA requisitada

#Latitude;Longitude

-22.842709;-43.236139

</ReqUAID>

</GTApfvbcsUFRJ>

Figura 5.10: Mensagem de requisicao enviada pelo Cliente para a Central.

tado da existencia de duas formas diferentes de calcular as medias dos trechos ori-

gem*destino. Uma das formas calcula a media de todos os elementos TimeBusLine

da lista contida na classe Time do trecho, nao importando se os tempos usados na

media pertencem a mesma linha de onibus. A outra forma calcula a media con-

siderando apenas os objetos TimeBusLine que pertencem a linha de onibus sendo

estimada.

A primeira forma e necessaria pois podem existir situacoes onde os tempos da linha

de onibus sendo estimada sao antigos. Com isso, eles ja nao representam as atuais

condicoes de transito do trecho, o que resulta em uma estimativa errada. Como

a primeira forma nao restringe os tempos usados na media, misturando tempos de

diferentes linhas, o uso de tempos mais recentes no calculo da media e privilegi-

ado. Caso o problema, ja citado, de duas rotas que passam pelas mesmas UAs em

sequencia, mas por caminhos muito discrepantes, nao ocorra, esse metodo pode ser

usado sem nenhuma ressalva.

48

Page 62: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Com os dois tipos de media citados para cada trecho, escolheu-se incrementar as

estimativas de quatro maneiras distintas para cada BusStop. A primeira maneira

utiliza como incremento entre a estimativa do ponto anterior e do ponto atual a

media apenas dos intervalos de tempo do trecho que pertencam a propria linha. A

segunda utiliza a media de todos os tempos no trecho como incremento. Ja a terceira

usa como incremento o valor mınimo entre as duas medias anteriores, enquanto a

quarta usa como incremento o valor maximo entre elas. O uso da terceira maneira

resulta em uma estimativa otimista do tempo de chegada do proximo onibus, ou seja,

resulta no menor tempo possıvel que o sistema preve a chegada do proximo onibus.

Por outro lado, o uso da quarta maneira resulta em uma estimativa pessimista do

tempo de chegada do proximo onibus, ou seja, resulta no maior tempo possıvel que

o sistema preve a chegada do proximo onibus. No sistema, as quatro maneiras de

incrementar as estimativas sao realizadas. A escolha da maneira de estimar que sera

enviada aos usuarios fara parte de um trabalho futuro.

No calculo da estimativa, busca-se o menor tempo necessario para que um onibus

qualquer da linha sendo estimada alcance cada um dos pontos do mapa. Como

condicao inicial, todas as variaveis de estimativa de todos os BusStops armazenados

no mapa da linha sao igualadas a um valor de referencia negativo. Em seguida,

para cada onibus realizando a linha, procura-se o BusStop onde ele foi visto pela

ultima vez, e faz-se com que esse BusStop receba o valor de estimativa zero. A seguir

inicia-se um procedimento que simula o percurso do onibus pela linha, a partir do

ponto onde o onibus estava.

Devido a forma como o mapa e construıdo, escolheu-se fazer o procedimento

que percorre a linha ser recursivo. O procedimento desenvolvido tem como unica

condicao de parada que o ponto sendo avaliado nao possua nenhum proximo ponto

cadastrado.

Durante o percurso, um BusStop em analise pode ter mais de um BusStop proximo

possıvel. Isso pode ocorrer devido a uma mudanca de rota em andamento, como

pode ser visto na Figura 5.11, ou devido a rota possuir um ciclo, como na Figura 5.12.

No exemplo da Figura 5.11, o onibus que normalmente percorre a rota UA-1, UA-2,

49

Page 63: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

UA-3, UA-4 e UA-5 comeca a realizar uma nova rota, onde vai diretamente da UA-2

para a UA-5. Ja no exemplo da Figura 5.12, o trajeto da linha de onibus e UA-1,

UA-2, UA-3, UA-4, UA-2, UA-3 e UA5. O fato de um BusStop em analise poder ter

mais de um BusStop proximo possıvel exige que um mecanismo de controle exista.

Esse mecanismo deve existir para que o algoritmo que percorre a linha decida qual

dos proximos pontos e o seguinte da rota. O mecanismo de controle deve funcionar

tanto para o caso de uma mudanca de rota em curso quanto para o caso de uma

linha com ciclos na rota.

UA-1 UA-2

2

2

UA-3

1

2

UA-4

2

2

UA-5

2

1

2

2

8 10779

Figura 5.11: Mudanca de rota em curso.

UA-1 UA-2 UA-3 UA-5

UA-4

1010 10 10

10

22

21 2

22 2

12

Figura 5.12: Linha com ciclo.

O mecanismo de controle so atua caso o BusStop em analise possua mais de

um proximo BusStop. Para definir se o onibus percorrendo a linha esta passando

no BusStop pela primeira ou segunda vez, cria-se uma lista dentro de cada objeto

BusStop. Assim que um onibus chega ao BusStop em questao, verifica-se se o

identificador dele existe na lista do BusStop. Se nao existir, o identificador do

50

Page 64: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

onibus e inserido na lista. Nesse caso o onibus esta passando pela primeira vez no

BusStop. Ja caso o identificador exista na lista, retira-se o identificador da lista para

restaurar a configuracao inicial. Nesse caso o onibus esta passando pela segunda vez

no BusStop. No primeiro caso, o onibus e direcionado para o primeiro BusStop

cadastrado na sua lista de proximos BusStops. Ja no segundo caso, o onibus e

direcionado para o segundo BusStop cadastrado em sua lista de proximos.

Nos casos de mudanca de rota que nao constituem um ciclo, como no exemplo

da Figura 5.11, o mecanismo de controle sempre indica para o onibus seguir para o

primeiro BusStop cadastrado na lista de proximos. Isso ocorre pois para esse caso em

um mesmo calculo de estimativa, o mesmo onibus so passa por esses BusStops uma

vez. Nos casos de rotas com ciclo, como o exemplo da Figura 5.12, o mecanismo faz o

onibus percorrer a rota corretamente. Com isso, o algoritmo desenvolvido soluciona

o problema de definir qual o proximo BusStop para ambos os casos problematicos.

Apos a definicao do proximo BusStop, o identificador origem*destino do trecho e

gerado. Em seguida, busca-se por esse identificador na estrutura que armazena os

intervalos de tempo dos trechos, encontrando as informacoes de intervalo de tempo

do trecho.

De posse das informacoes, os dois tipos de medias citados anteriormente sao re-

alizados. Contudo, as quatro estimativas do proximo BusStop so sao atualizadas

caso os valores das estimativas do BusStop atual somados aos incrementos do trecho

sejam menores que os valores das estimativas presentes no proximo BusStop. Isso

e feito para garantir que as variaveis de estimativa guardem os tempos necessarios

para a chegada do onibus mais proximo, ou seja, as estimativas mınimas.

Toda vez que as variaveis de estimativas do proximo BusStop sao atualizadas, e

modificada tambem uma variavel que indica qual o onibus mais perto do BusStop

seguinte ate o momento. Em seguida, o proprio procedimento que simula o percurso

do onibus e chamado, indicando como BusStop atual o proximo BusStop. Isso simula

o movimento do onibus na rota.

51

Page 65: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Apos todos os onibus terem o percurso simulado, recalcula-se as estimativas dos

BusStops que possuem estimativa igual a zero. Isso e necessario pois a estimativa

ser igual a zero significa que o onibus acabou de passar ou que ele esta nesse exato

momento no ponto de interesse. Essas informacoes nao sao relevantes para o Cliente.

Entao, as estimativas desses BusStop sao modificadas de maneira a conter as esti-

mativas para o proximo onibus alcanca-lo. Isso e realizado, retornando pela rota ate

os BusStops anteriores a eles e somando as estimativas dos anteriores com as medias

do respectivo trecho BusStop anterior BusStop atual. Os resultados dos calculos sao

armazenados como as novas estimativas dos BusStops que tinham estimativa zero.

5.2.3 Resposta aos Clientes

No programa que executa na Central, ha um thread responsavel pelo servidor

socket que recebe as requisicoes de estimativas dos Clientes. Esse servidor e seme-

lhante ao do recebimento de mensagens, todavia utiliza outra porta. Quando uma

mensagem de requisicao e recebida, as informacoes contidas nela, ponto de onibus

alvo e linha de onibus desejada, sao retiradas. Em seguida, busca-se o objeto cor-

respondente a linha de onibus requisitada na lista de linhas de onibus do programa.

Caso esta nao exista uma mensagem e enviada indicando o problema ao Cliente. De

posse do objeto da linha de onibus, o ponto de onibus e buscado no mapa da linha.

Caso nao seja encontrado, uma mensagem e enviada ao Cliente indicando que a rota

nao passa pelo ponto indicado. Caso o ponto de onibus seja encontrado no mapa

da linha, obtem-se a estimativa do ponto em questao. Em seguida, a estimativa e

atualizada e, apos a atualizacao, enviada ao Cliente atraves de uma mensagem.

A referida atualizacao e necessaria pois, como dito anteriormente, o calculo das

estimativas e independente das requisicoes dos Clientes. Portanto, uma vez que

as estimativas de uma linha de onibus tenham sido calculadas, elas somente sao

recalculadas quando um onibus daquela linha enviar outra mensagem. Ou seja, as

estimativas presentes nos BusStops nao decrescem com o tempo, mas somente com

novas mensagens de onibus da linha. Isso significa que as estimativas caem em saltos

ao inves de continuamente, o que pode ser ruim para o Cliente.

52

Page 66: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Para que as estimativas caiam continuamente para o Cliente, guarda-se no mo-

mento do calculo das estimativas, a data que elas foram alteradas. As estimativas

so sao alteradas de fato nos BusStops em que o onibus mais proximo e tambem o

onibus que enviou a mensagem que iniciou o calculo das estimativas. Entao, usando

a data de alteracao da estimativa presente no BusStop, e a data de recebimento

da requisicao, calcula-se o tempo decorrido entre as duas situacoes. Em seguida, o

tempo decorrido e subtraido da estimativa do BusStop, antes que esta seja enviada

ao Cliente. Com isso o Cliente enxerga a estimativa decrescendo continuamente, o

que lhe e mais util e agradavel.

5.3 Linguagens e Bibliotecas

Todos os programas usados nos roteadores, seja nas Unidades de Acostamento ou

nos onibus, sao escritos em C, e a compilacao desses programas e realizada atraves

de compilacao cruzada, ou seja, e gerado codigo executavel para um processador

diferente daquele em que a compilacao era realizada. Compila-se em um PC codigo

a ser executado em um processador ARM, presente nos roteadores sem-fio utilizados.

O procedimento para realizar essa compilacao encontra-se em [31].

A Central e escrita parte em C e parte em C++. Isso ocorre pois o C++ nao

lida diretamente com sockets como o C faz. Por isso o C e usado somente na parte

de manipulacao de sockets e no thread responsavel por responder as requisicoes de

estimativa do Cliente, enquanto o C++ e utilizado no restante do programa.

As paginas acessadas pelo Cliente sao desenvolvidas em PHP com parte em Ja-

vascript. Alem disso, e utilizada a API versao 3 do Google Maps [32] para o usuario

visualizar no mapa da cidade os pontos de onibus cadastrados no sistema. Isso e

feito para facilitar ao Cliente a escolha do ponto de onibus. O PHP e usado devido

a sua semelhanca com o C e o suporte a sockets. Ja o Javascript e usado devido a

API do Google Maps ser em Javascript.

53

Page 67: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

5.4 Exemplos do Funcionamento do Sistema

Nessa secao dois exemplos do funcionamento do sistema sao apresentados passo

a passo. Nas figuras dessa secao, a linha da circunferencia que representa uma UA

estar mais espessa significa que ha um onibus nessa UA no momento.

5.4.1 Construcao Inicial de uma Linha de Onibus

Nesse teste, considerou-se uma linha fictıcia de onibus que realiza uma rota per-

correndo UAs numeradas de um a cinco em ordem ascendente. O ponto inicial da

rota e a UA-1 e o ponto final a UA-5. Para facilitar a compreensao, apenas um

onibus percorre a rota sendo construıda, mas essa limitacao nao existe na aplicacao

desenvolvida.

No inıcio, a linha de onibus nao existe. A linha de onibus, e consequentemente

seu mapa, so e criada quando, ao menos uma vez, um onibus informa a Central

que esta realizando aquela linha. Portanto, quando a Central recebe a mensagem

de uma dada linha pela primeira vez, ela cria essa linha. A linha ao ser criada ja

contem a UA onde o onibus se encontra como UA inicial da linha de onibus. A UA

inicial recebe o peso maximo, cujo valor pode ser obtido pela Equacao 5.1; ou seja,

duas vezes o numero de UAs no mapa da linha de onibus multiplicado pelo numero

de onibus servindo a linha de onibus. O resultado da operacao descrita pode ser

visualizado na Figura 5.13.

UA-12

Figura 5.13: Criacao do mapa da linha com primeira UA.

O proximo passo na construcao da rota e tomado quando o onibus alcanca a

proxima UA da rota da linha de onibus. Ao alcancar a proxima UA da rota o onibus

envia uma mensagem a Central. A Central ao receber essa mensagem, verifica que

a linha de onibus ja existe, mas que a UA informada pelo onibus ainda nao existe

54

Page 68: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

na rota. A Central, entao, cria um objeto associado a essa nova UA e o insere na

rota. Ao uma nova UA ser adicionada na rota, os pesos de todas as UAs da rota sao

atualizados para o novo valor maximo, dado pela Equacao 5.1, ja considerando a

nova UA na rota. Como a UA-2 nao e a primeira da linha, a Central associa a UA-2

como proxima UA da rota em relacao a UA inicial (UA-1). Da mesma maneira, a

Central indica na UA-2 que a UA-1 vem antes dela na rota. Essas informacoes sao

inicializadas com peso do arco igual a dois, valor obtido atraves da Equacao 5.2. O

mapa apos essas operacoes pode ser visto na Figura 5.14.

UA-1 UA-2

2

24 4

Figura 5.14: Mapa apos insercao da segunda UA.

Em seguida, o onibus alcanca a terceira UA da rota, avisando a Central. A

Central verifica que a UA informada nao existe na rota, precisando ser criada e

inserida. Com isso, a Central cria um objeto associado a essa nova UA e o insere na

rota. Como ja visto anteriormente, os pesos de todas as UAs sao atualizados segundo

a Equacao 5.1 ja considerando a nova UA na rota. Em seguida, a Central associa

a nova UA como proxima UA da UA anterior. Da mesma forma, a Central indica

na nova UA que a segunda UA e anterior a ela. Essas informacoes sao inicializadas

com valor dado pela Equacao 5.2. O mapa atualizado pode ser visto na Figura 5.15.

UA-1 UA-2

2

2

UA-3

2

26 6 6

Figura 5.15: Mapa apos insercao da terceira UA.

O processo descrito anteriormente e repetido para as quarta e quinta UAs da

rota. Com os pesos das UAs sendo alterados e as informacoes de proxima UA e UA

55

Page 69: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

anterior das UAs sendo preenchidas toda vez que uma nova UA e inserida na rota.

O mapa apos a insercao da quarta UA pode ser visualizado na Figura 5.16, e apos

a insercao da quinta e ultima UA da linha na Figura 5.17.

UA-1 UA-2

2

2

UA-3

2

2

UA-4

2

288 8 8

Figura 5.16: Mapa apos insercao da quarta UA.

UA-1 UA-2

2

2

UA-3

2

2

UA-4

2

2

UA-5

2

210 10 1010 10

Figura 5.17: Mapa final da linha de onibus.

5.4.2 Mudanca de Rota

O exemplo de funcionamento atual demonstra como o sistema lida com mudancas

na rota de uma linha de onibus. Mudancas de rota podem ser devido a diversos

fatores, por exemplo, vias interditadas ou mau funcionamento de UAs na rota. Esses

eventos podem gerar uma diminuicao do numero de UAs na rota ou um aumento

de UAs. Nao importa se a rota aumenta ou diminui, o sistema lida com a mudanca

das rotas da mesma forma, alterando as informacoes de proxima UA e UA anterior

das UAs da linha.

Neste exemplo de funcionamento e demonstrado o exemplo em que a rota da linha

de onibus diminui. Fez-se essa escolha pois ela permite demonstrar a necessidade da

existencia dos dois tipos de peso. Um para controlar a dinamicidade do mapa e outro

para controlar a exclusao de UAs da rota. A dinamicidade do mapa e controlada

pelo peso dos arcos e a exclusao de UAs da rota e controlada pelo peso das UAs.

56

Page 70: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Neste exemplo, considerou-se a linha fictıcia de onibus criada no exemplo anterior.

Apenas um onibus percorre a rota sendo modificada durante o teste. O teste se inicia

com o onibus se movendo ate a UA-1. Isso atualiza o peso da propria UA para o

maximo, e reduz em uma unidade o peso de todas as outras UAs da linha. Essa

situacao se encontra na Figura 5.18.

UA-1 UA-2

2

2

UA-3

2

2

UA-4

2

2

UA-5

2

210 9999

Figura 5.18: Rota inicial da linha de onibus.

Em seguida, o onibus se movimenta ate a UA-2, o que nao causa alteracao nos

pesos dos arcos entre as UAs 1 e 2, que continuam com valor maximo permitido.

Entretanto, o peso de todas as outras UAs da linha de onibus e decrementado de

uma unidade, enquanto o peso da UA-2, onde o onibus se encontra, e incrementado

de acordo com a Equacao 5.3. Apos o incremento o peso da UA-2 atinge o peso

maximo permitido, regido pela Equacao 5.1. O mapa atualizado pode ser visto na

Figura 5.19.

UA-1 UA-2

2

2

UA-3

2

2

UA-4

2

2

UA-5

2

28 88109

Figura 5.19: Onibus se move ate a UA-2.

Se a rota fosse seguida normalmente, o proximo passo seria o onibus ir ate a

UA-3. Todavia, nesse exemplo de funcionamento, supoe-se que as UAs 3 e 4 estao

defeituosas. Com isso, a Central nao recebe as mensagens referentes a esses dois

pontos de acesso. Portanto, a proxima UA funcionando na rota e a UA-5. Ao

chegar na UA-5, o onibus envia uma mensagem a Central, informando que ele esta

57

Page 71: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

la e que antes esteve na UA-2. Quando a Central recebe essa mensagem, ela atualiza

os pesos de todas as UAs da linha.

Apos a atualizacao dos pesos das UAs da linha, a UA-5 e cadastrada na lista de

proximas UAs da UA-2. Da mesma maneira, a UA-2 e cadastrada na lista de UAs

anteriores da UA-5. Ambos os arcos sao inicializados com peso igual a Equacao 5.2.

Em seguida, as outras informacoes da lista de proximas UAs da UA-2 e da lista

de UAs anteriores da UA-5 sao decrementadas de uma unidade. O resultado desse

processo pode ser observado na Figura 5.20.

UA-1 UA-2

2

2

UA-3

1

2

UA-4

2

2

UA-5

2

1

2

2

107798

Figura 5.20: Onibus alcanca a UA-5.

Continuando o exemplo, o onibus percorre a rota alcancando a UA-1 e depois a

UA-2. Com isso, as atualizacoes nos pesos das UAs da linha sao realizadas. As

alteracoes no mapa podem ser observadas nas Figuras 5.21 e 5.22, respectivamente.

Pode-se notar na Figura 5.22 que os pesos das UAs 3 e 4 ja estao na metade do peso

maximo permitido na linha de onibus.

UA-1 UA-2

2

2

UA-3

1

2

UA-4

2

2

UA-5

2

1

2

2

966810

Figura 5.21: Onibus retorna ao ponto inicial.

58

Page 72: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

UA-1 UA-2

2

2

UA-3

1

2

UA-4

2

2

UA-5

2

1

2

2

855109

Figura 5.22: Onibus chega na UA-2.

No momento que o onibus se aproxima da UA-5 novamente, a atualizacao nos

pesos se encarrega de decrementar novamente os pesos de todas as UAs. Em se-

guida o peso da UA-5 e incrementado e atinge o maximo permitido. Realizada a

atualizacao dos pesos das UAs, o sistema verifica que, novamente, a UA anterior a

UA-5 e a UA-2. Por consequencia a UA seguinte a UA-2 e a UA-5. Com isso, o

peso desses arcos se mantem, enquanto o peso dos outros arcos decresce novamente

de uma unidade.

Quando os arcos que indicam que a proxima UA da UA-2 e a UA-3 e que a anterior

a UA-5 e a UA-4, sao decrementados, eles atingem o valor zero. Por isso, esses dois

arcos sao excluıdas da lista. A exclusao desses arcos representa a concretizacao da

modificacao da rota. Isso pode ser afirmado pois apesar de as UAs 3 e 4 existirem

na lista de UAs da linha, elas ja nao sao alcancaveis a partir do ponto inicial da

linha de onibus. As modificacoes realizadas podem ser vistas na Figura 5.23.

UA-1 UA-2

2

2

UA-3

0

2

UA-4

2

2

UA-5

2

0

2

2

104498

Figura 5.23: Onibus se move ate UA-5. E a mudanca na rota e concretizada.

59

Page 73: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Com a rota do onibus concretizada, nao ocorre mais nenhuma alteracao nas in-

formacoes de proxima UA e UA anterior de nenhuma UA da rota. Todavia, o onibus

continua realizando a sua rota normalmente, e os pesos das UAs da linha sao atua-

lizados de acordo. Na Figura 5.24 esta o resultado da movimentacao do onibus ate

a UA-1, na Figura 5.25 o resultado da continuacao do movimento ate a UA-2 e na

Figura 5.26 o mapa resultante do movimento ate o ponto final da rota.

UA-1 UA-2

2

2

UA-3

2

UA-4

2

2

UA-5

2

2

2

3 93810

Figura 5.24: Onibus na UA-1.

UA-1 UA-2

2

2

UA-3

2

UA-4

2

2

UA-5

2

2

2

822109

Figura 5.25: Onibus na UA-2.

UA-1 UA-2

2

2

UA-3

2

UA-4

2

2

UA-5

2

2

2

101198

Figura 5.26: Onibus na UA-5.

60

Page 74: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Ao continuar o seu trajeto, o onibus chega na UA-1, e os pesos das UAs 3 e 4 ao

serem subtraıdos chegam a zero. Isso faz com que o mecanismo de limpeza da linha

de onibus exclua esses objetos da lista de UAs da linha. Portanto, pode-se observar

a funcao dos dois tipos de peso na aplicacao criada. O processo descrito pode ser

visto na Figura 5.27.

UA-30

UA-1 UA-2

2

2 2

UA-4

2

2

UA-5

2

2

2

90810

Figura 5.27: Onibus na UA-1. E exclusao de UAs 3 e 4.

Com a exclusao das UAs 3 e 4 da lista de UAs da linha de onibus, o valor maximo

dos pesos das UAs diminui, segundo a Equacao 5.1. Porem, o peso de cada UA so

sera atualizado, obedecendo o novo limite, quando o onibus alcancar cada UA. Esse

processo pode ser visto na Figura 5.28, onde o peso da UA-2 e atualizado para o

novo maximo. Apos os pesos de todas as UAs terem sido atualizados, a rota final

da linha de onibus, que pode ser vista na Figura 5.29, e alcancada.

UA-1 UA-2

2

2

UA-5

2

29 6 8

Figura 5.28: Onibus na UA-2. Atualizacao de peso para novo maximo.

UA-1 UA-2

2

2

UA-5

2

2546

Figura 5.29: Rota final da linha de onibus.

61

Page 75: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Com esse exemplo mostra-se que os mapas das linhas de onibus podem ser altera-

dos dinamicamente. Vale lembrar que a velocidade de concretizacao das alteracoes

pode ser configurada escolhendo o valor maximo dos pesos dos arcos das UAs.

62

Page 76: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Capıtulo 6

Resultados

Nesse capıtulo os resultados obtidos atraves de emulacao sao apresentados.

6.1 Ambiente de Testes

Figura 6.1: Ambiente de testes.

63

Page 77: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

A Central e um computador de mesa, que possui o sistema operacional Debian

instalado, 8 GB de memoria RAM e processador Intel Core i7 860. Por outro lado, as

UAs e os onibus sao representados por roteadores sem-fio da marca D-Link, modelo

DIR-320. A Central e as UAs estao conectadas atraves de um roteador, tambem da

marca D-Link e modelo DIR-320, que foi configurado para funcionar como comuta-

dor. Ja a conexao das UAs e da Central com esse comutador e realizada por cabo

Ethernet. Esse modelo possui processador ARM de 240 MHz e 32 MB de memoria

RAM. Alem disso, possui uma entrada USB que pode ser usada para aumentar a

capacidade de armazenamento do roteador, que originalmente e de apenas 4 MB, ou

para instalar uma segunda interface de rede sem-fio. O sistema operacional usado

nos roteadores e o OpenWRT versao Backfire 10.03.1, uma distribuicao Linux para

dispositivos embarcados.

6.2 Linhas COPPEAD e Estacao UFRJ

Nesse teste, as rotas das linhas de onibus universitarias COPPEAD (Figura 6.2)

e Estacao UFRJ (Figura 6.3) foram simuladas. Essas linhas de onibus sao de cir-

culacao interna da UFRJ e servem alunos e funcionarios dessa universidade. Para

isso, definiu-se que no cenario do teste cada ponto de onibus das rotas, tem uma UA

instalada, nao existindo outras UAs fora desses pontos. Para que os testes realizados

se aproximassem da realidade, o roteador que representava os onibus estava conec-

tado via rede sem-fio ao roteador que fazia o papel das UAs, incluindo os possıveis

problemas causados pela rede sem-fio no teste. Porem, sem o agravante de um dos

roteadores estar em movimento.

A movimentacao do onibus pelas rotas foi simulada com o uso de um script no rote-

ador que representava os onibus. Esse script modificava os arquivos que armazenam

as informacoes dos onibus, UA atual, UA anterior, linha de onibus e identificador

do onibus, de forma programada. Em seguida, o script chama a aplicacao que envia

a mensagem de localizacao a Central. A Central, entao, recebe as mensagens dos

onibus como se eles realmente estivessem realizando as rotas.

64

Page 78: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Figura 6.2: Rota da linha de onibus universitaria COPPEAD.

As duas linhas juntas possuem um total de 22 pontos de onibus, e para o teste

condizer com a realidade das linhas, o tempo que um onibus gastava entre dois

pontos de onibus consecutivos das duas linhas foi medido experimentalmente com

um cronometro. Essa medicao foi realizada apenas uma vez, servindo apenas como

referencia para o teste ter conexao com a realidade. Esses tempos medidos foram

usados no script citado anteriormente, de maneira que a simulacao levasse em conta

nao so as rotas das linhas, mas tambem os intervalos de tempo inerentes a elas.

No teste, considerou-se a existencia de cinco onibus, todos eles iniciavam o tra-

jeto na linha COPPEAD, realizando a linha Estacao UFRJ em seguida. Um onibus

entrava no teste 5 minutos apos o anterior ter iniciado seu percurso. Uma vez que o

onibus iniciava o percurso do teste, este percurso era repetido indefinidamente. Os

onibus apos terminarem a linha Estacao UFRJ realizavam novamente a linha COP-

PEAD e assim sucessivamente. Isso e plausıvel, pois as duas linhas sao circulares,

isto e, o ponto final de uma e o ponto de origem da outra e vice-versa.

65

Page 79: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Figura 6.3: Rota da linha de onibus universitaria Estacao UFRJ.

O teste foi interrompido apos 11 mil mensagens terem sido enviadas pelos onibus,

o que equivale a cada um dos 5 onibus ter percorrido o trajeto com 22 pontos de

onibus 100 vezes. O teste durou 64 horas e 28 minutos e todas as mensagens foram

recebidas pela Central. As estimativas realizadas nao continham erros, como era

de se esperar, ja que os tempos de percurso do onibus nao variavam no teste, pois

eram previamente programados. As estatısticas coletadas do teste encontram-se

na Tabela 6.1. E interessante observar que o fato do tamanho das mensagens ser

pequeno evita os problemas decorrentes do movimento do onibus e do tempo de

contato entre onibus e UA ser limitado. O tempo de tratamento de mensagem tem

relacao direta com o numero de mensagens que o sistema desenvolvido e capaz de

tratar por segundo, e essa metrica sera melhor avaliada nos testes seguintes.

66

Page 80: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Tabela 6.1: Estatısticas do teste das linhas COPPEAD e Estacao UFRJ.

Estatısticas Media Desvio padrao

Tamanho de152,59 bytes 4,52 bytes

mensagens de localizacao

Tempo de tratamento2,039 ms 0,769 ms

de mensagens

6.3 Tempo de Tratamento de Mensagens de Lo-

calizacao

Para avaliar a metrica de tempo de tratamento de mensagens de localizacao,

varios testes foram realizados. Os testes tem a intencao de mostrar como essa

metrica, do programa da Central, se comporta perante a variacao dos parametros

do cenario. Para que os resultados avaliassem somente o programa, as simulacoes

foram feitas executando os scripts que realizavam o papel de onibus dentro do proprio

computador onde a Central executa, eliminando a influencia da rede nos testes.

Avaliar o tempo de tratamento de uma mensagem e importante pois esse tempo

tem relacao direta com o numero de mensagens que o sistema desenvolvido e capaz

de tratar por segundo. A partir desse numero, e possıvel avaliar se o sistema e capaz

ou nao de atender as exigencias de uma cidade, o que foi avaliado no ultimo teste

realizado.

Ao todo quatro simulacoes foram feitas, sendo tres delas avaliando a influencia

das caracterısticas do cenario de forma isolada e uma simulando as condicoes da

cidade do Rio de Janeiro. As caracterısticas do cenario que influenciam o sistema

foram:

1. Quantidade de onibus cadastrados no sistema;

2. Quantidade de linhas de onibus cadastradas no sistema;

3. Quantidade de UAs em uma linha de onibus do sistema.

Os graficos de todas as simulacoes mostram, para cada variacao do parametro da

simulacao, a media e o desvio padrao dos tempos de tratamento das mensagens.

67

Page 81: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

6.3.1 Variacao da Quantidade de Onibus

No teste em que se avaliou a influencia da quantidade de onibus cadastrados no

sistema sobre o tempo de tratamento de mensagem, variou-se o numero de onibus

cadastrados no sistema de 1000 ate 8000 onibus, incrementando de 1000 em 1000. O

valor maximo foi definido por se aproximar do numero de onibus medio em operacao

na cidade do Rio de Janeiro em 2011, que era de 8413 [33].

Os onibus foram cadastrados por um script que enviava uma mensagem contendo

o identificador do novo onibus, a linha pre-estabelecida usada no teste e a primeira

UA da linha como ponto atual. A Central ao receber essa mensagem cadastrava os

onibus no sistema. Apos todos os onibus terem sido cadastrados, escolheu-se um

deles para realizar a rota da linha pre-estabelecida. A rota da linha possuıa 5 UAs

cadastradas e o onibus percorreu a rota 10 vezes seguidas. Quando o onibus chegava

a proxima UA ele enviava a mensagem de localizacao a Central, que entao tratava

a mensagem e media o tempo do tratamento dela.

Todo o processo foi realizado tres vezes para cada quantidade de onibus escolhida,

resultando em 150 mensagens para cada valor. E interessante notar que o teste visa

avaliar a influencia do parametro variado no tempo de tratamento de mensagens dos

onibus ja cadastrados, e nao o tempo para cadastrar um novo onibus no sistema.

Os resultados do teste podem ser observados na Figura 6.4.

Pode-se notar pelo grafico na Figura 6.4 que a media e o desvio padrao do tempo

de tratamento por mensagem aumentam com o numero de onibus cadastrados. Alem

disso, a curva obtida se assemelha a uma reta com as variacoes nos tempos medios

entre dois pontos consecutivos simulados em torno de 5 ms. Esse teste apesar de

demonstrar o comportamento do sistema, nao e de senso pratico, pois os mais de

1000 onibus foram cadastrados na mesma linha de onibus, o que nunca acontece

na vida real. O resultado foi o alongamento do calculo da estimativa da linha de

onibus, ja que a estimativa ao ser calculada durante o tratamento das mensagens

avalia todos os onibus cadastrados na linha sendo estimada.

68

Page 82: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

0

10

20

30

40

50

60

0 1000 2000 3000 4000 5000 6000 7000 8000 9000

T

e

m

p

o

d

e

T

r

a

t

a

m

e

n

t

o

p

o

r

M

e

n

s

a

g

e

m

(

m

s

)

Número de Ônibus

Figura 6.4: Variacao da quantidade de onibus no sistema.

6.3.2 Variacao da Quantidade de Linhas de Onibus

No teste em que se avaliou a influencia da quantidade de linhas de onibus cadas-

tradas no sistema, variou-se o numero de linhas de onibus cadastradas de 100 ate

800, incrementando de 100 em 100. O valor maximo foi definido por se aproximar

do numero de linhas de onibus em operacao na cidade do Rio de Janeiro em 2011,

que era de 822 [33].

Durante esse teste, somente um onibus foi cadastrado no sistema para eliminar a

influencia desse parametro. As linhas foram cadastradas por um script que enviava

uma mensagem contendo o identificador do onibus pre-estabelecido, a nova linha

que o onibus estava realizando e a primeira UA da nova linha como ponto atual. A

Central ao receber essa mensagem identificava que o onibus havia mudado de linha

e cadastrava as novas linhas de onibus no sistema. Apos todas as linhas terem sido

cadastradas, escolheu-se uma para o onibus percorrer. A rota da linha possuıa 5 UAs

cadastradas e o onibus realizou a rota 10 vezes consecutivas. Da mesma forma que

no teste anterior, quando o onibus alcancava a proxima UA ele enviava a mensagem

de localizacao a Central, que tratava a mensagem e media o tempo do tratamento

dela.

69

Page 83: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Assim como no teste anterior, todo o processo foi realizado tres vezes para cada

quantidade de linhas de onibus, resultando em 150 mensagens para cada valor.

Assim como o teste anterior, o teste tem a intencao de avaliar como a alteracao

do numero de linhas de onibus inseridas no sistema afeta o tempo de tratamento

de mensagens dos onibus percorrendo a rota, e nao o tempo para cadastrar uma

nova linha de onibus no sistema. Os resultados do teste podem ser observados na

Figura 6.5.

0.05

0.1

0.15

0.2

0.25

0.3

0 100 200 300 400 500 600 700 800 900

T

e

m

p

o

d

e

T

r

a

t

a

m

e

n

t

o

p

o

r

M

e

n

s

a

g

e

m

(

m

s

)

Número de Linhas de Ônibus

Figura 6.5: Variacao da quantidade de linhas de onibus no sistema.

Pelo grafico na Figura 6.5, observa-se que a media e o desvio padrao aumentam

com o numero de linhas de onibus cadastradas no sistema, contudo para os valores

simulados o crescimento apresentado nao impediu a escalabilidade.

6.3.3 Variacao da Quantidade de UAs em uma Linha de

Onibus

Nesse teste, variou-se o numero de UAs numa linha de 10 ate 100, com incrementos

de 10 em 10. Durante o teste, para eliminar da melhor forma possıvel a influencia

dos outros parametros, apenas uma linha de onibus e um onibus foram cadastrados.

70

Page 84: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

As UAs foram inseridas na linha atraves do envio das mensagens do onibus per-

correndo a rota pela primeira vez. Apos a rota da linha ficar pronta, fez-se o onibus

percorrer a rota criada 10 vezes seguidas. Quando o onibus aparecia na proxima

UA ele enviava a mensagem de localizacao a Central, que tratava a mensagem e

cronometrava seu tempo do tratamento.

Assim como nos dois testes anteriores, todo o processo foi realizado tres vezes para

cada variacao de UAs por linha. Como o numero de UAs na rota percorrida varia,

o numero de mensagens, e consequentemente de tempos medidos, para cada valor

tambem se modifica, aumentando com o numero de UAs na rota. Assim como os

testes anteriores, o objetivo do teste e avaliar a influencia da variacao do parametro

em questao no tempo de tratamento de mensagens dos onibus percorrendo a rota, e

nao o tempo necessario para inserir uma UA numa linha de onibus. Os resultados

do teste podem ser observados na Figura 6.6.

0

0.5

1

1.5

2

2.5

0 20 40 60 80 100

T

e

m

p

o

d

e

T

r

a

t

a

m

e

n

t

o

p

o

r

M

e

n

s

a

g

e

m

(

m

s

)

Número de Unidades de A ostamento

Figura 6.6: Variacao da quantidade de UAs no sistema.

Na Figura 6.6, observa-se que a media dos tempos de tratamento de mensagem

aumenta com o numero de UAs presentes em uma dada linha de onibus. Entretanto,

para os valores simulados, o crescimento apresentado nao impediu a escalabilidade,

71

Page 85: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

com o tempo medio de tratamento por mensagem permanecendo abaixo de 2,5 ms.

6.3.4 Cenario Rio de Janeiro

O ultimo teste simula as condicoes da cidade do Rio de Janeiro, sendo cadastradas

no sistema 800 linhas de onibus, cada uma com 10 onibus, totalizando os 8000 onibus

que se aproximam do numero de onibus da cidade. Como o numero de UAs inseridas

em uma linha pode variar, por exemplo, devido a variacao de pontos de onibus nas

linhas, decidiu-se variar o numero de UAs como no teste anterior, de 10 a 100 UAs

em uma linha de onibus variando de 10 em 10.

Como nos testes anteriores, cadastraram-se as linhas de onibus e os onibus, e

em seguida uma das linhas de onibus teve sua rota criada com o numero de UAs

estabelecido. Apos a criacao da rota, um dos onibus percorreu a mesma 10 vezes

consecutivas, enviando mensagens para a Central ao trocar de UA. A Central tratou

as mensagens e mediu o tempo gasto no tratamento delas.

O processo foi repetido tres vezes para cada variacao de UAs. Os resultados do

teste podem ser observados na Figura 6.7.

1

2

3

4

5

6

7

8

0 20 40 60 80 100

T

e

m

p

o

d

e

T

r

a

t

a

m

e

n

t

o

p

o

r

M

e

n

s

a

g

e

m

(

m

s

)

Número de Unidades de A ostamento

Figura 6.7: Cenario Rio de Janeiro.

72

Page 86: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Pelo grafico observa-se que a media dos tempos de tratamento de mensagem au-

menta com o numero de UAs presentes numa dada linha de onibus. Com os dados

obtidos no grafico, pode-se inferir que apenas um computador semelhante ao usado

executando a aplicacao desenvolvida e suficiente para monitorar e estimar toda a

cidade do Rio de Janeiro dado que o tempo de tratamento por mensagem nao passou

de 7 ms. Essa inferencia e realizada atraves da suposicao de que os aproximada-

mente 8000 onibus da cidade levam pelo menos um minuto para alcancar a proxima

UA da rota. Com isso, o programa teria 60 segundos para tratar as 8000 mensagens.

Considerando o pior caso do grafico da Figura 6.7, ou seja, cada linha de onibus com

100 UAs, o tratamento de cada mensagem levaria em media, aproximadamente, 7

milissegundos. Dividindo-se os 60 segundos por esse tempo de tratamento, obtem-se

uma taxa de aproximadamente 8500 mensagens tratadas por minuto. Portanto, to-

das as mensagens que fossem enviadas a Central conseguiriam ser tratadas, mesmo

considerando o pior caso para todas as linhas de onibus da cidade, o que mostra a

capacidade da aplicacao criada.

73

Page 87: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Capıtulo 7

Conclusoes e Trabalhos Futuros

O objetivo deste projeto final foi propor e desenvolver um sistema que, utilizando

roteadores sem-fio instalados nos onibus e nos pontos de onibus, fosse capaz de

rastrear e estimar os horarios que os onibus passam nos pontos requisitados pelos

usuarios. Para isso, foi desenvolvido um servico de ITS de localizacao automatica

de veıculos para rastrear os onibus, no qual se utilizou a tecnica de localizacao

por proximidade, considerando os pontos de acesso do padrao IEEE 802.11 como

referencia. Apesar de o sistema AVL criado ser focado no rastreamento de veıculos

de transporte publico, a aplicacao de localizacao projetada tambem pode ser usada

para veıculos de uso pessoal.

O servico proposto de estimativa de chegada de onibus aos pontos de onibus

pode ser desenvolvido a partir de quatro formas de calculo, sendo todas elas basea-

das em medias de informacoes anteriores. Uma pagina na Internet foi criada para

disponibilizar as estimativas calculadas para os usuarios dos meios de transporte

publico.

Neste projeto de fim de curso, uma forma de criacao e manutencao de mapas digi-

tais dinamicos, que se adaptam a modificacoes nas rotas monitoradas, para cenarios

semelhantes tambem foi proposta e desenvolvida. O funcionamento do mecanismo

proposto foi descrito passo a passo em dois exemplos, um descrevendo a criacao de

um mapa digital dinamico e outro descrevendo a reacao do mapa a uma modificacao

na rota.

74

Page 88: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

As simulacoes realizadas incluıram um teste de longa duracao, mostrando a inte-

gridade do sistema como um todo. Alem disso, o tempo de tratamento das mensa-

gens de localizacao, que inclui desde a localizacao do veıculo, passando pela criacao e

manutencao do mapa, ate o calculo das estimativas, foi avaliado frente as principais

variaveis do sistema. Para concluir os testes, uma simulacao com parametros simila-

res aos encontrados na cidade do Rio de Janeiro foi realizada. Nessa simulacao havia

8000 onibus e 800 linhas de onibus cadastrados no sistema, e variou-se entre 10 e 100

o numero de unidades de acostamento por linha de onibus. Os resultados obtidos

mostraram que a aplicacao criada atenderia, mesmo no pior caso, as exigencias de

uma cidade grande como o Rio de Janeiro.

Como trabalhos futuros, seria interessante obter mais dados praticos dos tempos

gastos pelos onibus para percorrer trechos das linhas de onibus. De posse de mais

dados seria possıvel avaliar a precisao dos diferentes mecanismos de estimativa cri-

ados, e tambem como esses mecanismos reagem a diferentes condicoes de transito,

como um engarrafamento. Alem disso, seria interessante colocar o sistema em fun-

cionamento, instalando UAs nos pontos de onibus e roteadores sem-fio nos onibus

internos da UFRJ para, alem de avaliar o funcionamento do sistema criado em um

cenario real, aumentar a qualidade de servico dos onibus internos, beneficiando os

usuarios.

75

Page 89: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Referencias Bibliograficas

[1] PADMANABAN, R. P. S., DIVAKAR, K., VANAJAKSHI, L., et al., “Develop-

ment of a real-time bus arrival prediction system for Indian traffic conditions”,

Intelligent Transport Systems, IET, v. 4, n. 3, pp. 189–200, 2010.

[2] Instituto Municipal de Urbanismo Pereira Passos, “Total de veıculos terrestres

automotores (frota ativa) - Municıpio do Rio de Janeiro - 1994 - 2011 (Tabela

No 1253)”, Armazem de Dados - Informacoes sobre a cidade do Rio - http:

//www.armazemdedados.rio.rj.gov.br/, 2011, (Acesso em 12 Junho 2013).

[3] WEILAND, R. J., PURSER, L. B., “Intelligent transportation systems”, Trans-

portation in the New Millennium, p. 3, 2000.

[4] Bus Standards Program and Bus Rapid Transit Working Group, Recommended

Practice for Implementing BRT Intelligent Transportation Systems, Report,

American Public Transportation Association, 2010.

[5] RITER, S., MCCOY, J., “Automatic vehicle location - An overview”, Vehicular

Technology, IEEE Transactions on, v. 26, n. 1, pp. 7–11, 1977.

[6] SKABARDONIS, A., “Traffic Signal Control Systems”. In: Assessing the Be-

nefits and Costs of ITS, v. 10, Transportation Research, Economics and Policy,

Springer US, pp. 131–144, 2004.

[7] AMPELAS, A., “Automatic fare collection”. In: Intelligent Transportation Sys-

tems, 2001. Proceedings. IEEE, pp. 1164–1166.

[8] BALASUBRAMANIAN, N., BALASUBRAMANIAN, A., VENKATARA-

MANI, A., “Energy consumption in mobile phones: a measurement study and

76

Page 90: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

implications for network applications”. In: Proceedings of the 9th ACM SIG-

COMM conference on Internet measurement conference, IMC ’09, pp. 280–293,

2009.

[9] BusTV, “A Rede BusTV”, http://bustv.com.br/portal/a-rede-bustv,

2013, (Acesso em 9 Julho 2013).

[10] FENG, H., LULU, L., HENG, Y., et al., “Bus Monitoring System Based on

ZigBee and GPRS”. In: Computer Distributed Control and Intelligent Environ-

mental Monitoring (CDCIEM), 2012 International Conference on, pp. 178–181,

2012.

[11] CACERES, M., SOTTILE, F., SPIRITO, M., “WLAN-Based Real Time Vehi-

cle Locating System”. In: Vehicular Technology Conference. VTC Spring 2009.

IEEE 69th, pp. 1–5.

[12] DOD, U., “Global positioning system standard positioning service performance

standard”, 2008.

[13] MANOLIS, K., KWSTIS, D., “Intelligent transportation systems - travelers’

information systems the case of a medium size city”. In: Mechatronics. ICM

’04. Proceedings of the IEEE International Conference on, pp. 200–204, 2004.

[14] LIN, W.-H., ZENG, J., “Experimental study of real-time bus arrival time pre-

diction with GPS data”, Transportation Research Record: Journal of the Trans-

portation Research Board, v. 1666, n. 1, pp. 101–109, 1999.

[15] KARBASSI, A., BARTH, M., “Vehicle route prediction and time of arrival

estimation techniques for improved transportation system management”. In:

Intelligent Vehicles Symposium, 2003. Proceedings. IEEE, pp. 511–516, 2003.

[16] D’ANGELO, M. P., AL-DEEK, H. M., WANG, M. C., “Travel-time prediction

for freeway corridors”, Transportation Research Record: Journal of the Trans-

portation Research Board, v. 1676, n. 1, pp. 184–191, 1999.

[17] ISHAK, S., AL-DEEK, H., “Performance Evaluation of Short-Term Time-Series

Traffic Prediction Model”, Journal of Transportation Engineering, v. 128, n. 6,

pp. 490–498, 2002.

77

Page 91: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

[18] RICE, J., VAN ZWET, E., “A simple and effective method for predicting travel

times on freeways”, Intelligent Transportation Systems, IEEE Transactions on,

v. 5, n. 3, pp. 200–207, 2004.

[19] FRECHETTE, L. A., KHAN, A. M., “Bayesian regression-based urban traffic

models”, Transportation Research Record: Journal of the Transportation Rese-

arch Board, v. 1644, n. 1, pp. 157–165, 1998.

[20] CHIEN, S., DING, Y., WEI, C., “Dynamic Bus Arrival Time Prediction with

Artificial Neural Networks”, Journal of Transportation Engineering, v. 128,

n. 5, pp. 429–438, 2002.

[21] VANAJAKSHI, L., RILETT, L., “Support Vector Machine Technique for the

Short Term Prediction of Travel Time”. In: Intelligent Vehicles Symposium,

2007 IEEE, pp. 600–605, 2007.

[22] JEONG, R., RILETT, L., “Bus arrival time prediction using artificial neural

network model”. In: Intelligent Transportation Systems, 2004. Proceedings. The

7th International IEEE Conference on, pp. 988–993, 2004.

[23] VANAJAKSHI, L., SUBRAMANIAN, S., SIVANANDAN, R., “Travel time

prediction under heterogeneous traffic conditions using global positioning sys-

tem data from buses”, IET intelligent transport systems, v. 3, n. 1, pp. 1–9,

2009.

[24] SHALABY, A., FARHAN, A., “Bus travel time prediction model for dynamic

operations control and passenger information systems”, Transportation Rese-

arch Board, p. 16, 2003.

[25] CHENG, S., “Bus arrival time prediction model based on APC data”, 6th

Advanced Forum on Transportation of China (AFTC 2010), pp. 165–169(4),

2010.

[26] DA SILVA, V. B., DA SILVA, F. O., CAMPISTA, M. E. M., et al., “Roteamento

Baseado na Trajetoria para Redes Veiculares Desconectadas com Multiplos Ga-

teways”, XXXI Simposio Brasileiro de Redes de Computadores e Sistemas Dis-

tribuıdos - SBRC, pp. 1038–1051, 2013.

78

Page 92: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

[27] DA SILVA, V. B., DA SILVA, F. O., CAMPISTA, M. E. M., et al., “A

Trajectory-Based Approach to Improve Delivery in Drive-Thru Internet Sce-

narios”, Workshop on Emerging Vehicular Networks: V2V/V2I and Railroad

Communications - IEEE International Conference on Communications, pp.

499–504, 2013.

[28] SIM, M. L., NEKOVEE, M., KO, Y. F., “Throughput analysis of Wi-Fi based

broadband access for mobile users on the highway”. In: Networks, 2005. Jointly

held with the 2005 IEEE 7th Malaysia International Conference on Communi-

cation., 2005 13th IEEE International Conference on, v. 1, p. 6, 2005.

[29] JUNIOR, J. G. R., QUINTANILHA, I. M., CAMPISTA, M. E. M., et al.,

“Sistema para Monitoramento Descentralizado de Transito Baseado em Redes

Veiculares Infraestruturadas”, XXXI Simposio Brasileiro de Redes de Compu-

tadores e Sistemas Distribuıdos - SBRC, pp. 863–876, 2013.

[30] Carlos A. Maziero, “The ARP tool”, http://dainf.ct.utfpr.edu.br/

~maziero/doku.php/software:arp_tool, 2009, (Acesso em 3 Julho 2013).

[31] apaloczi, “OpenWRT c,c++ programing”, http://fleshandmachines.

wordpress.com/2011/08/22/openwrt-cc-programing/, 2011, (Acesso em 3

Julho 2013).

[32] Google, “Google Maps Javascript API V3”, https://developers.google.

com/maps/documentation/javascript/reference, 2013, (Acesso em 03 Ju-

lho 2013).

[33] Instituto Municipal de Urbanismo Pereira Passos, “Total de linhas, frota ope-

rante, passageiros transportados, viagens realizadas,quilometragem coberta,

combustıvel utilizado e pessoal ocupado pelo sistema de onibus - Municıpio

do Rio de Janeiro - 1994 - 2011 (Tabela No 1736)”, Armazem de Dados - In-

formacoes sobre a cidade do Rio - http://www.armazemdedados.rio.rj.gov.

br/, 2011, (Acesso em 12 Junho 2013).

79

Page 93: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Apendice A

Propriedades da Rede de Petri

A.1 Descricao da Rede de Petri para Simulador

ARP

Para inserir a rede de Petri no simulador utilizado, e necessario representar a rede

em forma de texto. Essa representacao encontra-se abaixo:

NET TRABALHO;

NODES

P2, P3, P5, P6, P7, P8, P9, P11, P12, P13, P14, P16, P17 : PLACE;

P1: PLACE(1);

P4: PLACE(1);

P10: PLACE(2);

P15: PLACE(2);

T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12: TRANSITION;

STRUCTURE

T1: (P1,P2) ,(P1,P3);

T2: (P4) ,(P5);

T3: (P5) ,(P2,P6);

T4: (P3,P6) ,(P7,P8);

T5: (P7,P9) ,(P4);

T6: (P8,P10) ,(P9,P11);

T7: (P11) ,(P12);

80

Page 94: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

T8: (P12) ,(P10);

T9: (P10,P13) ,(P10,P14);

T10: (P15) ,(P16);

T11: (P16) ,(P13,P17);

T12: (P14,P17) ,(P15);

ENDNET.

A.2 Saıda da Analise da Rede

A rede e limitada:

Net under analysis is limited.

Null places (M = 0): {}

Binary places : {P2, P3, P5, P6, P7, P8, P9, P1, P4}

k-Bounded places : {2* P11, 2* P12, 2* P13, 2* P14, 2* P16, 2* P17, 2*

P10, 2* P15}

Unbounded places : {}

A rede nao e estritamente conservativa.

A rede e viva, ou seja, nao possui bloqueios.

Net under analysis is live.

Live Tr. : {all}

"Almost-live" Tr.: {all}

Non-fired Tr. : {}

No live-locks detected.

No deadlocks detected.

A rede e reinicializavel, isto e, partindo de qualquer marcacao valida, ela sempre

pode voltar para a marcacao inicial.

Invariantes de transicao:

Transition invariant basis:

BI1 :{T1, T2, T3, T4, T5, T6, T7, T8}

BI2 :{T10, T11, T12, T9}

81

Page 95: Universidade Federal do Rio de Janeiro Escola Polit ecnica … · UNIVERSIDADE FEDERAL DO RIO DE JANEIRO Escola Polit ecnica - Departamento de Eletr^onica e de Computa˘c~ao Centro

Invariantes de lugar:

Place invariant basis:

BI1 :{P2, P3, -P6}

BI2 :{P13, P14, -P17}

BI3 :{P7, -P8, -P9}

BI4 :{P1}

BI5 :{P2, P3, P5, P7, P4}

BI6 :{P11, P12, P10}

BI7 :{P13, P14, P16, P15}

Minimum positive place invariants for this net:

IL1 :{P11, P12, P10}

IL2 :{P13, P14, P16, P15}

IL3 :{P16, P17, P15}

IL4 :{P2, P3, P5, P8, P9, P4}

IL5 :{P5, P6, P8, P9, P4}

IL6 :{P5, P6, P7, P4}

IL7 :{P1}

IL8 :{P2, P3, P5, P7, P4}

82