Nota Técnica #65

Por Dimitris Triantafyllos

Dezembro 2021

O que é o API Aimsun Next?

O Aimsun Next API é uma coleção de funções, em Python ou C++, que permitem ler informações e realizar ações durante uma simulação mesoscópica, microscópica ou híbrida mesoscópica e microscópica. Com a API, você pode fazer alterações enquanto a simulação está sendo executada, enquanto que com o scripting, você tem que fazer quaisquer alterações antes de iniciar a simulação.

Você também pode usar a API para conectar uma aplicação externa à simulação. Internamente, dentro do Aimsun Next, o API pode se comunicar com o mecanismo de simulação, e externamente, com a aplicação externa.

Onde usar o Aimsun Next API?

A aplicação mais comum do Aimsun Next API é emular aplicações de Sistemas Inteligentes de Transporte (ITS), Sistemas Avançados de Assistência ao Motorista (ADAS) e Veículos Conectados (CV): por exemplo, implementar prioridade de semáforo personalizado e algoritmos adaptativos de controle de tráfego; aplicar gerenciamento de tráfego em vôo; controlar parâmetros de comportamento de direção de veículos, etc. A funcionalidade que a API fornece depende do mecanismo de simulação:

Tanto em simulações mesoscópicas como microscópicas, você pode:

  1. Leia as estatísticas de saída,
  2. Leia o estado dos semáforos,
  3. Mudar o estado dos semáforos.

Em uma simulação microscópica (ou na área microscópica de uma simulação híbrida meso-micro), você pode:

  1. Ler os dados do detector,
  2. Ler o estado de cada veículo (origem, destino, parâmetros comportamentais, caminho atual, posição, velocidade, aceleração, etc.),
  3. Introduzir novos veículos,
  4. Assumir o controle dos veículos (definir posição e velocidade, mudar seu destino ou seu caminho),
  5. Acionar ações de gerenciamento de tráfego.

Em uma simulação mesoscópica, você pode:

  1. Ler o estado de cada veículo (origem, destino, seção atual ou movimento, horário de entrada, horário de saída)
  2. Introduzir novos veículos.

Exemplo: implemente uma aplicação Connected Vehicle controlando os veículos via API

No exemplo a seguir, usaremos o API para controlar a velocidade e a faixa dos veículos que se aproximam de uma junção. Isto representa uma implementação muito simples (provavelmente simplista) de uma aplicação cooperativa de merge para Veículos Conectados.

Passo 1: Configuramos todos os veículos que entram na seção a montante da junção como rastreados para que possamos modificar sua velocidade e faixa de destino quando necessário. Isto é conseguido chamando a função

Copiar
no AAPIEnterVehicleSection callback

Passo 2: Em cada etapa de simulação, obtemos o número de veículos nas seções selecionadas usando a seguinte função:

Copiar

Passo 3: Depois lemos o estado desses veículos usando

Copiar
Passo 4: A seguir modificamos a velocidade dos veículos a montante da junção com
Copiar

Note que esta função só permite definir uma velocidade inferior à velocidade calculada pelo modelo que segue o carro. Se você não quiser ser limitado pela velocidade de condução do carro, você pode usar em vez disso a seguinte função:

Copiar

Passo 5: Na seção da junção, definimos a faixa mais à esquerda como faixa de destino, chamando

Copiar

Passo 6: Quando os veículos saem da seção da junção, nós colocamos os veículos de volta em não rastreados, chamando

Copiar

in the AAPIExitVehicleSection callback

Executando a API de amostra

  1. Baixe os arquivos de amostra abaixo e certifique-se de que todos os arquivos estejam localizados no mesmo diretório:
  1. Copiar-colar o arquivo py de Aimsun_Next_installation_folder/programming/Aimsun Next API/python/private/Micro OR Meso/AAPI.py no mesmo diretório onde o arquivo controling-vehicles.py é armazenado.

Nota: Lembre-se de que o arquivo Aimsun AAPI deve ser consistente com a versão Aimsun atualmente em uso. Você pode recuperá-lo aqui:

Aimsun_Next_installation_folder/programming/Aimsun Next API/python/private/Micro/AAPI.py

  1.  Procedimento:
    1. Inicie o Aimsun e depois abra o arquivo controlling-vehicles.ang fornecido
    2. Executar a Replicação. Consulte a janela Log para obter informações detalhadas sobre o funcionamento do CACC

Licença: Note que você precisa de uma licença API para executar este exemplo. Para maiores informações, favor contatar info@aimsun.com