Universidade Federal de São Carlos
Pró-Reitoria de Pesquisa
Coordenadoria de Iniciação Cientı́fica e Tecnológica
RELATÓRIO FINAL DE INICIAÇÃO
CIENTÍFICA
BOLSA PADRD
Modelagem e simulação de um robô quadrotor
Aluna: Isabella Cristina Souza Faria
Engenharia Mecânica
Orientador: Prof. Dr. Roberto Santos Inoue
Engenharia Elétrica/CCET
São Carlos
2014
1
1 Resumo
O presente trabalho apresenta os resultados simulados do controle Proporcional-Derivativo
(PD) de um quadrotor para estabilização e acompanhamento de trajetória. Para isso, foram utilizadas as equações do modelo cinemático e dinâmico do quadrotor, obtidas pelo
método de Newton-Euler-Lagrange. A trajetória do quadrotor foi determinada através de
R
polinômios de quinto grau. A simulação do sistema foi realizada em MATLAB
. E os
resultados foram analisados através de gráficos de erro entre a trajetória de referência e a
realizada pelo quadrotor.
2 Introdução ao Problema
Veı́culos aéreos não tripulados (VANT), vem sendo utilizados por diversos setores da
economia, como as áreas agrı́cola, industrial, comercial e predial. Isto ocorreu principalmente devido a crescente disponibilidade de recursos computacionais de alto desempenho,
avanços em tecnologias de transmissão de dados e de posicionamento global. O que permitiu o desenvolvimento de aeronaves mais confiáveis e versáteis e a diminuição dos custos
de construção desses veı́culos, [1].
Um dos principais tipos de VANTs são os quadrotores. Este veı́culo é um helicóptero
com quatro rotores. Os rotores são direcionados para cima e são posicionados em uma
formação quadrada com distâncias iguais do centro de massa da aeronave. O quadrotor é
controlado por variações nas velocidades angulares de seus rotores, os quais são acionados
por motores elétricos, [2]. Este tipo de plataforma tem-se tornado popular em pesquisas que
utilizam VANTs, principalmente devido a sua simplicidade de construção e manutenção,
sua habilidade de pairar, levando em conta os efeitos aerodinâmicos resultantes da variação
da velocidade do ar, [3]. Como exemplo de utilização do quadrotor como plataforma de
pesquisa, podemos citar os trabalhos realizados em [4], onde foram realizados experimentos com um quadrotor para navegação autônoma visual em ambientes estruturados. Em
[5], onde abordagens de aprendizado de máquinas foram aplicadas para predizer erros de
posição de acompanhamento de trajetória do voo de um quadrotor. E outras pesquisas, as
quais tem-se utilizado o quadrotor em vigilância autônoma [6], interação homem-máquina
[7], e até mesmo como assistente de esporte [8]. Além disso, alguns estudos buscam o
melhoramento da dinâmica do quadrotor. Em [9], a dinâmica do veı́culo foi feita usando
modelos lineares SISO. Outras técnicas de melhoramento são vistas em [10] e [11].
Contudo para a utilização do quadrotor como plataforma de pesquisa é necessário
realizar o controle desse tipo de aeronave. E conforme descrito em [2], o ponto de partida é
o conhecimento do modelo matemático do veı́culo. Assim, em [3] e [12] foram estudados o
modelo dinâmico do quadrotor com adição de propriedades aerodinâmicas mais complexas.
Em [9], [13] e [14] foram utilizados modelos identificados. Já em relação ao controle do
quadrotor, diferentes estratégias vem sendo pesquisadas, incluindo controladores PID,[15],
[16] e [17], controle backstepping, [18] e [19], controladores LQR, [17], e controladores
não lineares com saturações, [20] e [21]. Em [22] usou-se controlador PD para controlar
a atitude da aeronave, uma função foi usada para se obter uma estabilização com base
na compensação. Métodos de controle não-linear também vem sendo estudados, em [23]
um controle não-linear H1 robusto e um integrante preditivo foram utilizados, além disso,
para estabilizar o movimento de rotação do helicóptero um controlador não-linear H∞
foi sintonizado. No trabalho [24] foi feita uma comparação entre as técnicas de controle
2
lineares e não-lineares de baixo nı́vel para garantir a estabilidade e segurança da aeronave
em situações adversas. Métodos de controle requerem informações precisas de medidas
de posição e atitude do veı́culo. Estas medidas são realizadas através de uma unidade
de medida inercial, composta por giroscópios, acelerômetros e magnetômetros, e outros
dispositivos de medidas como um receptor GPS, e sensores sonares e laser, [25] e [26]. Em
[27], obteve-se a estimativa da atitude de um plataforma aérea por meio de um GPS, um
acelerômetro e um sensor da taxa de variação da velocidade. A estimativa da atitude foi
feita por meio de um modelo estimador usando a teoria do quaternário e uma outra opção
foi o uso do filtro de Kalman.
Nesse projeto de iniciação cientı́fica será realizado o estudo do modelo matemático,
controle e simulação de um robô quadrotor. Para isto será utilizado o modelo matemático
e a proposta de controle PD (proporcional e derivativo) apresentada em [2]. As simulações
R
de voo da aeronave foram feitas em MATLAB
através de trajetórias geradas por meio de
polinômios de quinto grau.
3 Modelagem Matemática
As equações diferenciais usadas no projeto são obtidas da derivação das equações de
Newton-Euler-Lagrange. A Figura 9 representa a estrutura do quadrotor, com as velocidades angulares, torques e forças criadas por cada um dos rotores. Sendo i = 1, 2, 3, 4, ωi é
a velocidade angular em cada rotor, fi é a força em cada rotor, τMi é o torque em cada
rotor, φ é o ângulo de rolagem dado pela rotação em torno do eixo x, θ é o ângulo arfagem
dado pela rotação em torno do eixo y, e ψ é o ângulo de guinada dado pela rotação em
torno do eixo z, para maiores detalhes sobre a modelagem do quadrotor veja [2]. E para
facilitar o desenvolvimento das equações do modelo, define-se o vetor s = [x y z]T como
a posição linear da aeronave no referencial inercial e o vetor n = [φ θ ψ]T como a posição
angular aeronave no referencial inercial.
Figura 1: Sistema de coordenadas inercial e do corpo de um quadrotor ([2]).
A origem da estrutura do corpo fica no centro de massa do quadrotor. Na estrutura do
corpo, as velocidades lineares são determinadas por VB = [vxB vy,B vzB ] e as velocidades
angulares por v = [p q r]. A matriz de rotação da estrutura do corpo para o referencial
inercial é
3


