• Nenhum resultado encontrado

Simulador Microsoft AirSim

No documento Ouro Preto Minas Gerais, Brasil 2018 (páginas 116-121)

4.4 Ferramental para Protótipos e Simulação

4.4.2 Simulação

4.4.2.1 Simulador Microsoft AirSim

Existem diversos simuladores disponíveis no mercado capazes ou mesmo foca- dos na simulação de VANTs, como o Gazebo, Hector, RotorS e jMavSim. Porém, conforme Shah et al. (2017) explicam, ainda que consigam simular bem a dinâmica

de voo de diferentes tipos de VANTs e seus sensores, eles pecam na criação e ren- derização de ambientes, diminuindo o realismo ou prejudicando o teste de algorit- mos que se baseiam no processamento de vídeo ou imagens, o que é amplamente utilizado para treinamento de algoritmos de inteligência artificial (machine learning).

Por conta disso, pesquisadores ligados à Microsoft desenvolveram o AirSim (SHAH et al., 2017), criado para permitir a simulação da dinâmica de diferentes tipos de veículos nas modalidades SIL e HIL. Inicialmente, os autores focaram o desenvolvimento em VANTs de asa rotativa, permitindo o uso de controladores de voo 3 reais, o que aumenta muito o realismo da simulação. O AirSim funciona como umpluginexecutado sobre a Unreal Engine (EPIC GAMES, 2017), que é um motor gráfico e físico extremamente popular, usado no desenvolvimento de jogos e apli- cações diversas, capaz de renderizar gráficos de última geração e física realista.

É essa combinação um dos maiores diferenciais do AirSim em relação às outras plataformas: ele permite a simulação da dinâmica de um veículo, incluindo VANTs, em ambientes visualmente e fisicamente realistas, o que o torna apropriado para obtenção de dados para o treinamento de algoritmos de inteligência artificial e visão computacional. A versão disponível em Janeiro de 2018 disponibiliza dois tipos de veículos: VANT com estrutura de asa rotativa e carro. A Figura 51 apresenta uma visão geral da arquitetura do AirSim, demonstrando a forma de interação entre os elementos internos e externos para simulações HIL. Já a lista a seguir apresenta um breve descritivo dos principais elementos que compõem o simulador (à direita da imagem) (SHAH et al., 2017):

Modelagem do Veículo: o simulador parte de uma estrutura de corpo rígida onde diferentes partes podem receber atuadores que geram força e torque. O modelo do veículo também inclui parâmetros como massa, inércia, arrasto angular e linear, coeficientes de fricção, etc., que interagem com o Motor de Física. Com essa estrutura, diferentes tipos de veículos podem ser modelados, o que reforça a extensibilidade do AirSim;

Modelagem do Ambiente:existem diferentes fenômenos naturais que atuam sobre o veículo e que precisam ser considerados para aumentar o realismo. Dessa forma, os autores geraram modelos que permitem simular a gravidade, o campo magnético da Terra, a densidade e a pressão do ar (de acordo com altitude);

Motor de Física:os autores adotaram 6 fatores para registrar a cinemática de cada parte do corpo que compõe um veículo: posição, orientação, velocidade 3 Elemento central que calcula a propulsão em cada motor de acordo com a en-

trada no controle físico ou aplicação via SDK, como PX4 e ROSFlight 116

Figura 51 – Arquitetura do simulador Microsoft AirSim e interação com elementos externos. Fonte: traduzido de SHAH et al., 2017

e aceleração linear, velocidade e aceleração angular. Assim, este componente calcula o próximo estado cinemático e a pose, ao avaliar tais fatores a partir das forças e torque atuando sobre eles, com uma frequência de atualização de até 1000 Hz, o que permite simulações em tempo real. Existe ainda a modela- gem física da própria Unreal Engine, que fornece informações sobre colisões para o motor de física, como posição de impacto e profundidade;

Modelagem de Sensores:o AirSim implementa alguns dos sensores mais co- muns em veículos reais, como barômetro, acelerômetro, giroscópio, magnetô- metro e GPS. Como um diferencial, as implementações são interface abstra- tas, o que permite a customização do modelo de cada um desses sensores e ainda a implementação de novos sensores;

Motor de Renderização: é o papel desempenhado pela Unreal Engine. Se- gundo os autores, ela foi escolhida por sua capacidade técnica avançada para renderização gráfica, por possuir uma loja própria que permite a aquisição de componentes gráficos prontos, incluindo ambientes, texturas e outros, e por estar disponível para os principais sistemas operacionais (Linux, Windows e OSX);

Camada de API: permite a interação com o veículo por meio de comandos em diversas linguagens de programação, como C++, C#, Python, Java, etc. Na prática, é possível controlar o veículo, obter vídeos, imagens, dados de

