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:
- Leia as estatísticas de saída,
- Leia o estado dos semáforos,
- 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:
- Ler os dados do detector,
- Ler o estado de cada veículo (origem, destino, parâmetros comportamentais, caminho atual, posição, velocidade, aceleração, etc.),
- Introduzir novos veículos,
- Assumir o controle dos veículos (definir posição e velocidade, mudar seu destino ou seu caminho),
- Acionar ações de gerenciamento de tráfego.
Em uma simulação mesoscópica, você pode:
- Ler o estado de cada veículo (origem, destino, seção atual ou movimento, horário de entrada, horário de saída)
- 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
Passo 2: Em cada etapa de simulação, obtemos o número de veículos nas seções selecionadas usando a seguinte função:
Passo 3: Depois lemos o estado desses veículos usando
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:
Passo 5: Na seção da junção, definimos a faixa mais à esquerda como faixa de destino, chamando
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
in the AAPIExitVehicleSection callback
Executando a API de amostra
- Baixe os arquivos de amostra abaixo e certifique-se de que todos os arquivos estejam localizados no mesmo diretório:
- Aimsun file controlling-vehicles.ang
- API file controlling-vehicles.py
- 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
- Procedimento:
- Inicie o Aimsun e depois abra o arquivo controlling-vehicles.ang fornecido
- 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