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