Cψ Cθ (Cψ Sθ Sφ − Sψ Cφ ) (Cψ Sθ Cφ + Sψ Sφ )
R =  Sψ Cθ (Sψ Sθ Sφ + Cψ Cφ ) (Sψ Sθ Cφ − Cψ Sφ )  ,
−Sθ
Cθ Sφ
Cθ Cφ
(1)
em que Sx = sen(x) e Cx = cos(x). A matriz de rotação R é ortogonal então R−1 = RT .
Além disso, temos que a transformação das velocidades angulares do referencial inercial
para a estrutura é dada por,

 
 
1 −senφ tan θ cos φ tan θ
φ̇
p
 θ̇  =  0
cos φ
−senφ   q  .
senφ
cos φ
r
0
ψ̇
cos θ
cos θ
(2)
Sejam Ixx ,Iyy e Izz os momentos de inércia com relação aos eixos x, y e z, respectivamente. Assume-se que o quadrotor tem estrutura simétrica com os quatro braços alinhados
com os eixos x e y do corpo, ou seja, Ixx =Iyy . Portanto, a matriz do momento de inércia
I é dada por,


Ixx 0
0
I =  0 Iyy 0  .
0
0 Izz
(3)
A velocidade angular do rotor i, chamada de ωi , gera uma força fi = kωi2 na direção
do eixo do rotor e um torque τMi = bωi2 + IM ω̇i . Sendo k uma constante de elevação, b
uma constante do vento e IM o momento de inércia do rotor. As equações geradas pelo
controlador PD são dadas por,
T = (g + (Kzd )(żd − ż) + (Kzp )(zd − z))
m
,
(cos φ cos θ)
τφ = (Kφd (φ̇d − φ̇) + Kφp (φd − φ))Ixx ,
(4)
τθ = (Kθd (θ̇d − θ̇) + Kθp (θd − θ))Iyy ,
τψ = (Kψd (ψ̇d − ψ̇) + Kψp (ψd − ψ))Izz ,
sendo T o impulso total gerado pelas forças combinadas dos rotores; τφ o torque gerado
pela rotação em torno do eixo x; τθ o torque gerado pela rotação em torno do eixo y;
τψ o torque gerado pela rotação em torno do eixo z, Kzd , Kφd , Kθd e Kψd os ganhos
derivativos; Kzp , Kφp , Kθp e Kψp os ganhos proporcionais; żd a velocidade desejada no
eixo z, zd a posição desejada no eixo z; φd , θd e ψd são os ângulos desejados de rolagem,
arfagem e guinada, respectivamente; φ̇d , θ̇d e ψ̇d são as velocidades angulares desejadas
de rolagem, arfagem e guinada, respectivamente; E finalmente, define-se o vetor de torque
total como sendo τB , dado por,
 

lk(−ω22 + ω42 )
τφ
τB =  τθ  =  lk(−ω12 + ω32 )  ,
P4
τψ
n=1 τMi

