Quadrocopter Simulator: uma plataforma para simulação de vôo
Cládio Martins Jr. e Leonardo Heidrich
Universidade do Vale do Rio dos Sinos (Unisinos)
Unisinos 950, São Leopoldo, RS, Brasil
[email protected], [email protected]
Resumo
Este artigo descreve o desenvolvimento da
primeira versão de uma plataforma de simulação de vôo
chamada Quadrocopter Simulation. Nesse projeto o
objetivo principal é prever situações críticas em que o
dispositivo venha a perder o controle, tomando decisões
antecipadas antes mesmo de construí-lo, com a finalidade
de minimizar erros de desenvolvimento.
1. Introdução
A cada dia, mais inseguras e violentas ficam as
ruas das grandes e pequenas cidades. Com isso, o
desenvolvimento de sistemas que possibilitem o
monitoramento dessas ruas de maneira remota vem
crescendo constantemente. Baseado nessa necessidade foi
proposto desenvolver uma aeronave capaz de fazer a
vigilância de quaisquer áreas a partir de uma câmera de
vídeo embarcada no veículo. Esse monitoramento remoto
é possível através do envio dessas imagens capturadas
pela câmera por uma rede de internet sem fio (Wireless).
A estrutura escolhida para desenvolver a
aeronave foi baseada no projeto U.A.V.P. (Universal
Aerial Video Platform), que é um projeto open source
realizado por três universidades europeias. Essa aeronave
denominada Quadrocóptero, é composta por quatro
motores o que faz com que ela tenha uma boa
estabilidade, permitindo assim uma boa captura das
imagens.
Neste primeiro ano de projeto, nos propomos a
construir um simulador para a aeronave, levando em
consideração poder prever como ela se comportaria, quais
tipos de comandos seriam relevantes, quais problemas
poderiam ocorrer e como poderiam ser solucionados.
Tendo em vista que no segundo ano do curso de
Engenharia da Computação da Unisinos é sugerido o
desenvolvimento de um projeto, aproveitamos o espaço
disponibilizado pela instituição para efetuar a realização
dessa primeira etapa. Durante esse ano de 2008, foram
aproveitadas atividades específicas de disciplinas distintas
para o desenvolvimento do trabalho, agilizando algumas
sub-etapas do projeto como programação Java para
desktops e programação para microcontroladores.
O projeto é composto basicamente por um
software, responsável pela etapa de controle e por um
hardware, que tem como função o acionamento
independente de cada um dos quatro motores que
compõem a aeronave.
O objetivo principal que nos incentivou a
desenvolver esse projeto foi a deficiência na área do
monitoramento remoto, onde o controle dessa plataforma
móvel pode ser feito a distância, prevendo uma não
exposição à determinados riscos que esse segmento
possui.
2. Desenvolvimento
Neste primeiro ano de projeto, focamos o
desenvolvimento na parte de simulação de vôo da
aeronave. Essa simulação é composta por uma parte
desenvolvida em software, outra em hardware, sendo
interligada através da comunicação serial, responsável
pelo envio de comandos do software para o hardware.
A simulação via software se deu a partir do
controle de movimentação com visualização em uma
interface 3D (três dimensões) e com um gráfico, também
em 3D, de rotação individual de cada motor. O controle
dos movimentos é originado a partir de um joystick do
tipo manche. Conforme a posição em que o joystick se
encontra, determinado par de coordenadas é enviado para
o software. Um novo par de coordenadas é enviado
constantemente acarretando numa seqüência de
comandos. Esses comandos fazem com que haja variação
da movimentação na interface de visualização. Na figura
01 pode ser vista a interface de simulação:
valor lido em um sinal de tensão do tipo P.W.M. (pulse
width modulation) que faz o acionamento dos motores.
Como esse sinal é relativamente baixo para fazer com que
o motor se movimente, um circuito externo é responsável
por aumentar a amplitude e a intensidade da corrente do
sinal P.W.M. Com o intuito de comparar o valor de
rotação dos motores no software e no hardware para
podermos analisar se ambos estão sincronizados, é
mostrado esse valor em um display de LCD (liquid cristal
display).
O microcontrolador possui um pequeno software
que faz o gerenciamento desse sinal enviado e distribui
ordenadamente para cada um dos motores que compõem a
aeronave. Esse software foi implementado na linguagem
de programação C.
3. Funcionalidades
Figura 01: Interface de simulação em 3D
Da mesma maneira, a seqüência de comandos faz
com que o gráfico de rotação também sofra alteração
proporcional ao movimento. O gráfico de rotação dos
motores pode ser acompanhado na figura 02:
Através dessas simulações feitas em software e
hardware, pode-se analisar o comportamento de todo o
conjunto. Uma das vantagens da simulação é poder prever
como a aeronave se comportaria no ar, qual tipo de
movimento faria, antecipando medidas para prevenção de
erros. Essa análise será de grande valor no momento em
que a segunda etapa do projeto estiver em andamento.
Outra simulação de extrema importância é em
relação à velocidade de rotação dos motores. Com a
análise de desempenho individual de cada motor, pode-se
coletar dados de como os motores estão se comportando,
qual a intensidade de corrente está utilizando, e com isso
limitar tais velocidades para que sobrecarga ou
aquecimento não venham a ocorrer durante o vôo.
4. Dificuldades encontradas
Figura 02: Gráfico de rotação dos motores
A simulação em hardware é realizada com o
envio dos comandos através da porta de comunicação
serial. Os comandos gerados pelo joystick são enviados
serialmente para um microcontrolador que converte o
Durante essa primeira etapa de desenvolvimento,
muitas dificuldades de fizeram presentes, acarretando
períodos longos de desenvolvimentos em determinadas
fases do projeto.
Umas das primeiras dificuldades que apareceram
foi em relação à leitura do joystick. Como a Sun, grupo o
qual o Java faz parte, não disponibiliza nenhuma A.P.I.
(application programming interface) oficial para trabalhar
com controladores de jogos, utilizamos uma biblioteca
alternativa para implementarmos a leitura do dispositivo.
Como não possuíamos nenhuma experiência relativa a
isso, passamos boa parte do ano estudando essa A.P.I.
Com o desenrolar do projeto, outra dificuldade
se fez presente, essa em relação ao tratamento de imagens
em 3D. Apesar de que a Sun possui um A.P.I. oficial para
o desenvolvimento de interfaces 3D, muitas dificuldade
foram encontradas, pois da mesma forma que o joystick,
também não possuíamos nenhum conhecimento em
relação à essa tecnologia.
Uma das fazes mais difíceis do projeto foi a
implementação da comunicação serial entre o computador
e o microcontrolador. Apesar de esse conteúdo ter sido
trabalhado durante uma das disciplinas do curso, essa
etapa foi a que nos custou maior tempo e empenho, pelo
motivo
que
escolhemos
trabalhar
com
um
microcontrolador que não possuía comunicação serial
como periférico. Toda a implementação foi feita
trabalhando com um nível de abstração muito baixo,
utilizando recursos complexos do microcontrolador.
Uma das últimas dificuldades relevantes foi no
momento de implementar o gráfico de rotação dos
motores em 3D. Novamente, apesar da Sun possuir uma
biblioteca oficial para trabalhar com gráficos complexos,
ela se mostra bastante complicada, não sendo fácil o
compreendimento em um primeiro estudo.
5. Perspectiva futura
Como dito anteriormente, nesse ano foi realizada
ainda a primeira etapa do desenvolvimento do protótipo.
A perspectiva é que o desenvolvimento do projeto
continue no próximo ano, aproveitando novamente o
espaço
disponibilizado
pela
universidade
para
desenvolvermos um projeto no terceiro ano do curso.
Temos como principal objetivo para a próxima
etapa do desenvolvimento, a construção da aeronave, bem
como a estrutura, circuitos eletrônicos e o controle através
da rede sem fio.
6. Referências Bibliográficas
[1] Site U.A.V.P.
http://uavp.ch/moin
[2] A.P.I. JFreeChart
http://www.jfree.org/jfreechart/api/javadoc/index.html
[3] A.P.I. Java3D
http://java.sun.com/javase/technologies/desktop/java3d/fo
rDevelopers/J3D_1_3_API/j3dapi/index.html
Download

Quadrocopter Simulator: uma plataforma para simulação