26.12.2014 Views

Desenvolvimento de um Veículo Aéreo Não-Tripulado - LARA ...

Desenvolvimento de um Veículo Aéreo Não-Tripulado - LARA ...

Desenvolvimento de um Veículo Aéreo Não-Tripulado - LARA ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

período <strong>de</strong> amostragem.<br />

4.8.1 Sistema Operacional em Tempo Real - Xenomai<br />

Devido aos requisitos do projeto, o sistema original fornecido pelo G<strong>um</strong>stix teve que ser modificado<br />

para funcinar em tempo real. Originalmente, o G<strong>um</strong>stix vem com <strong>um</strong> sistema operacional<br />

Linux baseado no OpenEmbed<strong>de</strong>d, <strong>um</strong>a distribuição para sistemas embarcados em geral. Dessa<br />

forma, visando manter o Linux para usurfruir da gran<strong>de</strong> quantida<strong>de</strong> <strong>de</strong> bibliotecas e suporte, a<br />

idéia foi exten<strong>de</strong>r o Linux para aten<strong>de</strong>r as exigências <strong>de</strong> tempo real.<br />

Os dois gran<strong>de</strong>s projetos que fornecem tempo real para o Linux são o RTAI (RealTime Application<br />

Interface for Linux) e o Xenomai [49]. O primeiro é mais antigo, porém, sua última<br />

atualização foi em 2010. O Xenomai é <strong>um</strong> projeto mais novo (baseado no RTAI), que está sendo<br />

continuamente atualizado. A principal dificulada<strong>de</strong> associada a esses projetos são a necessida<strong>de</strong><br />

<strong>de</strong> se modificar o kernel do Linux.<br />

Devido a experiência no <strong>LARA</strong>, a escolha foi a utilização do Xenomai utilizando <strong>um</strong>a versão<br />

modificada do OpenEmbed<strong>de</strong>d <strong>de</strong>senvolvida <strong>de</strong>ntro do <strong>LARA</strong> (com base em [50, 51]). O sistema<br />

resultante é <strong>um</strong>a versão embarcada <strong>de</strong> tamanho reduzido do Linux com Xenomai, e está disponibilizado<br />

livremente na Wiki do <strong>LARA</strong>.<br />

A versão modificada do OpenEmbed<strong>de</strong>d removeu todos os aplicativos não essenciais, a fim <strong>de</strong><br />

reduzir ao máximo o tamanho do sistema operacional. Todos os serviços também foram removidos,<br />

para reduzir o cons<strong>um</strong>o <strong>de</strong> RAM e diminuir o tempo <strong>de</strong> boot. O kernel também foi modificado para<br />

remover qualquer tipo <strong>de</strong> funcionalida<strong>de</strong> que fosse interferir com o funcionamento da aeronave e<br />

do sistema operacional em tempo real. Finalmente, os módulos do kernel não essenciais foram<br />

removidos, e os essenciais compilados diretamente no kernel.<br />

Com base nessa versão, o kernel recebeu o A<strong>de</strong>os I-pipe (interrupt pipeline), que implementa<br />

<strong>um</strong> nano-kernel que opera em paralelo com o kernel do Linux, permitindo que o Xenomai interrompa<br />

o kernel do Linux para garantir a operação em tempo real [49]. O A<strong>de</strong>os utilizado foi<br />

especialmente modificado para uso no OMAP3530 do G<strong>um</strong>stix. As bibliotecas do Xenomai foram<br />

acrescentadas ao sistema base para gerar o sistema operacional completo para a aeronave.<br />

Antes <strong>de</strong> continuar o <strong>de</strong>senvolvimento, o <strong>de</strong>terminismo e latência do sistema foram aferidos<br />

utilizando <strong>um</strong> osciloscópio e <strong>um</strong> código <strong>de</strong>senvolvido no <strong>LARA</strong>, além da suíte <strong>de</strong> testes fornecida<br />

pelo Xenomai. O sistema também passou por <strong>um</strong> teste <strong>de</strong> confiabilida<strong>de</strong>, on<strong>de</strong> ele executou<br />

programas <strong>de</strong> teste em tempo real por várias horas sem violar o <strong>de</strong>terminismo ou travar.<br />

Outra dificulda<strong>de</strong> do Xenomai é a utilização <strong>de</strong> dispositivos <strong>de</strong> hardware em tempo real. A<br />

forma tradicional <strong>de</strong> implementação <strong>de</strong> drivers no Linux fazem com que todos os comandos passem<br />

pelo HAL do Linux [52], o que gera <strong>um</strong>a latência fora do controle do Xenomai - violando as<br />

premissas do sistema operacional em tempo real. Como toda a comunicação é serial, surgiu a<br />

necessida<strong>de</strong> <strong>de</strong> <strong>de</strong>senvolvimento <strong>de</strong> <strong>um</strong>a forma <strong>de</strong> acesso direto a porta serial através do Xenomai.<br />

A solução encontrada foi a remoção dos drivers do Linux, para evitar a interferência dos<br />

79

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!