Simulando o transporte público no SUMO

Acompanhando os desenvolvimentos anteriores com o SUMO (Introdução ao SUMO, Gerar diversas rotas, tipos de veículo e veículos no SUMO e Geração de fluxos de veículos no SUMO), foi visto a possibilidade de especificar ônibus para compor a simulação. A circulação de ônibus exige um elementos de infraestrutura, que são as paradas de ônibus. Para especificar as paradas de ônibus é preciso defini-las em um arquivo adicional para a criação da network.

O código abaixo especifica uma parada de ônibus. O primeiro parâmetro é o identificador da parada e deve ser único. O parâmetro seguinte é o nome da lane onde será colocada a  parada e de onde vem esse nome será explicado adiante. Os parâmetros startPos e endPos são as metragens inicial e final de onde estará localizada a parada na lane especificada (em que altura da via o ponto de ônibus começa e termina).  O último parâmetro são nomes para as linhas que utilizarão a parada e é opcional.

<additional>
    <busStop id="busstop1" lane="1to2_0" startPos="40" endPos="50" lines="001 002" />
</additional>

O nome da lane para colocar na configuração da parada de ônibus é composto pelo nome do edge, seguido de um caracter de underline e finalizado com o número da lane onde estará localizada a parada. No arquivo com extensão .net.xml gerado pelo Netconvert é possível conferir o nome das lanes existentes. As definição a seguir foi extraída da rede gerada nesse material e onde pode ser visto o identificar a line (atributo “id” que é visto na segunda linha).

<edge id="1to2" from="p1" to="p2" priority="-1">
    <lane id="1to2_0" index="0" speed="13.90" length="93.95" shape="0.00,-1.65 93.95,-1.65"/>
</edge>

Tendo especificado o arquivo adicional, é preciso salvá-lo com a extensão .add.xml e adicioná-lo ao arquivo de configuração da simulação. Considerando que o arquivo adicional foi salvo com o nome de “meu.add.xml”, o arquivo de configuração (arquivo com a extensão .sumo.cfg) adicionando a quinta linha.

<configuration>
  <input>
    <net-file value="meu.net.xml" />
    <route-files value="meu.rou.xml" />
    <additional-files value="meu.add.xml"/>
  </input>
</configuration>

A partir dessa inclusão é necessário novamente fazer uso do Netconvert (caso tenha esquecido como fazer o uso, ele está especificado em Introdução ao SUMO, no item “Criando efetivamente a network”). Caso tenha sido optado por utilizar o comando via terminal, o comando será acrescido desse novo arquivo nos parâmetros do comando ficando: netconvert –node-files=meu.nod.xml –edge-files=meu.edg.xml –additional-files=meu.add.xml –output-file=meu.net.xml

Tendo definido o arquivo de configuração já é possível abri-lo no SUMO e ver que foi adicionado  um novo elemento gráfico, ilustrado na figura abaixo. Os número mostrado são os valores especificados no parâmetro “lines” da configuração da parada.

busStop

Se a simulação for executada, será visto que mesmo com a parada os ônibus não irão parar nela. É preciso vincular a parada na definição do veículo ônibus, dizendo para ele em que paradas ele precisa parar. Isso é feito com as linhas 7, 8 e 9 da especificação de rotas a seguir. Observe que a definição inicial de um veículo acontece normalmente, apenas sendo feita a inclusão de uma parada.

<routes>
  <vType accel="2" decel="4" id="Car" length="5" maxSpeed="20" sigma="0" />
  <vType accel="1.5" decel="3" id="Bus" length="15" maxSpeed="15" sigma="0.5" color="1,0,0" />
  <route id="rota0" edges="1to2 2to3" />
  <vehicle depart="1"  id="carro1"  route="rota0" type="Car" />
  <vehicle depart="1"  id="onibus1" route="rota0" type="Bus" departLane="0" />
  <vehicle depart="20" id="onibus2" route="rota0" type="Bus" color="0,0,1">
        <stop busStop="busstop1" duration="20"/>
  </vehicle>
</routes>

O novo veículo foi feito alterando sua cor individual. Observe que a cor de um veículo do tipo “Bus” é vermelha, mas na definição desse novo ônibus foi colocado que a cor dele deve ser azul (valor 0,0,1 para o parâmetro color). Na definição da parada (stop), na linha 8, é colocado o identificador da parada através do parâmetro “busStop” e uma duração, especificada em segundos e que corresponde a quanto tempo o veículo deve ficar parado alí. O identificar da parada é o nome do identificar utilizado na especificação do arquivo adicional.

Executando a simulação é possível ver agora que o carro e o primeiro ônibus da simulação continuam não parando no ponto especificado, mas o próximo ônibus (o veículo na cor verde) irá realmente parar por um tempo.

Share

Uma opinião sobre “Simulando o transporte público no SUMO

  1. Aly

    Esta parte foi a única que não funcionou de todo o seu material 🙁

    Quitting (on error).

    Loading of ‘meu.sumo.cfg’ failed!

     
    Reply

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.