(5)
sendo l a distância entre o rotor e o centro de massa do quadrotor. Com as equações de
torques e de impulso total, é possı́vel calcular a velocidade angular de cada rotor wi ,
4
T
4k
T
2
w2 =
4k
T
w32 =
4k
T
2
w4 =
4k
w12 =
3.1
τθ
2kl
τφ
−
2kl
τθ
+
2kl
τφ
+
2kl
−
τψ
,
4b
τψ
+ ,
4b
τψ
− ,
4b
τψ
+ .
4b
−
(6)
Equações de Newton-Euler-Lagrange
O quadrotor é considerado como um corpo rı́gido e então, por meio das equações de
Newton-Euler, pode-se descrever sua dinâmica. Na estrutura do corpo, a força necessária
para acelerar a massa m V̇B e a força centrı́fuga (mVB )v são iguais a força da gravidade
RT G e o impulso total dos rotores TB , ou seja,
mV̇B + v(mVB ) = RT G + TB .
(7)
Como no referencial a força centrı́fuga é nula, apenas a força gravitacional e o impulso
irão contribuir na aceleração do veı́culo. Logo, a equação é dada por,
ms̈ = G + RTB ,
(8)

 


0
ẍ
cos ψsenθ cos φ + senψsenφ
T
s̈ =  ÿ  = −g  0  +  senψsenθ cos φ − cos ψsenφ  .
m
1
z̈
cos θ cos φ
(9)

O Lagrangiano L é a soma das energias translacional Etrans e rotacional Erot menos a
energia potencial Epot
L(q, q̇) = Etrans + Erot − Epot =
m T
1
ṡ ṡ + v T Iv − mgz.
2
2
(10)
Como as componentes linear e angular são independentes, elas podem ser estudadas
separadamente. A força externa linear é o impulso total dos rotores, então a equação linear
de Euler-Lagrange é dada por,


0
f = RTB = ms̈ + mg  0  .
1
A matriz Jacobiano J(n) de v para ṅ é,
(11)
5

Ixx
0
−Ixx senθ
.
0
Iyy cos2φ +Izz sen2φ
(Iyy − Izz ) cos φsenφ cos θ
J =
2
2
2
2
2
−Ixx senθ (Iyy − Izz ) cos φsenφ cos θ Ixx senθ + Iyy senφ cosθ +Izz cosφ cosθ

Então, a energia rotacional Erot pode ser expressa no referencial inercial como,
1
1
Erot = v T Iv = n̈T J n̈.
2
2
(12)
Como a força angular externa é o próprio torque nos rotores, as equações angulares de
Euler-Lagrange são,
d
1 d T
(J)ṅ −
(ṅ J ṅ) = J n̈ + C(n, ṅ)ṅ,
(13)
dt
2 dn
em que C(n, ṅ) é o termo de Coriolis, que contém os termos giroscópico e centrı́peto. A
matriz C(n, ṅ) é dada por,
τ = τB = J n̈ +


C11 C12 C13
C =  C21 C22 C23  ,
C31 C32 C33
sendo
C11 = 0,
C12 = (Iyy − Izz )(θ̇ cos φsenφ + ψ̇senφ2 cos θ) + (Izz − Iyy )ψ̇ cos φ2 cos θ − Ixx ψ̇ cos θ,
C13 = (Izz − Iyy )ψ̇ cos φsenφ cos θ2 ,
C21 = (Izz − Iyy )(θ̇ cos φsenφ + ψ̇senφ cos θ) + (Iyy − Izz )ψ̇ cos φ2 cos θ + Ixx ψ̇ cos θ,
C22 = (Izz − Iyy )φ̇ cos φsenφ,
C23 = −Ixx ψ̇senθ cos θ + Iyy ψ̇senφ2 senθ cos θ + Izz ψ̇ cos φ2 senθ cos θ,
C31 = (Iyy − Izz )ψ̇ cos θ2 senφ cos φ − Ixx dθ cos θ,
C32 = (Izz − Iyy )(θ̇ cos φsenφsenθ + φ̇senφ2 cos θ) + (Iyy − Izz )φ̇ cos φ2 cos θ
+ Ixx ψ̇senθ cos θ − Iyy ψ̇senφ2 senθ cos θ − Izz ψ̇ cos φ2 senθ cos θ,
C33 = (Iyy − Izz )φ̇ cos φsenφ cos θ2 − Iyy θ̇senφ2 cos θsenθ − Izz θ̇ cos φ2 cos θsenθ
+ Ixx θ̇ cos θsenθ.
Portanto, a equação para as acelerações angulares é dada por,


φ̈
n̈ =  θ̈  = J −1 (τB − C(ṅ, n̈)n̈).
ψ̈
(14)
Para fazer com que o comportamento do quadrotor seja mais realı́stico, a força do vento
gerada pela resistência do ar é incluı́da, ou seja,
6


 
ẍ
0
T
s̈ =  ÿ  − g  0  + 
m
z̈
1

1
− 
m


cos ψsenθ cos φ + senψsenφ
senψsenθ cos φ − cos ψsenφ 
cos θ cos φ
 
