você está aqui: Home  → Arquivo de Mensagens

AR.Drone - O robô voador com Linux embarcado

Colaboração: Alessandro de Oliveira Faria

Data de Publicação: 30 de setembro de 2011

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.

Clique para ver a imagem ampliada

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 aerodinâmica, permitindo grande controle no exterior.

Com o Ar.Drone é possível jogar com outros utilizadores graças 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 câmera vertical, na qual você também consegue gravar vídeos e tirar fotos.

Atinge uma velocidade única: 18 km/h,tem uma autonomia de vôo de 12 minutos, hélices de alta eficiência, bateria de lítio polímero (3 células, 11,1 V, 1000 mAh - UL2054), seu tempo de carregamento da bateria é de 90 minutos, a frequência do vídeo atinge 60 FPS, permite a estabilização, mesmo com uma leve brisa e travamento automático das hélices no caso de contato.

Onde comprar

Existem diversos locais para adquirir o AR.Drone, basta um pouco de pesquisa no Google e pronto, porém um dos meus aparelhos foi comprado no [AliExpress ""http://www.aliexpress.com], mas podemos encontrar no Brasil o AR.Drone com um preço um pouco salgado no Magazine Luiza mas com garantia e tudo mais.

Onde e/ou como consertar

O Ar.Drone é muito simples de consertar, pois a manutenção do hardware com as ferramentas corretas permite a troca de motores, placa mãe e qualquer peça em minutos. Na página oficial existem diversos vídeo para reparar o brinquedo, Como exemplo, veja o vídeo a seguir da troca do motor:

Mesmo assim, para quem deseja comodidade e suporte, no Brasil o AR.Drone recebe suporte da empresa [www.gohobby.com.br ""http://www.gohobby.com.br]. Espero nunca precisar dela... Mas nunca se sabe... É sempre bom saber onde pedir ajuda se necessário, então fica ai a minha dica, mas ressalto que deve existir outras empresa que proporciona este serviço para este aparelho.

NASA e o filme Smurfs

O AR.Drone esta fazendo tanto sucesso que a NASA já brinca com o ele, como também no filme dos Smurfs existem cenas com o AR.Drone.

 

O desenvolvimento: hora do PAU!

O AR.Drone, além de possuir [Linux ""http://www.vivaolinux.com.br/linux/] embarcado, disponibiliza um SDK com o código fonte completo. A partir dai surgiram diversas opções para programá-lo nas mais variadas linguagens de programação. Estou desenvolvendo um biblioteca de alto nível, mas não vou esperar terminá-la para escrever este texto. Mesmo porque estou cada vez mais atarefado...

Mencionarei neste documento 3 de inúmeras opções para dominar o AR.Drone no que tange a programação e desenvolvimento de soluções com esta aparelho. O SDK oficial, o linguagem URBI e uma iniciativa que permite programa o AR.Drone junto a tecnologia de visão 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 desaceleração em cada uma das hélices deriva em um determinado resultado. Sem contar no senso ultrassônico e para requintar as câmeras (inferior e frontal).

Clique para ver a imagem ampliada

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 parâmetro owner_mac para zero.

  owner_mac = 00:00:00:00:00:00 

Existem inúmeros software para o iPhone, iPAD, Android e Nokia. Ressalto que no SDK, encontramos os respectivos exemplos para brincar. Não dá para detalhar o desenvolvimento em todas as plataformas em apenas uma artigo, então ficar para os próximos os assuntos referente à programação. Abaixo um resumo básico das configuração do AR.Drone.

Tilt:

Praticamente ajusta a velocidade horizontal, porém não devemos esquecer da sensibilidade do acelerômetro que interfere nesta aceleração.

Clique para ver a imagem ampliada

VerticalSpeed:

Como o próprio nome diz, define velocidade Vertical e claro, por consequência o sobe e desce do aparelho.

Clique para ver a imagem ampliada

Yam Speed:

Define a velocidade de rotação, ou seja sentido horário ou anti-horário (esquerda ou direita).

Clique para ver a imagem ampliada

Download e instalação do AD.DRONE open API

O SDK oficial devemos obter em https://projects.ardrone.org/

Lá encontraremos a última versão do SDK fórum de discussão entre informações técnicas. Após 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 estão compiladas a pronto para uso, porém começaremos 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 binário ardrone_navigation.

  $ cd Examples/Linux/
  $ ./ardrone_navigation
Clique para ver a imagem ampliada

Se tudo estiver funcionando corretamente, teremos o lindo formulário 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 código-fonte inserindo o número do device obtido com o comando lsusb e o respectivo mapeamento.

Para visualizar o vídeo das câmeras do ARDrone, entre na opção "Show Drone Vídeo", finalizando para define a configuração de voo, clique em "Flight control settings". Abaixo algumas ilustrações:

Clique para ver a imagem ampliada

URBI e AR.Drone:

Clique para ver a imagem ampliada

A Gostai, uma empresa francesa especialista em robótica desenvolveu em código aberto um sistema operacional para robótica, compatível com o Linux, Windows, e vários outros sistemas operacionais em tempo-real, e utiliza uma linguagem de script para orquestração chamada urbiscript, que integra naturalmente paralelismo e programação baseada em eventos.

Esta plataforma de software está disponível 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 ""http://www.urbiforge.org/] . Partiremos agora para o para o download e instalação desta opção.

Efetue o download e descompactação do pacote:

  $ wget http://www.psykokwak.com/blog/images/ardrone/urbi-sdk-2.3-linux-x86-gcc4-ardrone-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 opção disponíveis, deixarei a parte de programação para o próximo documento.

Deixo aqui apenas a observação para ficarmos atento ao urbi específica no arquivo start, pois é ele que determina que módulo será executado e por consequência o comportamento do AR.Drone.

  [00000121] *** ********************************************************
  [00000121] *** Urbi SDK version 2.3 rev. 9a84600
  [00000124] *** Copyright (C) 2005-2010 Gostai S.A.S.
  [00000124] ***
  [00000124] *** This program comes with ABSOLUTELY NO WARRANTY.  It can
  [00000124] *** be used under certain conditions.  Type `license;',
  [00000124] *** `authors;', or `copyright;' for more information.
  [00000124] ***
  [00000124] *** Check our community site: ""http://www.urbiforge.org.
  [00000124] *** ********************************************************
  [00000152] 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 é possível arrastar os componentes e montar a sua interface gráfica com apenas alguns cliques. O download deve ser efetuado no link abaixo, logo após 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 coração vermelho do pinguim.

 

Para finalizar, Cutedrone

Cutedrone é uma biblioteca escrita em C++ para comunicação 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 informações aqui e neste link um vídeo demonstrativo...

Clique para ver a imagem ampliada

Vou encerrar aqui e deixar o tópico desenvolvimento para um próximo documento. Pois além de ficar extenso, quero também publicar as minhas evoluções atuais envolvendo visão computacional. Sendo assim, espero que este texto superficial seja o suficiente para direcionar os entusiastas que desejam dominar o brinquedo chamado AR.Drone... Como sempre menciono... Colaborar atrai amigos, competir atrai inimigos...

Para finalizar, críticas e sugestões: <cabelo (a) opensuse org>

Alessandro de Oliveira Faria é Sócio-proprietário da empresa NETi TECNOLOGIA fundada em Junho de 1996, empresa especializada em desenvolvimento de software e soluções biométricas, Consultor Biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986 assim propiciando ao mercado soluções em software nas mais diversas linguagens e plataforma, levando o Linux a sério desde 1998 com desenvolvimento de soluções open-source, diversos documentos técnicos disponibilizado na internet, membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca open-source de vídeo captura, openSUSE Member entre outros projetos.

Copyright - Para sempre menos um dia - Traduzido e legendado

Por Fátima Conti

O filme sobre Copyright foi traduzido e legendado :)

Está aqui:

Copyright - Para sempre menos um dia - 2

Tradução livre das legendas feita por @sergiorauber :)

Inserção e sincronismo das legendas por @modestiasuprema :)

No youtube:

Direitos autorais para sempre menos um dia

Original em inglês:



Veja a relação completa dos artigos de Alessandro de Oliveira Faria

 

 

Opinião dos Leitores

Osmar
15 Set 2013, 09:01
Bom dia, e conseguiria ter as informaçoes de altitude das fotografias?
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script