Infra - Linux
O que é Ar.Drone
Veja neste artigo 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.
por Alessandro de Oliveira FariaIntroduçã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 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, 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:
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:
Veja o vídeo : http://www.youtube.com/embed/xVH2djmAAOc
Mesmo assim, para quem deseja comodidade e suporte, no Brasil o AR.Drone recebe suporte da empresa www.gohobby.com.br, espero nunca precisar dela... Mas nunca se saber... É 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 tando sucesso que a NASA já brinca com o ele, como também no filme dos Smurfs existem cenas com o AR.Drone.
Veja o vídeo : http://www.youtube.com/embed/Jrct_XJj7wM
Veja o vídeo : http://www.youtube.com/embed/YmnFP-1UlSY
O desenvolvimento: hora do PAU!
O AR.Drone, além de possuir 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).
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.
VerticalSpeed:
Como o próprio nome diz, define velocidade Vertical e claro, por consequência o sobe e desce do aparelho.
Yam Speed:
Define a velocidade de rotação, ou seja sentido
horário ou anti-horário (esquerda ou direita).
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
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:
URBI e AR.Drone:
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 . 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.
<iframe width="560" height="345" src="http://www.youtube.com/embed/Brwq9WIzI0k" frameborder="0" allowfullscreen></iframe>
<iframe width="420" height="345" src="http://www.youtube.com/embed/mvuOGXQK0b8" frameborder="0" allowfullscreen></iframe>
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...
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@opensuse.org
Sobre o autor: http://www.netitec.com.br/alessandro
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware