programe o ar.drone - robô voador com linux

Upload: alessandro-de-oliveira-faria-akacabelo

Post on 10-Jul-2015

213 views

Category:

Documents


0 download

DESCRIPTION

Introdução:O que é o Ar.DroneÉ um quadricóptero com processador ARM9 468 MHz, 128 MB, Wifi b/g, USB high speed, câmera inferior e frontal e para finalizar GNU/Linux embarcado. O brinquedo tem SDK, é possível pilotálo com um aparelho PC, Android, iPad, iPhone e qualquer outro brinquedo nerd programável e com comunicação Wifi. Ele pode ser utilizado tanto dentro como fora de casa. O protetor de isopor do casco protege o quadricóptero de impactos que ocorram durante vôos, além de possuir uma forma

TRANSCRIPT

IntroduoO que o Ar.Drone um quadricptero com processador ARM9 468 MHz, 128 MB, Wifi b/g, USB high speed, cmera inferior e frontal e para finalizar GNU/Linux embarcado. O brinquedo tem SDK, possvel pilotlo com um aparelho PC, Android, iPad, iPhone e qualquer outro brinquedo nerd programvel e com comunicao Wifi. Ele pode ser utilizado tanto dentro como fora de casa. O protetor de isopor do casco protege o quadricptero de impactos que ocorram durante vos, alm de possuir uma forma aerodinmica, permitindo grande controle no exterior. Com o Ar.Drone possvel jogar com outros utilizadores graas a sua rede Wi-Fi e o recurso de realidade aumentada. O AR.Drone inclui uma unidade de medida inerte, sensores ultra-som e uma cmera vertical, na qual voc tambm consegue gravar vdeos e tirar fotos. Atinge uma velocidade nica: 18 km/h,tem uma autonomia de vo de 12 minutos, hlices de alta eficincia, bateria de ltio polmero (3 clulas, 11,1 V, 1000 mAh - UL2054), seu tempo de carregamento da bateria de 90 minutos, a frequncia do vdeo atinge 60 FPS, permite a estabilizao, mesmo com uma leve brisa e travamento automtico das hlices no caso de contato.

Onde comprarExistem diversos locais para adquirir o AR.Drone, basta um pouco de pesquisa no Google e pronto, porm um dos meus aparelhos foi comprado no AliExpress, mas podemos encontrar no Brasil o AR.Drone com um preo um pouco salgado no Magazine Luiza mas com garantia e tudo mais.

Onde e/ou como consertarO AR.Drone: O Ar.Drone muito simples de consertar, pois a manuteno do hardware com as ferramentas corretas permite a troca de motores, placa me e qualquer pea em minutos. Na pgina oficial existem diversos vdeo para reparar o brinquedo, Como exemplo, veja o vdeo a seguir da troca do motor:

NASA e o filme SmurfsO AR.Drone esta fazendo tando sucesso que a NASA j brinca com o ele, como tambm no filme dos Smurfs existem cenas com o AR.Drone.

O desenvolvimento: hora do Jedi!O AR.Drone, alm de possuir Linux embarcado, disponibiliza um SDK com o cdigo fonte completo. A partir dai surgiram diversas opes para program-lo nas mais variadas linguagens de programao. Estou desenvolvendo um biblioteca de alto nvel, mas no vou esperar termin-la para escrever este texto. Mesmo porque estou cada vez mais atarefado... Mencionarei neste documento 3 de inmeras opes para dominar o AR.Drone no que tange a programao e desenvolvimento de solues com esta aparelho. O SDK oficial, o linguagem URBI e uma iniciativa que permite programa o AR.Drone junto a tecnologia de viso computacional openCV. Viva \o/ Um breve resumo como funciona o AR.Drone: O desenho abaixo resume bem a arquitetura de funcionamento do AR.Drone. A desacelerao em cada uma das hlices deriva em um determinado resultado. Sem contar no senso ultrassnico e para requintar as cmeras (inferior e frontal).

Fica aqui a minha primeira dica: inicialmente conseguia conectar apenas com o meu iPad, isto pelo fato do AR.Drone gravar o mac-address do primeiro equipamento conectado. Para conectar outros dispositivos, foi preciso efetuar um telnet no brinquedo e modificar o arquivo config.ini e alterando o parmetro owner_mac para zero.owner_mac = 00:00:00:00:00:00

Existem inmeros software para o iPhone, iPAD, Android e Nokia. Ressalto que no SDK, encontramos os respectivos exemplos para brincar. No d para detalhar o desenvolvimento em todas as plataformas em apenas uma artigo, ento ficar para os prximos os assuntos referente programao. Abaixo um resumo bsico das configurao do AR.Drone.

Tilt:Praticamente ajusta a velocidade horizontal, porm no devemos esquecer da sensibilidade do acelermetro que interfere nesta acelerao.

VerticalSpeed:Como o prprio nome diz, define velocidade Vertical e claro, por consequncia o sobe e desce do aparelho.

Yam Speed:Define a velocidade de rotao, ou seja sentido horrio ou anti-horrio (esquerda ou direita).

Download e instalao do AD.DRONE open APIO SDK oficial devemos obter em https://projects.ardrone.org/ L encontraremos a ltima verso do SDK frum de discusso entre informaes tcnicas. Aps o download, descompacte os fontes com o comando tar -zxvf conforme o exemplo abaixo.$ tar -zxvf ARDrone_SDK_Version_1_8_20110726.tar.gz $ cd ARDrone_SDK_Version_1_8_20110726/Examples/Linux $ make