sensores, etc., permitindo a criação de aplicações complexas que interagem com o simulador.

Além destes elementos, a Figura 51 também apresenta elementos externos ao simulador, que interagem com ele para simulações HIL. De forma resumida, coman- dos são enviados usando um Controle (ou joystick) físico, determinando o estado desejado para o veículo (acelerar, subir, descer, etc.). Eles são recebidos peloCon- trolador de Vôo(ou pelofirmwaredo mesmo), que efetua os cálculos necessários para determinar a propulsão em cada motor e os encaminha para umVeículo Real

ou para o Simulador. Para que ele faça os cálculos de forma precisa, ele recebe os dados de sensores, enviados pelo Simulador ou pelo Veículo Real. Por fim, op- cionalmente, é possível utilizar um Computador Auxiliarpara programar missões e rotas, que também interagem com o simulador por meio das APIs.

É exatamente com esta última funcionalidade que o AirSim apresenta a última de suas características mais interessantes: os algoritmos desenvolvidos para intera- ção com o veículo podem funcionar tanto no ambiente de simulação como também ser embarcados em um veículo real, sem ajustes. Isso é possível porque a Ca- mada de API do simulador, também conhecida como AirLib, é implementada com arquitetura Cliente-Servidor. Assim, o componenteServidorpode ser executado de forma independente noComputador Auxiliar, embarcado no veículo, comunicando- se com o Controlador de Vôo por meio de seu protocolo específico, como o Ma- vLink no caso do controlador Pixhawk PX4 (MEIER; HONEGGER; POLLEFEYS, 2017). A aplicação Cliente então envia os comandos na linguagem que preferir, como Python ou C++, sem necessariamente saber se a execução está sendo feita no simulador ou em um veículo real (LOVETT, 2017).

A Figura 52 apresenta um VANT customizado que utiliza o AirLib, conforme ar- quitetura apresentada no último parágrafo. Neste caso, conforme explicado por Lo- vett (2017), foi empregado oControlador de VôoPX4, que se conecta via USB ao

Computador Auxiliar, no caso, uma placa Gigabyte Brix BXi7-5500 executando o Ubuntu, uma das distribuições Linux. Assim, este computador abriga o componente Servidor e também a aplicação Cliente, o que permite que o VANT realize missões de forma completamente autônoma. Essa arquitetura permitiria ainda que o Cliente fosse executado em outro computador e transferisse os comandos para o Servidor via WiFi.

Com base nestas informações, percebe-se que o AirSim apresenta característi- cas interessantes relativas a funcionalidades e extensibilidade, mesmo sendo um projeto relativamente recente, iniciado no final de 2016. O fato de ser executado usando a Unreal Engine abre caminho para a criação dos mais diversos tipos de

Figura 52 – Exemplo de um VANT real que utiliza a Camada de APIs AirLib. Fonte: LOVETT, 2017

ambientes, com física e modelagem tão realistas quanto a capacidade de modela- gem à disposição. O fato de sua camada de APIs, a AirLib, poder ser embarcada em veículos reais e comunicar-se com alguns controladores de vôo, como o PX4, facilita o desenvolvimento de aplicações customizadas, diminuindo a barreira entre simulação e mundo real. Por fim, o fato de ser disponibilizado como código aberto e ter vários contribuidores ativos (MICROSOFT, 2018), indica que o AirSim continu- ará a ser aprimorado e a receber novas funcionalidades, tanto para VANTs quanto para outros tipos de aplicações, como carros autônomos.

Este conjunto de atributos levou à utilização do AirSim para simular um ambi- ente que remete ao pátio de materiais de um porto, que é uma das áreas possíveis para utilização da Plataforma de Inspeção para rolos de transportadores de cor- reias. Esse ambiente pode ser utilizado tanto para teste de aplicações customiza- das quanto para o treinamento de operadores da Plataforma, antes de efetivamente irem a campo com o equipamento real. O fato de utilizarem o controle físico no am- biente simulado, por si só, já tende a aumentar a familiaridade com o equipamento. A seção “5.5 - Simulação” apresenta mais detalhes sobre o ambiente desenvolvido e algumas aplicações customizadas para controle e obtenção de dados do portador no simulador.

Visto que nesta etapa do projeto foram utilizados para validação da Arquitetura Integrada para a Plataforma de Inspeção apenas VANTs comerciais, da fabricante DJI, o AirSim não foi empregado para testar as aplicações desenvolvidas com a SDK, descrita em “4.4.1 - Desenvolvimento para VANTs”. Assim, a próxima sub- seção apresenta o simulador utilizado nos testes de aplicações para os VANTs da

fabricante.

No documento Ouro Preto Minas Gerais, Brasil 2018 (páginas 116-121)