Ax 0
0
ẋ
0 Ay 0   ẏ  ,
0
0 Az
ż
(15)
em que Ax , Ay e Az são os coeficientes da força do vento nas correspondentes direções no
referencial inercial.
3.2
Controle da Trajetória
O objetivo do controle da trajetória é mover o quadrotor de uma posição inicial até uma
posição desejada por meio do controle da velocidade dos rotores do mesmo. A otimização
da trajetória do quadrotor é uma tarefa complicada devido à sua dinâmica complexa. Para
se obter a trajetória desejada do quadrotor foi utilizado o polinômio do quinto grau, [1]. Ou
seja, cada parâmetro desejado da trajetória sd = [xd yd zd ]T , ṡd , s̈d , s̈d , nd = [φd θd ψd ]T ,
...
ṅd , n̈d e n d foi obtido pelas seguintes equações
qid (t) = ai0 + ai1 ∆t + ai2 ∆t2 + ai3 ∆t3 + ai4 ∆t4 + ai5 ∆t5 ,
q̇id (t) = ai1 + 2ai2 ∆t + 3ai3 ∆t2 + 4ai4 ∆t3 + 5ai5 ∆t4 ,
q̈id (t) = 2ai2 + 6ai3 ∆t + 12ai4 ∆t2 + 20ai5 ∆t3 ,
...d
q i (t) = 6ai3 + 24ai4 ∆t + 60ai5 ∆t2 ,
(16)
satisfazendo as seguintes condições de contorno
qid (t0 ) = qi0 ,
q̇id (t0 ) = q̇i0 ,
q̈ d (t ) = q̈i0 ,
...
...id 0
q i (t0 ) = q i0 ,
qid (tf ) = qif ,
q̇id (tf ) = q̇if ,
q̈ d (t ) = q̈if ,
...id f
...
q i (tf ) = q if .
(17)
Por fim, obteve-se os parâmetros do polinômio do quinto grau através do cálculo de




ai = 



1 0
0
0
0
0
0 1
0
0
0
0
0 0
2
0
0
0
1 ∆t ∆t2 ∆t3
∆t4
∆t5
0 1 2∆t 3∆t2 4∆t3 5∆t4
0 0
2
6∆t 12∆t2 20∆t3
−1







