Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Aprenda inglês de uma vez por todas

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

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

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.02/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (605 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*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
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Programando o Android