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 ...
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