Pronto, nesta etapa o SDK e as bibliotecas esto compiladas a pronto para uso, porm comearemos com algumas dicas. Para conectar com o AR.Drone, coloque a sua interface de rede em modo Ad-Hoc, informe o nome da rede, desabilite a criptografia e defina o IP.$ iwconfig wlan0 mode Ad-Hoc essid [Nome-Rede] key off $ ifconfig wlan0 192.168.1.5 netmask 255.255.255.0 up

Agora para testar o programa exemplo, entre na pasta Examples/Linux e execute o binrio ardrone_navigation.$ cd Examples/Linux/ $ ./ardrone_navigation

Se tudo estiver funcionando corretamente, teremos o lindo formulrio e/ou painel acima. Clique em "USB Configuration" para mapear os controles do joystick, wiimote, teclado ou outro dispositivo. Ressalto que para tudo funcionar corretamente, devemos alterar o cdigo-fonte inserindo o nmero do device obtido com o comando lsusb e o respectivo mapeamento. Para visualizar o vdeo das cmeras do ARDrone, entre na opo "Show Drone Vdeo", finalizando para define a configurao de voo, clique em "Flight control settings". Abaixo algumas ilustraes:

URBI e AR.Drone:A Gostai, uma empresa francesa especialista em robtica desenvolveu em cdigo aberto um sistema operacional para robtica, compatvel com o Linux, Windows, e vrios outros sistemas operacionais em tempo-real, e utiliza uma linguagem de script para orquestrao chamada urbiscript, que integra naturalmente paralelismo e programao baseada em eventos.

Esta plataforma de software est disponvel para prover funcionalidade para uma ampla gama de dispositivos, incluindo o cachorro-rob da Sony, o Aibo, o Segway, o Lego Mindstorms NXT, AR.Drone e muitos outros. Mais detalhes, sugiro entrar no site Urbi Forge . Partiremos agora para o para o download e instalao desta opo. Efetue o download e descompactao do pacote:$ wget http://www.psykokwak.com/blog/images/ardrone/urbi-sdk-2.3-linux-x86-gcc4ardrone-1.0.tar.bz2 $ tar -jxvf urbi-sdk-2.3-linux-x86-gcc4-ardrone-1.0.tar.bz2 $ cd urbi-sdk-2.3-linux-x86-gcc4-ardrone-1.0/ $ sh start

Se voc estiver conectado com o ARDrone e tudo estiver funcionando corretamente, teremos o seguinte resultado no console. Isto significa que estamos prontos para enviar comando para o ARDrone, como o foco deste artigo demonstrar as opo disponveis, deixarei a parte de programao para o prximo documento. Deixo aqui apenas a observao para ficarmos atento ao urbi especfica no arquivo start, pois ele que determina que mdulo ser executado e por consequncia o comportamento do AR.Drone.[00000121] [00000121] [00000124] [00000124] [00000124] [00000124] [00000124] [00000124] [00000124] [00000124] [00000152] *** ******************************************************** *** Urbi SDK version 2.3 rev. 9a84600 *** Copyright (C) 2005-2010 Gostai S.A.S. *** *** This program comes with ABSOLUTELY NO WARRANTY. It can *** be used under certain conditions. Type `license;', *** `authors;', or `copyright;' for more information. *** *** Check our community site: http://www.urbiforge.org. *** ******************************************************** ARDrone_0x83f7130

before setLocale() before ardrone_tool_setup_com(NULL) before ardrone_tool_init(...) Starting thread navdata_update Starting thread ardrone_control before ardrone_input_add(NULL) Input device myControl added Thread navdata_update in progress... Starting thread my_video Thread navdata_update in progress... Video stage thread initialisation

A interface RAD da empresa Gostai foi o que mais me impressionou, pois com ela possvel arrastar os componentes e montar a sua interface grfica com apenas alguns cliques. O download deve ser efetuado no link abaixo, logo aps descompacte o arquivo e execute o script GostaiLab.sh. Download: http://www.gostai.com/download/gostai_lab/$ sh gostai-lab-2.5-linux.sh $ cd gostai-lab-2.5-linux/bin $ ./GostaiLab.sh

A interface muito intuitiva, com o script urbi balltracking.u configurado no arquivo start mencionado anteriormente, elaborei uma prova de conceito onde o AR.Drone acompanha o corao vermelho do pinguim.

Para finalizar, CutedroneCutedrone uma biblioteca escrita em C++ para comunicao com o AR.Drone. Escrita em QT/C+ + a biblioteca proporciona uma exemplo em python que permite movimentar o AR.Drone com a face. Mais informaes aqui e neste link um vdeo demonstrativo...

Agradecimentos"A todos os membros da comunidade de cdigo aberto que levam a srio o ESPRITO HACKER e utilizam essa fora para o bem, aos que defendem a "LIBERDADE DA INFORMAO", aos que me incentivaram desde 1998 em meus primeiros contatos com o Software Livre, aos que se sacrificam para divulgar informaes, aos que amam os seus idealismos acima do capitalismo e que lutam para fazerem um mundo melhor sem prejudicar terceiros. A todos que defendem estes ideais, um MUITO OBRIGADO!"

Sobre o autor: (Alessandro de Oliveira Faria A.K.A.CABELO )