qi
(18)
sendo qi = [qi0 q̇i0 q̈i0 qif q̇if q̈if ]T e ai = [ai0 ai1 ai2 ai3 ai4 ai5 ]T .
Uma vez definida a trajetória desejada, foi possı́vel calcular os ângulos φd , θd e ψd
através das seguintes equações,
7
φd = asen(
dx sen(ψ) − dy cos(ψ)
),
d2x + d2y + (dz + g)2
θd = a tan(
dx cos(ψ) + dy sen(ψ)
),
dz + g
(19)
ψd = 0,
sendo
Ax ∗ ẋd
,
m
Ay ∗ ẏd
,
dy = ÿd +
m
Az ∗ żd
dz = z̈d +
.
m
dx = ẍd +
Os valores de dx , dy e dz também podem ser calculados pelo controlador PD considerando os desvios entre os valores de posição, velocidade e aceleração atuais e os desejados.
dx = Kxp (xd − x) + Kxd (ẋd − ẋ) + Kxdd (ẍd − ẍ),
dy = Kyp (yd − y) + Kyd (ẏd − ẏ) + Kydd (ÿd − ÿ),
(20)
dz = Kzp (zd − z) + Kzd (żd − ż) + Kzdd (z̈d − z̈).
R
Todas as equações mostradas nessa seção foram implementadas em MATLAB
e algumas delas são apresentadas em 4.3.
4 Análise dos Resultados
R
A simulação do controle do quadrotor foi implementada em MATLAB
, conforme
ilustrado pelo diagrama da Figura 2 . Primeiramente foi gerada uma trajetória desejada
para o quadrotor através de um polinômio do quinto grau, que irá traçar uma reta entre
a posição original do quadrotor e a posição final desejada do quadrotor. Essa trajetória
é então comparada com a posição do quadrotor ao longo do tempo. Um erro entre a
trajetória desejada e a posição atual do quadrotor é calculado. Esse erro é então utilizado
para o cálculo do controlador PD, que fornece o impulso total e o torque total para o
modelo do quadrotor. E através de uma dupla integração, obtem-se o valor de posição e
atitude do quadrotor.
Os valores dos parâmetros utilizados na simulação são mostrados na tabela abaixo. Tais
parâmetros foram baseados em [2].
8
Figura 2: Diagrama de blocos do sistema de controle do quadrotor.
Parâmetro
g
m
l
k
b
IM
Ixx
Iyy
Izz
Ax
Ay
Az
Valor
9.81
0.468
0.225
2.98010−6
1.14010−7
3.35710−5
4.85610−3
4.85610−3
8.80110−3
0.25
0.25
0.25
Unidade
m/s2
Kg
m
Kgm2
Kgm2
Kgm2
Kgm2
Kg/s
Kg/s
Kg/s
Foi utilizado um controlador PD e os valores de seus ganhos também foram baseados
em [2] e são mostrados na tabela abaixo.
Parâmetro
Kzd
Kφd
Kθd
Kψd
Kzp
Kφp
Kθp
Kψp
Valor
2.5
1.75
1.75
1.75
1.5
6
6
6
Para simulação, o quadrotor ficou num estado incialmente estável, em que os valores
de todas as posições e ângulos são iguais a zero. Depois, ele deveria cumprir uma trajetória
dividida em três etapas, cada uma com 15 segundos. Nos primeiros 15 segundos, o quadrotor deveria se locomover apenas no eixo z, em uma posição (x,y,z)=(0,0,5). Nos seguintes
15 segundos, o veı́culo deveria se locomover nas três direções, sendo que a posição final
desejada era (x,y,z)=(5,5,5). No último intervalo, deveria se locomover novamente nas
três direções, sendo que a nova posição desejada era (x,y,z)=(-5,-5,5). As figuras 3, 4 e 5
mostram as posições lineares e as figuras 6, 7 e 8 mostram as posições angulares resultantes
da simulação.
9
Figura 3: Posição x
Figura 4: Posição y
Figura 5: Posição z
Figura 6: Ângulo φ
Figura 7: Ângulo θ
Figura 8: Ângulo ψ
A simulação mostrou que a modelagem do quadrotor foi satisfatória. Além disso, o
controlador PD funcionou bem, porém, houve uma variação dos valores de x e y durante o
processo de estabilização. Houveram também desvios nos valores dos ângulos de rolagem
(φ), arfagem (θ) e guinada (ψ). O desvio no ângulo (ψ) é gerado para compensar a força
de arrasto gerada pela aceleração do veı́culo.
O modelo matemático utilizado está em sua forma simplificada. Por sua vez, optou-se
por não consider efeitos aerodinâmicos mais complexos e também, pela não modelagem dos
motores elétricos, fatos que podem ter afetado direta ou indiretamente no comportamento
do quadrotor. É possı́vel inferir que se as simulações tivessem como base um quadrotor real,
os dados obtidos seriam de maior confiabiliadade. Dessa forma, nosvas simulações podem
ser feitas em um futuro trabalho, com estimativas mais próximas à realidadade, obtendo-se
então, dados possivelmente comparáveis com medições reais.
4.3
Ambiente de Simulação e Controle do Quadrotor - ASCQ
O Ambiente de Simulação e Controle do Quadrotor (ASCQ) é uma estrutura feita no
R
GUIDE (Graphical User Interface Design Environment), uma ferramenta do MATLAB
.
Essa estrutura apresenta os gráficos de posição do quadrotor em duas e três dimensões,
contém também um quadro nomeado Actual Position que apresenta as posições e ângulos
do veı́culo num dado tempo t. Outro quadro fornece a posição, tempo de experimento e
trajetória e ângulos desejados. Um dos quadros apresenta os botões start e stop que definem
o inı́cio, parada e/ou fim do experimento. O botão ginput quando não selecionado, assume
que a trajetória desejada do veı́culo é a que está na tela inicial (x,y,z)=(−2,−2,2.5). Caso
ele seja selecionado, quando o botão Waypoint é acionado e o usuário pode selecionar um
ponto no gráfico 2D e essa será a nova trajetória desejada. O botão Plot fornece os gráficos
de cada posição e cada ângulo ao longo do tempo (x versus t, y versus t, z versus t, φ
versus t, θ versus t e ψ versus t). Já o botão Plot Output gera os mesmos gráficos fora do
10
ASCQ e o botão Save salva os mesmos.
Figura 9: Ambiente de Simulação e Controle do Quadrotor - ASCQ
5 Conclusão
No presente trabalho foi feita uma revisão bibliográfica acerca das plataformas de estudo
de quadrotores. Com base nas equações de Newton-Euler-Lagrange já desenvolvidas em
[2], foi feita a modelagem dinâmica do veı́culo. Em seguida, as equações geradas pelo
controlador PD foram estudadas e, juntamente com as equações da dinâmica do quadrotor,
R
foram implementadas em MATLAB
. O método do polinômio do quinto grau também foi
R
estudado e implementado no mesmo programa. Por meio da ferramenta GUI do MATLAB
foi criado o Ambiente de Simulação e Controle do Quadrotor (ASCQ), onde foi feita a
simulação do veı́culo e geração de gráficos de erro entre a trajetória de referência e a
realizada pelo quadrotor.
6 Produção Técnico-Cientı́fica
Foi feito um artigo resumido sobre o trabalho e este foi submetido para o Simpósio
Internacional de Iniciação Cientı́fica e Tecnológica da USP - SIICUSP. O artigo foi validado
e encaminhado para a comissão de avaliação. Além disso, o trabalho será submetido para
a XXII Congresso de Iniciação Cientı́fica (CIC) que acontecerá em novembro desse ano.
7 Auto-Avaliação
Nesse trabalho minha preocupação foi em absorver conhecimento na área de robótica.
Apesar da dificuldade de lidar com as matérias da universidade e o projeto de iniciação
cientı́fica ao mesmo tempo, acredito que o trabalho rendeu bons resultados. A revisão
bibliográfica me proporcionou um melhor entrosamento com as áreas de controle e simulação
11
R
de quadrotores. Além disso, pude explorar meus conhecimentos de MATLAB
e conhecer
melhor o funcionamento dos controladores.
8 Avaliação do Orientador
A aluna apresentou comprometimento na realização do projeto de Iniciação Cientifica.
Compareceu nas reuniões semanais, realizou a revisão bibliográfica, estudo do modelo matemático, controle do quadrotor para estabilização e acompanhamento de trajetória. Além
de submeter um artigo resumido para o Simpósio Internacional de Iniciação Cientı́fica e
Tecnológica da USP - SIICUSP. Porém, a aluna precisa melhorar as habilidades de escrita
de relatório técnicos e programação. Creio que essas habilidades serão desenvolvidas com o
amadurecimento da aluna no curso de engenharia mecânica e na continuação da Iniciação
Cientı́fica.
9 Destino da Aluna
A aluna continuará nessa linha de pesquisa e obteve uma bolsa de Inciação Tecnológica
pelo CNPq (2014-2015). O novo trabalho tem como objetivo o desenvolvimento de um
sistema para realização de experimentos de controle com um quadrotor. Câmeras Vicon
serão utilizadas para a localização da aeronave e o envio de comandos para os motores do
R
quadrotor será feito através da interface PCTx e do rádio transmissor Spektrum
DX5e
2.4GHz. O controlador PD será utilizado para estabilização da aeronave e será impleR
mentado em MATLAB
, onde será feita a leitura de posição das câmeras e o envio de
comandos para a aeronave. Além disso, O projeto visa a modelagem, controle e simulação
da mesma aeronave, e a familiarização da aluna com a tecnologia utilizada em VANTs.
12
7 Referências Bibliográficas
[1] Roberto Santos Inoue. Controle Robusto descentralizado de movimentos coordenados
de robôs heterogêneos. PhD thesis, Escola de Engenharia de São Carlos da Universidade de São Paulo, 2011.
[2] Teppo Luukkonen. Modeling and control of quadcopter. Technical report, Aalto
University School of Science, 2011.
[3] Gabriel M. Hoffmann, Haomiao Huang, Steven L. Waslander, and Claire J. Tomlin.
Quadrotor helicopter flight dynamics and control: Theory and experiment. In In
Proceedings of the AIAA Guidance and Control Conference, Kos, Greece, 2007.
[4] C. Bills, J. Chen, and A. Saxena. Autonomous MAV flight in indoor invironments
using single image perspective cues. In IEEE International Conference on Robotics and
Automation, Shangai, China, 2011.
[5] Cooper Bills and Jason Yosinski. MAV stabilization using machine learning and onboard sensors. Technical report, Cornell University, 2010.
[6] J. Faigl, T. Krajnı́k, V. Vonásek, and L. Peuil. Surveillance planning with localization
uncertainty for UAVs. In 3rd Israeli Conference on Robotics, 2010.
[7] Wai Shan Ng and Ehud Sharlin. Collocated interaction with flying robots. In IEEE
International Symposium on Robot and Human Interactive Communication, Atlanta,
USA, 2011.
[8] K. Higuchi, T. Shimada, and J. Rekimoto. Flying sports assistant: External visual
imagery representation for sports training. In Proceedings of the 2nd Augmented
Human International Conference, 2011.
[9] Jorge Niño, Flavius Mitrache, Peter Cosyn, and Robin De Keyser. Model identification
of a micro air vehicle. In IEEE Transactions on Robotics, 2007.
[10] Ronaldo Vieira Cruz and Luiz Carlos Sandoval Góes. Results of short-period helicopter system identification using output-error and hybrid search-gradient optimization
algorithm. Mathematical Problems in Enineering, 2010:17, 2010.
[11] Claudio Rosales, Gustavo Scaglia, Alexandre S. Brandão, Mario Sarcinelli-Filho, and
Ricardo Carelli. Trajectory tracking for a four rotor mini-quadrotor. In IEEE Conference
on Decision and Control and the European Control Conference, 2005.
[12] H. Huang, G. M. Hoffmann, S. L. Waslander, and C. J. Tomlin. Aerodynamics and
control of autonomous quadrotor helicopter in agressive maneuvering. In IEEE International Conference on Robotics and Automation, Kobe, Japan, 2009.
[13] Leonardo L. Lopes, Alexandre S. Brandão, Mário Sarcinelli Filho, and Ricardo Carelli. Modelagem e validação de um quadrimotor ArDrone Parrot. Master’s thesis,
Universidade de Brası́lia, 2013.
[14] Syed Ali Raza and Wail Gueaieb. Intelligent flight control of an autonomous quadrotor.
Technical report, University of Ottawa, 2010.
13
[15] I. C. Dikmen, A. Arisoy, and H. Temeltas. Attitude control of a quadcopter. In
International Conference on Recent Advances in Space Technologies, United States,
2010.
[16] Z. Zuo. Trajectory tracking control design with command-filtered compensation for a
quadrotor. In IET Control Theory Application, 2010.
[17] S. Bouabdallah, A. Noth, and R. Siegwart. PID vs LQ control techniques applied
to an indoor micro quadrotor. In IEEE/RSJ International Conference on Intelligent
Robots and Systems, Sendal, Japan, 2004.
[18] T. Madani and A. Benallegue. Backstepping control for a quadrotor helicopter. In
IEEE/RSJ International Conference on Intelligent Robots and Systems, Beijing, China,
2006.
[19] K. M. Zemalache, L. C. Beji, and H. Marref. Control of an under-actuated system:
Application to a four rotors rotorcraft. In IEEE International Conference on Robotic
and Biomimetics, 2005.
[20] Pedro Castillo, R. Lozano, and A. Dzul. Stabilization of a mini rotorcraft with four
rotors. IEEE Control System Magazine, 25:45–55, 2005.
[21] J. Escareño, C. Salazar-Cruz, and R. Lozano. Embedded control of a four-rotor UAV.
In American Control Conference, Minneapolis, Minnesota, USA, 2006.
[22] A. Tayebi and S. McGilvray. Attitude stabilization of a four-rotor aerial robot. In IEEE
Conference on Decision and Control, Atlantis, Paradise Island, Bahamas, 2004.
[23] Guilherme V. Raffo, Manuel G. Ortega, and Francisco R. Rubio. An integral predictive/nonlinear H infinite control structure for a quadrotor helicopter. Automatica,
page 10, 2010.
[24] Ana Sophia C. A. Vilas Boas, Elias R. Vilas Boas, and Leonardo M. Honório. Análise
e comparação das técnicas de controle PID, LQR, e backstepping para estabilização
de voo de quadricópteros. In Simpósio Brasileiro de Automação Inteligente, Fortaleza,
CE, Brasil, 2013.
[25] P. Martin and E. Salaun. The true role of accelerometer feedback in quadrotor control.
In IEEE International Conference on Robotics and Automation, Anchorage, Alaska,
USA, 2010.
[26] R. He, S. Prentice, and N. Roy. Planning in information space for a quadrotor helicopter
in a GPS-denied environment. In IEEE International Conference on Robotics and
Automation, Kobe, Japan, 2008.
[27] Mathieu Marmion. Airborne attitude estimation using a kalman filter. Master’s thesis,
The University Centre of Svalbard, Norwegian University of Science and Technology
and Superior National School of Electrical Engineering Part of the Polytechnic National
Institute of Grenoble, 2006.
14
A
Apêndice
R
Segue abaixo os protótipos das principais funções implementadas em MATLAB
:
• function[tau r] = torque roll f(dtheta r d,dtheta r,theta r d,theta r,quad)
O torque tau r tem um efeito na aceleração do ângulo theta r, o ângulo de rolagem.
[k rd] = Parâmetro derivativo do controlador PD;
[k rp] = Parâmetro proporcional do controlador PD;
[theta r] = Ângulo de rolagem;
[theta r d] = Ângulo de rolagem desejado;
[dtheta r d] = Velocidade de rolagem desejada;
[dtheta r] = Velocidade de rolagem;
[Ixx] = Momento de inércia com relação ao eixo x.
• function[tau p] = torque pitch f(dtheta p d, dtheta p, theta p d, theta p,quad)
O torque tau p tem um efeito na aceleração do ângulo theta p, o ângulo de arfagem.
[k pd] = Parâmetro derivativo do controlador PD;
[k pp] = Parâmetro proporcional do controlador PD;
[Iyy] = Momento de inércia com relação ao eixo y;
[theta p] = Ângulo de arfagem;
[theta p d] = Âgulo de arfagem desejado;
[dtheta p] = Velocidade de arfagem;
[dtheta p d] = Velocidade de arfagem desejada.
• function[tau y] = torque yaw f(dtheta y d,dtheta y,theta y d,theta y,quad);
O torque tau y tem um efeito na aceleração do ângulo theta y, o ângulo de guinada.
[k yd] = Parâmetro derivativo do controlador PD;
[k yp] = Parâmetro proporcional do controlador PD;
[Izz] = Momento de inércia com relação ao eixo z;
[theta y] = Ângulo de guinada;
[theta y d] = Ângulo de guinada desejado;
[dtheta y] = Velocidade de guinada;
[dtheta y d] = Velocidade de guinada desejada.
• function[tau B] = torque total f(tau r,tau p,tau y)
O torque tau B consiste nos torques tau r, tau p and tau y na direção dos correspondentes ângulos de referência do corpo.
[tau r] = É o torque na direção x;
[tau p] = É o torque na direção y;
[tau y] = É o torque na direção z.
15
• function[T] = impulso total f(dz d,dz,z d,z, theta r,theta p,quad)
O impulso total tem efeito na aceleração na direção do eixo z e mantém o quadrotor
no ar.
[k zd] = Parâmetro derivativo do controlador PD;
[k zp] = Parâmetro proporcional do controlador PD;
[z] = Posição no eixo z;
[z d] = Posição desejada no eixo z;
[dz] = Velocidade linear no eixo z;
[dz d] = Velocidade linear desejada no eixo z;
[m] = Massa do quadrotor;
[g] = Aceleração da gravidade;
[theta r] = Ângulo de rolagem;
[theta p] = Ângulo de arfagem.
• function[omega square] = velocidade rotores f(T,tau r,tau p,tau y,quad)
[omega square] ou [omega1 square; omega2 square;omega3 square;omega4 square]
= velocidade angular dos rotores.
[T] = Impulso total;
[k] = Constante de elevação;
[b] = Constante do vento;
[l] = Distância entre o rotor e o centro de massa do quadrotor;
[tau r] = Torque na direção x;
[tau p] = Torque na direção y;
[tau y] = Torque na direção z.
• function[J] = jacobian matrix f(theta r, theta p, theta y,quad)
[J] = Matriz Jacobiano;
[theta p] = Ângulo de arfagem;
[theta r] = Ângulo de rolagem;
[theta y] = Ângulo de guinada;
[Ixx] = Momento de inércia com relação ao eixo x;
[Iyy] = Momento de inércia com relação ao eixo y;
[Izz] = Momento de inércia com relação ao eixo z.
• function[C] = matriz C f(theta r,theta p,theta y, dtheta r,dtheta p,dtheta y,quad)
A matrix C é o termo de Coriolis, que contém os termos giroscópicos e centrı́petos.
[Iyy] = Momento de inércia com relação ao eixo y;
[Izz] = Momento de inércia com relação ao eixo z;
[Ixx] = Momento de inércia com relação ao eixo x;
[theta r] = Ângulo de rolagem;
[theta p] = Ângulo de arfagem;
[theta y] = Ângulo de guinada.
16
• function[d2n] = aceleracao angular ref inercial f(J,tau B, C,dtheta r,dtheta p,dtheta y)
A aceleração angular do referencial inercial é igual ao torque, menos a matrix C
multiplicada pela velocidade angular do mesmo referencial, e tudo isso multiplicado
pelo inverso da matrix jacobiano.
[d2n] = Aceleração angular do referencial inercial;
[J] = Matrix jacobiano;
[tau B] = consiste nos torques tau r,tau p,tau y na direção dos correspondentes
ângulos de referência do corpo;
[C] = Matrix C;
[dn] = Velocidade angular do referencial inercial.
• function[d2s] = aceleracao linear ref inercial f(dx,dy,dz,T,theta r,theta p,theta y,quad)
No referencial inercial, a força centrı́fuga é anulada. Então, apenas a força gravitacional e o impulso contribuem para a aceleração do quadorotr. A aceleração linear
do referencial inercial é igual ao impulto total dividido pela massa e multiplicado
pela matrix de rotação e menos a matrix dos efeitos aerodinâmicos multiplicada pela
matrix de velocidade linear.
[d2s] = Aceleração linear do referencial inercial;
[g] = Aceleração da gravidade;
[T] = Impulso total;
[m] = Massa do quadrotor;
[theta p] = Ângulo de arfagem;
[thera r] = Ângulo de rolagem;
[theta y] = Ângulo de guinada;
[Ax], [Ay] and [Az] = Coeficientes da força de arrasto para velocidades nas direções
correspondentes do sistema de referência inercial;
[dx;dy;dz]= Velocidade linear.
• function[theta r] = roll angle f(theta y,x,xd,dx,dxd,d2x,d2xd,y,yd,dy,dyd,
d2y,d2yd,z,zd,dz,dzd,d2z,d2zd,quad)
[theta r] = Ângulo de rolagem;
[theta y] = Ângulo de guinada;
[d2x] = Aceleração linear no eixo x;
[dx] = Velocidade linear no eixo x;
[d2y] = Aceleração linear no eixo y;
[dy] = Velocidade linear no eixo y;
[d2z] = Aceleração linear no eixo z;
[dz] = Velocidade linear no eixo z;
[g] = Aceleração da gravidade;
[m] = Massa do quadrotor;
[Ax], [Ay] and [Az] = Coeficientes da força de arrasto para as velocidades nas direções
correspondentes do referencial inercial.
17
• function[theta p] = pitch angle f(theta y,x,xd,dx,dxd,d2x,d2xd,y,yd,dy,dyd,
d2y,d2yd,z,zd,dz,dzd,d2z,d2zd,quad)
[theta p] = Ângulo de arfagem;
[theta y] = Ângulo de guinada;
[dx] = Velocidade linear no eixo x;
[d2x] = Aceleração linear no eixo x;
[dy] = Velocidade linear no eixo y;
[d2y] = Aceleração linear no eixo y;
[dz] = Velocidade linear no eixo z;
[d2z] = Velocidade linear no eixo z;
[g] = Aceleração da gravidade;
[m] = Massa do quadrotor;
[Ax], [Ay] and [Az] = Coeficientes da força de arrasto para velocidades nas direções
correspondentes do referencial inercial.
Aluna: Isabella Cristina Souza Faria
Orientador: Roberto Santos Inoue
Download

RELAT´ORIO FINAL DE INICIAC¸˜AO CIENT´IFICA