Upload
buibao
View
215
Download
0
Embed Size (px)
Citation preview
PASSAROLA – DIRIGÍVEL AUTÓNOMO PARA
OPERAÇÕES DE SALVAMENTO (PARTE ROBÓTICA)
Ricardo Jorge Costa Alcácer
Dissertação para a obtenção do Grau de Mestre em
Engenharia Electrotécnica e de Computadores
Júri Presidente: Doutor Carlos Jorge Ferreira Silvestre
Orientador: Doutor Pedro Manuel Urbano de Almeida Lima
Co-Orientador: Doutor Francisco André Corrêa Alegria
Vogal: Doutor José Alberto Rosado dos Santos Victor
Setembro 2008
aos meus pais
i
Agradecimentos A todos os que me fizeram crescer como pessoa e como engenheiro.
Ao professor Francisco Alegria pela sua disponibilidade e empenho para o nosso projecto do dirigível, pela sua
boa disposição e irremediável motivação para a engenharia.
Ao professor Pedro Lima pela oportunidade de realizar investigação no ISR com o dirigível Passarola.
À AEIST (Associação de Estudantes do IST) pela disponibilização do pavilhão para os testes com o dirigível.
Aos meus pais por todo o apoio e compreensão prestados durante todos estes anos em que me aturaram e em
particular nesta fase da minha vida onde nem sempre manifestei o meu bom humor.
À minha irmã e ao meu cunhado pelo carinho que sempre tiveram por mim e pelos vários momentos de alegria.
À minha namorada pela longa espera por uma viagem a dois para bem longe de todas as obrigações e por todo
o amor com que sempre me amparou.
À Turma 8, meus amigos e companheiros de muitas noitadas, em particular ao David, pelas cabeçadas dadas
em conjunto neste projecto. Sabem que ISTo sem vocês não tinha ido muito longe.
A D. Irene, às minhas afilhadas Margarida e Joana, a todos os meus amigos e familiares que sempre me
apoiaram e como não podia deixar de ser ao meu cão, o Goofy.
ii
iii
Resumo
No presente relatório é descrito todo o estudo teórico de controlo elaborado sobre o dirigível Passarola, para
implementação e desenvolvimento do sistema autónomo de controlo desta aeronave, construído em colaboração
com o colega da Parte Electrónica deste projecto. Pretende-se mostrar aqui a capacidade de construção de um
sistema funcional para controlo autónomo de um veículo aéreo, capaz de garantir o domínio sobre os seus
comportamentos durante o seguimento de uma trajectória não pré-definida, fornecida pelo movimento de um
robô terrestre ou pela configuração de linhas marcadas no solo. É realizada a correcção e melhoramento do
modelo matemático da dinâmica do dirigível, deduzida em trabalhos anteriores, e são identificadas as respostas
impulsivas dos três subsistemas da aeronave: translação em x, translação em z e rotação, recorrendo ao veículo
real. Um controlador PD foi projectado e implementado com base no esquema de controlo proposto para o robô
Passarola, com emprego de visual servoing para a realimentação da malha de controlo. A definição do erro de
seguimento é efectuada para dois casos de estudo: Seguimento do Robô ATRVJr e Seguimento de Linhas,
realizando-se a obtenção dos vectores de erro por processamento de imagem, em estreita ligação com a Parte
Electrónica do projecto. Ajustados teoricamente os controladores, são efectuados ensaios do controlo do
dirigível, em dois formatos distintos de simulação: simulação teórica em Matlab e simulação 3D realista em
USARSim, com utilização do sistema de controlo real. Este último formato de simulação, tendo sido adaptado de
raiz durante este projecto, para a simulação do protótipo Passarola, foi configurado para a fiel representação da
atitude do Passarola, proporcionando a estruturação de uma poderosa ferramenta de investigação para este
robô. Por fim é validado o sistema de controlo desenvolvido no robô real, discutindo-se sobre a robustez dos
métodos utilizados.
Palavras-chave: Condução de robô móvel, Controlo baseado em imagem, Dirigível autónomo, Simulação
dinâmica 3D.
iv
Abstract
In this thesis is presented the theoretical study of blimp’s control, developed in Passarola robot, for the design and
implementation of the autonomous control system of this aircraft. The work shows the capability to build an
operational guidance system for the aerial vehicle, fed by a non-pre-determined trajectory, resulting from tracking
the motion of a ground vehicle or following lines painted on the ground. The mathematical model of the blimp
dynamics is improved with respect to prior work, and the impulsive responses of the three aircraft subsystems are
identified: translation in X, translation in Z, and rotation about Z. The study of the PD controller is done concerning
the visual feedback control scheme proposed for the Passarola robot. The closed loop control error is defined for
both cases (ground robot tracking and lines following) and determined by image processing techniques. The
blimp controller was tested in two different types of simulators: theoretical simulation in Matlab and 3D realistic
simulation in USARSim, with the use of the real control setup. The latter, adapted from the beginning of the
project to the Passarola robot simulation, was carefully configured to represent Passarola attitude, turning it into a
powerful investigation tool for this robot. The autonomous control system was then applied to the real robot, with
very satisfactory results.
Key Words: Mobile robot navigation, image-based control, autonomous blimp, 3D dynamic simulation.
v
Conteúdo
1 Introdução ........................................................................................................................................................... 1
1.1 – Motivação para o Projecto .......................................................................................................................... 1
1.2 – Trabalhos Anteriores .................................................................................................................................. 2
1.3 – Objectivos propostos .................................................................................................................................. 3
1.4 – Estrutura da Dissertação ............................................................................................................................ 5
2 Modelação do Dirigível Passarola ..................................................................................................................... 7
2.1 – Descrição do Robô e dos seus Actuadores................................................................................................ 7
2.2 – O Modelo Não-Linear do Dirigível .............................................................................................................. 8
2.2.1 – Cinemática........................................................................................................................................... 8
2.2.2 – Dinâmica............................................................................................................................................ 11
2.3 – Actuação................................................................................................................................................... 16
2.4 – Linearização ............................................................................................................................................. 17
2.5 – Definição de Subsistemas ........................................................................................................................ 20
2.5.1 – Definição do Subsistema XZ ............................................................................................................. 21
2.5.2 – Definição do Subsistema de Direcção............................................................................................... 22
3 Identificação de Sistemas ................................................................................................................................ 23
3.1 – Definição da Função de Transferência G(s) ............................................................................................. 23
3.1.1 – Função de transferência do Subsistema XZ – Parte X...................................................................... 25
3.1.2 – Função de transferência do Subsistema XZ – Parte Z ...................................................................... 25
3.1.3 – Função de Transferência do Subsistema de Direcção ...................................................................... 26
3.2 – Determinação dos Parâmetros de GX(s) e GD(s)...................................................................................... 27
3.2.1 – Determinação Manual........................................................................................................................ 27
3.2.2 – Determinação com a toolbox Ident, do MatLab ................................................................................. 30
4 Estudo do Controlador ..................................................................................................................................... 33
4.1 – Esquema de Controlo do Robô ................................................................................................................ 33
4.2 – Definição do Controlador .......................................................................................................................... 34
4.2.1 – Controlador PD digital........................................................................................................................ 36
4.3 – Controlo 1: Seguimento do ATRVJr ......................................................................................................... 38
4.3.1 – Definição do Erro............................................................................................................................... 38
4.3.2 – Aplicação da Lei de Controlo............................................................................................................. 39
4.3.3 – Ajuste dos Parâmetros dos Controladores ........................................................................................ 40
4.4 – Controlo 2: Seguimento de Linhas ........................................................................................................... 44
4.4.1 – Definição do Erro............................................................................................................................... 44
4.4.2 – Aplicação da Lei de Controlo............................................................................................................. 45
4.4.3 – Ajuste de Parâmetros dos Controladores .......................................................................................... 46
vi
5 Simulação Teórica, em Matlab ........................................................................................................................ 47
5.1 – Ensaio Teórico do Controlo, em Simulink (Matlab)................................................................................... 47
5.2 – Resultados do Ensaio Teórico do Controlo .............................................................................................. 50
5.3 – Verificação do Desempenho do Controlador ............................................................................................ 53
5.4 – Resultados do Ensaio com os Controladores PD..................................................................................... 55
6 Sistema Autónomo de Controlo ...................................................................................................................... 59
6.1 – Sistema de Trabalho, em Laboratório....................................................................................................... 59
6.2 – Sistema de Trabalho, no Terreno ............................................................................................................. 61
6.3 – Computador de Bordo DSP...................................................................................................................... 62
6.3.1 – Processamento de Imagem............................................................................................................... 63
6.4 – LabView.................................................................................................................................................... 67
6.4.1 – Placa de Aquisição e Conversão ADC .............................................................................................. 70
7 Resultados ........................................................................................................................................................ 71
7.1 – Ajuste Prévio do Sistema de Controlo ...................................................................................................... 71
7.2 – Resultados em Simulação 3D Realista – USARSim................................................................................. 72
7.2.1 – Controlo 1: Seguimento do ATRVJr................................................................................................... 72
7.2.2 – Controlo 2: Seguimento de Linhas .................................................................................................... 79
7.3 – Resultados no Robô Real – Passarola ..................................................................................................... 82
7.3.1 – Controlo 1: Seguimento do ATRVJr................................................................................................... 83
7.3.2 – Controlo 2: Seguimento de Linhas .................................................................................................... 84
8 Conclusões e Trabalho Futuro ........................................................................................................................ 87
8.1 – Conclusões............................................................................................................................................... 87
8.2 – Trabalho Futuro ........................................................................................................................................ 89
Bibliografia ........................................................................................................................................................... 91
Anexos ................................................................................................................................................................. 95
Anexos A – Cálculos auxiliares ......................................................................................................................... 95
Anexos B – USARSim ..................................................................................................................................... 107
vii
Lista de Figuras
1.1 – a) Dirigível Passarola; b) Robô terrestre ATRVJr. ...........................................................................................1
1.2 – Esquema do controlador a ser implementado em Simulink (Matlab). ..............................................................4
1.3 – Esquema de controlo a ser implementado com o novo simulador 3D realista – USARSim.............................4
1.4 – Diagrama de blocos do sistema de controlo real final......................................................................................5
2.1 – Dirigível Passarola. ..........................................................................................................................................7
2.2 – Dimensões do dirigível Passarola....................................................................................................................7
2.3 – Definição dos referenciais f e b, reproduzido de [2]. ...................................................................................9
2.4 – Representação das forças de restituição que actuam no corpo do dirigível. .................................................15
2.5 – Esquema da posição dos actuadores no corpo do dirigível. ..........................................................................16
3.1 – Representação gráfica do comportamento do dirigível Passarola após aplicação de um escalão no
ciclo de trabalho (duty cycle) do sinal PWM (f = 48Hz) de estímulo dos actuadores: ....................................27
3.2 – Gráficos comparativos entre as respostas dos sistemas simulados e as respostas reais: ............................28
3.3 – Diagrama de blocos simulink de teste dos sistemas simulados, em unidades eléctricas: .............................29
3.4 – Respostas dos sistemas simulados, do robô Passarola, em unidades eléctricas:.........................................29
3.5 – Comparação entre as respostas dos sistemas identificados e a resposta real, para os dois
subsistemas em estudo. ................................................................................................................................31
4.1 – Esquema teórico de controlo do dirigível Passarola. .....................................................................................33
4.2 – Diagrama de blocos do controlador PD obtido para o controlo do dirigível Passarola...................................37
4.3 – Exemplo do processamento de imagem realizado no controlo do seguimento do ATRVJr:..........................38
4.4 – Diagrama de blocos do Subsistema XZ – Parte X, desenhado em simulink..................................................41
4.5 – Gráficos das respostas da simulação do sistema da Figura 4.4. ...................................................................42
4.6 – Diagrama de blocos do Subsistema de Direcção, desenhado em simulink. ..................................................43
4.7 – Gráficos das respostas da simulação do sistema da Figura 4.6. ...................................................................43
4.8 – Exemplo do processamento de imagem realizado no controlo do seguimento de linhas: .............................44
5.1 – Diagrama de blocos do simulador Simulink do sistema de controlo do Passarola. .......................................49
5.2 – a) Posição 3D da formação de robôs, no referencial do mundo; b) Posição e orientação da formação
em função do tempo; c) Erro temporal de posição e de orientação do Passarola em relação à
referência. ......................................................................................................................................................50
5.3 – a) Posição 3D da formação de robôs; b) Posição e orientação da formação em função do tempo; c)
Erro temporal de posição e de orientação do Passarola em relação à referência. ........................................51
5.4 – Valores temporais da força aplicada no modelo matemático do Passarola durante o seguimento. ..............52
5.5 – Diagrama de blocos do simulador Simulink adaptado para teste do controlador real....................................54
5.6 – a) Posição 3D dos robôs, no referencial do mundo; b) Posição e orientação temporal dos robôs. ...............55
5.7 – a) Emulação da imagem da câmara com a referência de seguimento; b) Erro temporal de posição e
de orientação do Passarola em relação à referência, na imagem da câmara emulada no simulador. ..........55
5.8 – a) Posição 3D dos robôs, no referencial do mundo; b) Posição e orientação temporal dos robôs. ...............56
5.9 – a) Emulação da imagem da câmara com a referência de seguimento; b) Erro temporal de posição e
de orientação do Passarola em relação à referência, na imagem da câmara emulada no simulador. ..........56
5.10 – Valores temporais da força aplicada no modelo do Passarola durante o seguimento do 8. ........................56
6.1 – Bancada de trabalho, em laboratório. ............................................................................................................59
viii
6.2 – Esquema de trabalho, em laboratório, construído para o desenvolvimento deste projecto. ..........................60
6.3 – Esquema do sistema de trabalho, utilizado no terreno, durante os testes com o robô Passarola. ................61
6.4 – Esquema das ligações eléctricas do Dirigível. ...............................................................................................61
6.5 – Fotografia da placa de processamento do DSP, utilizada para a construção do computador de bordo
do robô Passarola..........................................................................................................................................62
6.6 – a) Imagem com várias amostras de vermelho; b) Gráfico com o valor das três componentes YUV..............64
6.7 – a) Imagem original obtida pelo DSP; b) imagem processada (em UVYV) com detecção de vermelho. ........64
6.8 – Processamento de imagem do seguimento do ATRVJr.................................................................................65
6.9 – Esquema de detecção de linhas na imagem de contornos............................................................................66
6.10 – Janela de interface do programa LabView. .................................................................................................68
6.11 – a) Gráfico da velocidade linear do Passarola em função do duty cycle do sinal PWM aplicado nos
seus motores dianteiros...............................................................................................................................69
6.12 – a) Gráfico da velocidade angular do Passarola em função do duty cycle do sinal PWM aplicado no
seu motor traseiro........................................................................................................................................69
6.13 – Aproximação de polinómios às tabelas de conversão Duty Cycle – Velocidade. ........................................70
6.14 – Placa USB de conversão e aquisição de sinais – ADC. ..............................................................................70
7.1 – Comparação de trajectórias no controlo do dirigível, a uma altitude de 6m: a) sem compensação de
comportamento; b) com compensação de comportamento. ..........................................................................71
7.2 – Experiência 1: Trajectória em forma de U, realizada com V = 0,58m/s. ........................................................73
7.3 – Experiência 2 e 3: a) Trajectória em forma de escalão no eixo dos xx, com V = 0,58m/s; b) Trajectória
em forma de U, realizada com V = 0,78m/s, a 12m de altitude. ....................................................................74
7.4 – Experiência 4: Trajectória de inversão de marcha, realizada com V = 0,58m/s.............................................75
7.5 – Experiência 5: Trajectória em forma de 8, realizada com V = 0,58m/s. .........................................................76
7.6 – Experiência 6: a) Trajectória em forma de 8, realizada com V = 1m/s e altitude 6m; b) Trajectória em
forma de 8, realizada com V = 1m/s e altitude 12m. ......................................................................................76
7.7 – Experiência 7: Circuito de longa distância, realizado a 6m altitude e com V = 0,78m/s.................................78
7.8 – Experiência 1: a) Trajectória em forma de 8, realizada a 6m de altitude; b) Trajectória em forma de 8,
realizada a 10m de altitude. ...........................................................................................................................79
7.9 – Experiência 2: Trajectória em forma de quadrado, realizada a 6m de altitude. .............................................80
7.10 – Experiência 3: Seguimento de linhas num circuito de longa distância. Altitude = 6m e Vmed ≈ 0,8m/s........81
7.11 – Sequencia de imagens de um teste do seguimento do ATRVJr, com o robô Passarola, numa
trajectória em forma de Quadrado...............................................................................................................84
7.12 – Sequencia de imagens de um teste de Seguimento de Linhas, realizado com o robô Passarola...............85
ix
Lista de Tabelas
2.1 – Síntese das componentes do movimento para veículos com 6 graus de liberdade e variáveis utilizadas. .. 9
3.1 – Valores dos parâmetros determinados para os subsistemas do robô Passarola. ...................................... 28
4.1 – Valores dos parâmetros do controlador do Subsistema XZ – Parte X........................................................ 42
4.2 – Valores dos parâmetros dos controladores do Subsistema de Direcção.................................................... 43
4.3 – Valores dos parâmetros do controlador do Subsistema XZ – Parte X e do Subsistema de Direcção ........ 46
5.1 – Valores experimentais de alguns dos coeficientes das matrizes do modelo da dinâmica (2.43)................ 47
6.1 – Valores limites dos eixos verticais dos gráficos das variáveis de controlo. ................................................ 65
x
1
1 Introdução
1.1 – Motivação para o Projecto
A coordenação de tarefas em larga escala em ambientes desconhecidos, perigosos e em luta contra
o tempo estão a tornar-se cada vez mais importantes em operações militares, de resgate e de
incêndio. Substituir robôs por pessoas nas actividades mais perigosas poderia reduzir em grande
escala o risco para a vida humana neste tipo de missões. Porque tais emergências são relativamente
raras e exigem total concentração nos problemas mais imediatos existe muito pouca oportunidade
para inserir e experimentar a utilização de robôs.
O projecto RESCUE, Navegação Cooperativa para Robôs de Salvamento, levado a cabo no Instituto
de Sistemas e Robótica (ISR) do Instituto Superior Técnico (IST) propõe-se a preparar uma equipa de
robôs capaz de navegar em ambientes exteriores, demonstrando a sua aptidão para agir individual e
cooperativamente em operações de busca e salvamento (BES) num ambiente semelhante a cenários
de catástrofe. O uso de robôs em operações de BES é um desafio aliciante, uma vez que, devido à
natureza do problema, promove de uma forma natural avanços do conhecimento em áreas como a
Visão Artificial, a Navegação em ambientes exteriores não estruturados, a Inteligência Artificial
Distribuída e o Controlo Inteligente. No âmbito da investigação deste projecto foi construída uma
equipa de dois robôs, composta por um robô terrestre, ATRVJr, e um robô aéreo, dirigível Passarola
(Figura 1.1).
Figura 1.1 – a) Dirigível Passarola; b) Robô terrestre ATRVJr.
O robô aéreo deverá ser capaz de desempenhar várias tarefas, tais como construção de um mapa
topológico da zona destruída, com informações relevantes sobre as áreas mapeadas, no que diz
respeito ao grau de destruição, presença de vítimas, etc, assim como a dificuldade em atravessar as
a) b)
2
diversas zonas, devido à presença de escombros ou caminhos sem saída. O mapa será armazenado
como um gráfico e será utilizado na escolha do melhor caminho para o robô terrestre atingir uma
determinada posição desejada (p. ex., uma das vitimas do desastre). Este mapa poderá ainda ser
utilizado para ajudar o robô aéreo durante a sua navegação.
O robô terrestre utilizando diversos sensores (GPS, inercial, visão e sonares) conseguirá navegar
rumo ao seu objectivo, lidando com os detalhes associados ao caminho (p.ex., escombros, árvores,
pessoas no caminho, etc.). Enquanto o robô terrestre executa a sua tarefa, o robô aéreo poderá ainda
segui-lo usando um algoritmo de controlo de formações, de modo a que seja mantida uma
comunicação fiável entre os robôs, servindo este ainda de retransmissor de informações entre o robô
terrestre e as estações de base mais distantes. A utilidade desta teoria de controlo de formações
pode ainda ser alargada para outros sistemas, noutro tipo de utilizações, como por exemplo em
missões espaciais para a exploração de novos planetas.
Numa era em que se assiste a uma constante transformação tecnológica, é continuamente colocado
ao dispor, e a baixo custo, variados utensílios de captura, processamento e controlo de sinais em
tempo-real que permitem a construção de sistemas electrónicos robustos e autónomos. É por isso
urgente o papel do investigador no nosso dia-a-dia para a rápida canalização destas novas
capacidades para aplicações de utilidade social, como contributo para a evolução positiva das
sociedades.
1.2 – Trabalhos Anteriores
Uma vez que o dirigível Passarola já tinha sido utilizado em dois projectos anteriores, alguns estudos
relevantes foram realizados no âmbito desses projectos. Em [3] foi estudado o controlo de formações
entre o dirigível Passarola e o robô terrestre ATRVJr, onde foi implementado um controlador SBC
(Separation-Bearing Control) para a construção de uma trajectória de seguimento em formação com o
robô terrestre para referência de controlo do dirigível Passarola. Foi ainda abordada a questão da
modelação da dinâmica do dirigível, resolvendo-se os cálculos da cinemática e da dinâmica num
modelo matemático em espaço de estados.
Num primeiro projecto com o dirigível [5], foi também realizado algum estudo sobre o seu controlo,
nomeadamente a nível de problemas de navegação devido ao posicionamento dos motores e da sua
baixa potência. Nesse projecto, os cálculos de controlo eram efectuados numa estação terrestre com
base na imagem de vídeo captada por uma micro câmara a bordo do dirigível, sendo a
comunicação/controlo do mesmo realizada por RF (rádio frequência).
No âmbito do processamento de imagem, foram estudados em [6], algoritmos para obtenção da
atitude do robô (posição e orientação) e as suas velocidades, a partir da homografia e da geometria
de projecção de imagens obtidas por uma câmara de vídeo a bordo de um pequeno dirigível em
laboratório, com o conhecimento à priori do mapa de navegação. Vários tipos de controlo linear e não
linear foram utilizados para controlar a velocidade do veículo, assim como a sua condução no espaço
3
3D. O trabalho desenvolvido considerou ainda a modelação do sistema e a identificação de
parâmetros, assim como o teste do controlador e do processamento de imagem num simulador
Simulink. Foram ainda realizadas experiências no robô real com os algoritmos implementados a
correr em tempo real, para seguimento de trajectórias e Station Keeping.
Existindo desde cedo a intenção de desenvolver um trabalho com um dirigível, em conjunto com o
autor de [4], salienta-se ainda a realização de um trabalho, na cadeira de Sensores e Actuadores,
como contribuindo para o desenvolvimento antecipado do projecto Passarola, onde se implementou
uma pequena aplicação de navegação, com um Sistema de Posicionamento Global (GPS) e um
Processador Digital de Sinais (DSP), para futura implementação no dirigível Passarola em aplicações
de navegação no exterior. Aqui, desenvolveram-se protocolos de comunicação e avaliaram-se as
capacidades do DSP para construção de um computador de bordo para o dirigível.
1.3 – Objectivos propostos
O presente trabalho é realizado no âmbito do projecto RESCUE e debruça-se totalmente na
automação do dirigível Passarola, desenvolvendo-se e implementando-se todo o sistema autónomo
de controlo do mesmo, de forma a alcançar o objectivo final de seguimento de linhas no solo ou o
seguimento de um robô terrestre (o robô ATRVJr). Para tal foi necessário redesenhar todo o circuito
electrónico do dirigível de forma a incluir um computador de bordo (DSP), responsável pela aquisição
e processamento de imagem do sensor de visão do dirigível (câmara de vídeo) e implementar o
algoritmo de controlo e condução do mesmo por actuação dos seus actuadores. No desenvolvimento
do projecto foram ainda considerados outros sistemas electrónicos, utilizados para alcançar os fins
propostos. Para o teste e ajuste dos algoritmos de controlos e visão é oportunamente desenvolvido
um simulador do dirigível no simulador USARSim, num ambiente gráfico 3D realista, realizado à
imagem do protótipo real que se revelou uma ferramenta de trabalho de importantíssima utilidade
durante o desenvolvimento dos algoritmos de seguimento, pois dispensa a utilização do robô real na
fase de desenvolvimento.
Para a condução deste projecto foram inicialmente propostos três passos de implementação do
sistema de controlo, divididos em duas etapas, com vista a um desenvolvimento sólido do projecto:
Etapa 1a (simulação em Matlab):
Estudo do simulador Simulink do Passarola do projecto anterior [3], inclusão da transformação de
velocidades das hélices para velocidades no referencial do dirigível e respectivo ajuste do controlador
tendo em conta os novos ganhos introduzidos (Figura 1.2).
4
Figura 1.2 – Esquema do controlador a ser implementado em Simulink (Matlab).
Etapa 1b (simulação em USARSim):
Passagem para a linguagem C do código do controlador e substituição do simulador Simulink do
Passarola, pelo novo simulador USARSim (a desenvolver), onde é incluída a simulação da câmara de
vídeo do dirigível. Segue-se ainda o desenvolvimento do processamento de imagem e construção de
algoritmos de controlo com base nas imagens recebidas pela referida simulação da câmara (Figura
1.3).
Figura 1.3 – Esquema de controlo a ser implementado com o novo simulador 3D realista – USARSim.
Etapa 2 (Realidade):
Passagem de todo o código para a unidade de processamento real – DSP. Avaliação da
possibilidade de manter o USARSim a correr no PC ligado ao DSP, podendo desta forma usar o
simulador 3D realista na cadeia de controlo (“Hardware in the loop”), em substituição do dirigível real,
com todas as facilidades que isso pode permitir. Realização de experiências no seguimento de
trajectórias. Aplicação do sensor GPS no DSP. Realização de testes no robô Passarola real (Figura
1.4).
Controlador (simulnk)
Transformação de referenciais
Simulador de [3]
(Simulink)
Distância e ângulo ao(s) veículos a seguir
w1
w2
w3
Vx
Vz
W
Controlador (com o PC)
Transformação de referenciais
Simulador USARSiml
(3D/ realista)
Estimativa de distância e ângulo ao(s) veículo(s) a seguir
w1
w2
w3
Vx
Vz
W
Processamento de imagem
Simul. câmara
5
Figura 1.4 – Diagrama de blocos do sistema de controlo real final.
1.4 – Estrutura da Dissertação
Em seguida apresenta-se a estrutura da presente Dissertação, organizada em 8 capítulos, com a
descrição de todos os passos desenvolvidos para a construção do sistema autónomo de controlo do
Passarola, assim como os resultados finais obtidos no protótipo real:
− No Capítulo 2 é melhorado o estudo teórico do modelo físico do dirigível, anteriormente
realizado para o robô Passarola [3]. São deduzidas as equações matemáticas da cinemática
e da dinâmica do dirigível e dos seus actuadores, que permitem efectuar a modelação da
dinâmica do robô;
− No Capítulo 3 é efectuada a determinação e identificação dos subsistemas que definem o
movimento do dirigível, utilizando como suporte experiências realizadas com o robô real, para
o estudo teórico do controlador com base nos métodos de projecto de controlo linear;
− No Capítulo 4 é apresentada a dedução da lei de controlo com base no esquema de controlo
definido para este projecto, cuja realimentação é dada por image servoing. Para cada uma
das situações de controlo (seguimento do ATRVJr e seguimento de Linhas) é efectuada a
definição do erro de seguimento, é aplicada a lei de controlo ao sistema e realiza-se por
último o ajuste dos parâmetros dos controladores;
− No Capítulo 5 são apresentados alguns resultados intermédios do controlador na medida em
que é demonstrada a funcionalidade da lei de controlo num ensaio teórico realizado em
Matlab, no simulador Simulink, com o modelo da dinâmica do robô Passarola. É ainda testado
o esquema de controlo real utilizando os controladores PD digital afinados no Capítulo 4;
− No Capítulo 6 é apresentada a base de trabalho deste projecto com a descrição de todos os
sistemas físicos desenvolvidos para a construção do sistema autónomo de controlo do
dirigível Passarola, entre os quais a sua unidade de processamento (DSP);
− Os resultados obtidos em simulação e no robô real são finalmente apresentados e discutidos
no Capítulo 7, com a apresentação de gráficos de posição/orientação em função do tempo,
para a avaliação do desempenho dos comportamentos obtidos;
Controlador (com o DSP)
Dirigível real (Passarola)
w1
w2
w3
Processamento de imagem
GPS Câmara
DSP
Imagens
Dados do GPS
6
− No Capítulo 8 são apresentadas as conclusões desta dissertação e são sugeridos alguns
trabalhos futuros.
No final deste relatório encontram-se ainda uma série de anexos onde são apresentados cálculos
auxiliares ao projecto e é apresentado o simulador USARSim utilizado para o desenvolvimento deste
projecto. Neste último, é ainda realizada a descrição de todos os passos envolvidos na construção do
modelo USARSim do Passarola, na optimização dos seus comandos de controlo e por fim a afinação
dos seus parâmetros físicos com base no dirigível real.
7
2 Modelação do Dirigível Passarola
2.1 – Descrição do Robô e dos seus Actuadores
A presente investigação foi realizada no dirigível Passarola, protótipo aéreo para missões de busca e
salvamento, da propriedade do ISR – Lisboa (Instituto de Sistemas e Robótica), do Instituto Superior
Técnico (Figura 2.1).
Figura 2.1 – Dirigível Passarola.
Os sistemas de controlo disponíveis no dirigível são constituídos por dois motores dianteiros, um
motor traseiro e uma barra transversal de suporte e rotação dos motores dianteiros. A barra
transversal está encastrada na gôndola e possui servomecanismos que lhe permite girar 360 graus,
possibilitando o controlo do dirigível no plano XZ1. Os motores dianteiros são os actuadores
responsáveis pela impulsão do dirigível no plano vertical, no sentido positivo ou sentido negativo, uma
vez que possuem reversão. Por fim, o motor traseiro localizado na cauda do dirigível, faculta o
controlo da sua orientação, através da rotação do hélice no sentido directo ou no sentido inverso,
criando um binário positivo ou negativo em torno do eixo z. As dimensões do dirigível estão
representadas na figura 1.2.
Figura 2.2 – Dimensões do dirigível Passarola.
1 X = direcção longitudinal; Z = direcção vertical
8
2.2 – O Modelo Não-Linear do Dirigível
Nas próximas secções, será realizada a repetição e o melhoramento da modelação da dinâmica do
robô Passarola, apresentada em [3], onde se assumem novas convenções para as equações
cinemáticas e para as equações da dinâmica que descrevem o comportamento do sistema, baseadas
no estudo de [2].
O estudo da dinâmica pode ser dividido em duas partes: estudo da cinemática, que trata apenas dos
aspectos geométricos do movimento, e estudo da dinâmica, que é a análise das forças causadoras
do movimento do veículo.
De acordo com [2], as equações de movimento dos veículos marítimos pode ser escrito numa forma
vectorial do tipo (2.1) e (2.2), descritas nas secções que se seguem:
vJ )(ηη =&
wggvvDvvCvM ++=+++ 0)()()( τη& .
Tendo em conta que os veículos aéreos, como os dirigíveis, são nada mais do que uma massa que
se desloca dentro de um fluido – ar, embora com menor densidade que a água, conclui-se que estas
equações também podem ser aplicadas em veículos aéreos da mesma forma que é feito nos veículos
submarinos, apresentado na bibliografia.
2.2.1 – Cinemática
Nesta secção será apresentada a cinemática do dirigível em estudo.
Definição dos referenciais
No caso geral de um deslocamento no espaço de um corpo rígido, este fica completamente definido
por um conjunto finito de rotações num dado sistema de eixos, e um número finito de translações ao
longo de um dado vector. A descrição da cinemática de um veículo é baseada na existência de dois
referenciais: um referencial inercial – referencial f, onde as leis de Newton do movimento podem ser
aplicadas e um referencial móvel, fixo ao corpo do veículo – referencial b.
No caso do sistema em estudo do dirigível, definiu-se o referencial inercial f como sendo o
referencial que está contido no plano do solo, que se assume ser localmente plano (negligenciando a
curvatura da Terra), e definiu-se o referencial móvel b solidário com o corpo do dirigível, com origem
no seu centro de gravidade e com os eixos x, y e z coincidentes com os seus principais eixos de
inércia, tal como representado na Figura 2.3.
(2.1)
(2.2)
9
Figura 2.3 – Definição dos referenciais f e b, reproduzido de [2].
No caso dos veículos com 6 graus de liberdade (DOF), são necessárias 6 coordenadas
independentes para determinar a sua posição e orientação. As primeiras três coordenadas e as suas
derivadas temporais correspondem à posição e movimento translacional do veículo, ao longo do
eixos x, y e z, enquanto que as ultimas três coordenadas, e as suas derivadas temporais, são
utilizadas para descrever a sua orientação e o seu movimento de rotação.
O dirigível em questão faz parte da classe dos sistemas que são sub-actuados, ou seja, possui
menos entradas de controlo do que graus de liberdade, limitando o controlo do veículo.
Por conseguinte, no caso de qualquer veículo que se movimente no espaço 3D, as variáveis
utilizadas para descrever o modelo cinemático do sistema encontram-se sintetizadas na Tabela 2.1.
Tabela 2.1 – Síntese das componentes do movimento para veículos com 6 graus de liberdade e variáveis utilizadas.
DOF Forças e momentos
Velocidades linear e angular
Posição e ângulos de Euler
1 Movimento no eixo x (surge) X u x
2 Movimento no eixo y (sway) Y v y
3 Movimento no eixo z (heave) Z w z
4 Rotação em torno x (roll) K p φ
5 Rotação em torno y (pitch) M q θ
6 Rotação em torno z (yaw) N r ψ
Os sistemas de eixos de rotação e translação não necessitam de ser os mesmos, tal como no
presente caso, uma vez que é muito mais fácil descrever o movimento quando estes se encontram
desacoplados. Uma rotação finita não obedece necessariamente às leis de adição vectorial, e como
tal, por integração directa da velocidade angular do corpo não se pode obter a atitude do mesmo.
Existem várias formas de descrever rotações finitas. A representação mínima mais usual no mundo
aeronáutico é dada pelos três ângulos de Euler Θ (ângulo de rolamento (roll) - φ , ângulo de picada
10
(pitch) - θ, e ângulo de guinada (yaw) - ψ). Em conjunto com as três coordenadas de posição p, o
corpo fica completamente descrito em cada momento. A posição e orientação do veículo devem ser
expressas relativamente ao sistema de coordenadas inercial, enquanto que as velocidades linear e
angular são de mais fácil expressão no referencial fixo ao corpo.
Desta forma, definem-se para o veículo em estudo os seguintes vectores:
O vector η contêm as coordenadas do referencial b no referencial f, enquanto que ν e τ
representam as velocidades e forças aplicadas, descritas no referencial b.
É necessário agora conhecer a relação entre as variáveis de cada um dos referenciais, de forma a
passar de um referencial para o outro. A matriz de rotação e a matriz de transformação que
descrevem esta relação são apresentadas nas equações (2.4) e (2.6).
VRp )(Θ=& ;
−+−+
++−=Θ
φθφθθφψθφψψθφφψθψ
θφψφψφθψφψθψ
ccscs
cssscssscccs
sccssssccscc
R )(
;)( ΩΘ=Θ T&
−−−
=Θ−
φθφφθφ
θ
ccs
scc
s
T
0
0
01
)(1 ,
−=Θθφθφ
φφθφθφ
cccs
sc
tcts
T
//0
0
1
)(
onde s ⋅ = sin( ⋅ ), c ⋅ = cos( ⋅ ) e t ⋅ = tan( ⋅ ).
A matriz de rotação ortogonal R especifica a orientação do referencial b relativamente ao referencial
inercial f em coordenadas deste último, fornecendo uma relação de coordenadas entre os
referenciais.
Quanto às coordenadas angulares, pelo facto de não existir interpretação física imediata da
integração do vector de velocidade angular Ω para obtenção directa do vector de coordenadas
angulares Θ, relacionam-se estes vectores pela matriz de transformação da velocidade angular T,
equação (2.7), para obtenção das coordenadas angulares generalizadas. Esta matriz é singular para
Ζ∈±= kK ,2/ ππθ . Esta descrição é válida desde que 2/2/ πθπ <<− o que é suficiente
[ ]ΤΘ= ,pη ; [ ]Τ= zyxp ,, ; [ ]Τ=Θ ψθφ ,, ;
[ ]ΤΩ= ,Vν ; [ ]Τ= wvuV ,, ; [ ]Τ=Ω rqp ,, ;
[ ]Τ= mf ,τ ; [ ]Τ= ZYXf ,, ; [ ]Τ= NMKm ,, ;
(2.7)
(2.6)
(2.5)
(2.4)
(2.3)
11
para o dirigível em questão, uma vez que, valores de picada superiores a estes, não são aceitáveis
para um dirigível.
A cinemática do dirigível vem, por fim, dada por (2.8), de acordo com a equação (2.1):
νηη )(J=&
Ω
ΘΘ
=
Θ⇔
×
× V
T
Rp
)(0
0)(
33
33
&
&
2.2.2 – Dinâmica
Para a descrição matemática da dinâmica de voo do dirigível é necessário que esta contenha a
informação necessária relativamente aos efeitos aerodinâmicos, estruturais, dinâmica dos actuadores
e dos motores, etc. É vantajoso formular as equações do movimento no sistema de eixos fixo ao
corpo, por forma a tirar alguma vantagem das propriedades geométricas do dirigível. O modelo
dinâmico, deduzido pela aplicação das leis da mecânica de Newton e de Lagrange às forças e
momentos aplicados num corpo rígido, realizado em [1], permitiu por conseguinte obter as equações
do movimento do protótipo em estudo, para os seis graus de liberdade (movimento translacional e
rotacional), como será mostrado neste capítulo.
A dinâmica do dirigível pode ser convenientemente escrita na forma da equação (2.2), como referido,
cujas variáveis se encontram descritas no referencial b, embora sejam ainda assumidas algumas
simplificações por conveniência de análise do modelo. Desprezando o vector de perturbações
externas – w (p.ex. vento), e o vector de forças de contrapeso – g0 (p.ex. utilização de lastro),
alcançou-se a equação final que será utilizada no estudo da dinâmica do dirigível (2.9):
τηννννν =+++ )()()( gDCM & ,
com
[ ][ ][ ]
===
Τ
Τ
Τ
NMKZYX
rqpwvu
zyx
,,,,,
,,,,,
,,,,,
τν
ψθφη, onde as matrizes representam:
M = MRB + MA matriz de inércia do sistema de corpo rígido (incluindo os termos de massa virtuais)
C(ν) = CRB+ CA(ν) matriz das forças de Coriolis e forças centrípetas (incluindo os termos de massa virtuais)
D(ν) matriz de amortecimento aerodinâmico (aerodynamic damping)
g(η) vector de forças e momentos gravitacionais/sustentação estática
τ vector de entradas de controlo
(2.9)
(2.8)
12
O modelo não linear apresentado neste capítulo é principalmente direccionado para o desenho de
sistemas de controlo em combinação com identificação do sistema e da estimação de parâmetros.
As matrizes que modelam a dinâmica do dirigível serão agora apresentadas, e a equação final em
espaço-de-estados será então obtida para caracterização do modelo do sistema em estudo.
São ainda consideradas algumas simplificações, relativamente à constituição do robô. O dirigível é
considerado um corpo rígido, pois é suposto que este se encontre perfeitamente insuflado. As
gôndolas e os deflectores são desprezados tendo em conta a reduzida velocidade de operação do
robô e as suas reduzidas dimensões em relação ao balão. O envelope do dirigível é ainda assumido
como sendo simétrico.
Devido ao volume não desprezável do dirigível não é possível ignorar as suas características de
inércia e os termos de massa virtual. Estes últimos surgem como um mecanismo de incorporar à
dinâmica do dirigível o efeito devido à sua imersão no fluido circundante. Ao mover-se no ar o dirigível
desloca uma quantidade de fluido, que por sua vez induz forças e momentos neste que não podem
ser desprezáveis face à sua massa e dimensões. Estes efeitos podem ser modelados como se a
massa do dirigível fosse superior à que é na realidade.
Passemos agora à definição das matrizes e vectores envolvidos na equação da dinâmica (2.9).
A matriz de inércia M RB, é única e satisfaz 0>= ΤRBRB MM e 660 ×=RBM& e é dada por (2.10):
−−−−−−−−−
−−
−
=
−= ×
zzzyzxgg
yzyyyxgg
xzxyxxgg
gg
gg
gg
RB
IIImxmy
IIImxmz
IIImymz
mxmym
mxmzm
mymzm
ImS
rmSmIM
0
0
0
000
000
000
))(
0
33 ,
sabendo que, I3x3 é a matriz identidade, r é o vector com a localização do centro de gravidade em
relação à origem do referencial b dado por (2.11), S(r) é a matriz de enviezamento (skew-symmetric
matrix) dada por (2.12), m é a massa do veículo e I0 é a matriz de inércia (2.13).
[ ]Τ= gggg zyxr ,,
−−
−=⇔−= Τ
0
0
0
)()()(
gg
gg
gg
ggg
xy
xz
yz
rSrSrS
(2.10)
(2.11)
(2.12)
13
−−−−−−
=
zzzyzx
yzyyyx
xzxyxx
III
III
III
I 0 .
Tendo agora em conta a convenção assumida para a localização do referencial b, que diz que a
origem de b coincide com o centro de gravidade C.G. do dirigível, de onde resulta (2.14), e que os
eixos de b são concordantes com os principais eixos de inércia deste veículo, pode-se escrever
(2.15):
[ ]Τ= 0,0,0gr ;
zyxGC IIIdiagII ,,..0 == ,
concluindo-se que, para o dirigível, teremos MRB na forma simplificada dada por (2.16):
zyxGC
RB IIImmmdiagI
mIM ,,,,,
0
0
..33
3333 =
=
×
××.
A matriz CRB, representa os termos do vector de Coriolis ϖ x ν e os termos do vector Centrípeto
ϖ x (ϖ x r) para corpos rígidos, mas ao contrário de MRB, podem existir várias representações da
matriz CRB. A representação de CRB utilizada, correspondente à dedução adoptada em [1], e é dada
por (2.17):
=
−+−−−
=−= ×Τ
)()()()(
)()()(0)()(
0
33
ϖϖϖ
ννISSrmSVmS
rSmSVmSCC RBRB
−++−−+−−++−−−+++−−−++−−−++−
++−−−−−++−+−−−+
=
0)()()(
0)()()(
0)()()(
)()()(000
)()()(000
)()()(000
pIqIrIqIpIrIqypxmurymvrxm
pIqIrIrIpIqIuqzmpxrzmwqxm
qIpIrIrIIqIvpzmwpymrzqym
qypxmuqzmvpzm
urympxrzmwpym
vrxmwqxmrzqym
xxxyxzyyxyyzgggg
xxxyxzzzxzyzgggg
yyxyyzzzxzyzgggg
gggg
gggg
gggg
Neste caso também se abreviam os termos da matriz devido a (2.14) e (2.15), obtendo-se para CRB a
matriz simplificada (2.18).
(2.13)
(2.17)
(2.15)
(2.16)
(2.14)
14
−−−−
−−−
−−
=
00
00
00
0000
0000
0000
pIqImumv
pIrImumw
qIrImvmw
mumv
mumw
mvmw
C
xxyy
xxzz
yyzzRB
A matriz de adição de massas surge devido à inércia do fluido circundante, que imprime no veículo
movente forças de pressão induzidas e momentos, que o forçam a um movimento harmónico forçado.
No caso de o veículo possuir três planos de simetria, os elementos da matriz de massas virtuais MA,
fora da diagonal, podem ser desprezados obtendo-se para MA e CA as matrizes (2.19) e (2.20),
respectivamente.
[ ],,,,,, rqpwvuAA NMKZYXdiagMM &&&&&&−== Τ
onde cada um dos elementos da matriz são constantes e significam a derivada parcial da força
aerodinâmica da massa virtual, criada devido a uma aceleração, em ordem à respectiva aceleração
aplicada, isto é, por exemplo νν && ∂∂= YY : .
−−−−
−−−
−−
=−= Τ
00
00
00
0000
0000
0000
)()(
pKqMuXvY
pKrNuXwZ
qMrNvYwZ
uXvY
uXwZ
vYwZ
CC
pquv
pruw
qrvw
uv
uw
vw
AA
&&&&
&&&&
&&&&
&&
&&
&&
νν
Esta aproximação da matriz MA a uma estrutura diagonal verifica-se ser, na prática, bastante aceitável
para muitas aplicações, uma vez que os elementos fora da diagonal são muito mais pequenos que os
elementos da diagonal, pelo facto da matriz MA gozar da propriedade 0>= AT
A MM .
O amortecimento aerodinâmico D(νννν) surge do efeito da fricção do corpo do veículo com o fluido
exterior e também devido ao efeito de turbilhão (vortex shedding) criado no ar, aquando da sua
deslocação do corpo do veículo pelo ar, criando zonas de menor pressão que sugam o veículo e
criam resistência à sua passagem. A matriz de amortecimento aerodinâmico é dada por (2.21):
)()( νν nDDD += ,
(2.20)
(2.19)
(2.18)
(2.21)
15
onde D é a matriz de amortecimento aerodinâmico linear (2.22) e Dn(ν) é a matriz de amortecimento
aerodinâmico não-linear (2.23):
rqpwvu NMKZYXdiagD ,,,,,−=
rNqMpKwZvYuXdiagD rrqqppwwvvuun ,,,,,)( ||||||−=ν
Além da massa e de forças de amortecimento, o dirigível também é afectado por forças gravíticas e
por forças de sustentação estática (buoyancy forces), denominadas por forças de restituição
(restoring forces).
Figura 2.4 – Representação das forças de restituição que actuam no corpo do dirigível.
Tal como representado na Figura 2.4, a força gravítica fg é aplicada no Centro de Gravidade do
dirigível (C.G.), definido por rg = [xg, yg, zg]T, e a força de sustentação estática fb é aplicada no Centro
de Sustentação Estática (C.B.), no centro do corpo do dirigível, definido por rb = [xb, yb, zb]T. É
desejável que o centro de gravidade se encontre logo abaixo do centro de Sustentação Estática, de
forma a garantir que o Dirigível não adquire ângulo de picada (pitch), e se mantenha estaticamente
nivelado. Esta situação corresponde a se ter sempre a distribuição de massas equilibrada dentro da
gôndola.
Realizando a dedução correspondente à representação dos ângulos de Euler das forças e momentos
aerostáticos obtém-se, para g(η), o vector indicado em (2.24):
−−−−−+−
−+−−−−−−−
=
θφθφθθ
φθφθφθφθ
θ
η
sfyfyscfxfx
ccfxfxsfzfz
scfzfzccfyfy
ccff
scff
sff
g
bbggbbgg
bbggbbgg
bbggbbgg
bg
bg
bg
)()(
)()(
)()(
)(
)(
)(
)( ,
(2.23)
(2.24)
(2.22)
16
com:
mgf g = e ∇= gf arb ρ ,
onde ∇ é o volume de fluido ocupado pelo corpo do veículo, g é a aceleração da gravidade e ρar é a
densidade do respectivo fluido, e onde s ⋅ = sin( ⋅ ), c ⋅ = cos( ⋅ ) e t ⋅ = tan( ⋅ ).
Para veículos neutralmente flutuantes2 fg = fb, com o centro de gravidade e o centro de sustentação
estática localizados verticalmente, ao longo do eixo dos zz (xg = xb e yg = yb), como é o caso da
aeronave em estudo, e sabendo que zg = 0 o vector (2.24) simplifica-se, ficando:
[ ]Τ−−= 0,,,0,0,0)( θφθη smgzscmgzg bb
2.3 – Actuação
Definidas as equações cinemáticas e dinâmicas do dirigível torna-se agora necessário definir também
estas equações para a actuação do dirigível.
Os efeitos das forças geradas pelos actuadores dependem da sua localização no referencial fixo ao
corpo b. Considere-se então a Figura 2.5, que representa, de uma forma esquemática, a localização
dos motores no corpo da aeronave.
Figura 2.5 – Esquema da posição dos actuadores no corpo do dirigível.
2 Propriedade característica dos dirigíveis, veículo flutuante naturalmente estável, cujo volume de hélio presente no seu envelope deve ser o suficiente para manter o valor da sustentação estática próxima do peso da aeronave, sendo que os ganhos ou perdas de altitude são conseguidos com recurso à motorização.
(2.25)
(2.26)
17
Pode-se então, decompor as forças dos motores nas suas componentes fundamentais, no referencial
b, obtendo-se as equações (2.27):
+==
+=
α
α
sin)(
0
cos)(
MDEMDD
MDEMDD
FFZ
Y
FFX
Os respectivos momentos angulares são dados por (2.28):
−=+−=
−=
MTMT
MDMD
MTMT
XFN
ZXXZM
ZFK
.
..
.
2.4 – Linearização
Tal como já tinha sido referido na equação (2.2), o veículo em estudo pode ser modelado por um
conjunto de equações predominantemente não lineares de alguma complexidade. No entanto, para
efectuar o estudo do controlador para este sistema torna-se necessário recorrer a várias
simplificações. Estas facilitam a análise do sistema, o uso de métodos de controlo conhecido e a
escolha de variáveis de estado para controlar cada um dos actuadores.
Uma das principais características deste tipo de veículos é a sua estabilidade inerente, como foi
demonstrado em [3], permitindo portanto que o controlo da aeronave não seja focado na sua
estabilização, mas sim no seguimento de referências.
Análise e simplificação do modelo teórico
Para a dedução do modelo linearizado do dirigível considera-se por simplificação que os seus
ângulos de rolamento e picada serão sempre desprezáveis, o que se verifica ser uma boa
aproximação uma vez que em aplicações de baixa velocidade, tal como é considerado para o veículo
em causa, estes ângulos são muito reduzidos:
0== θφ
De forma a obter as equações do movimento linearizadas, segundo [2], é conveniente criar um
sistema de coordenadas paralelo ao veículo , fixo ao seu corpo, com os eixos paralelos ao
(2.29)
(2.27)
(2.28)
18
referencial f fixo à Terra, tornando este processo mais directo. Simplificando a equação da
cinemática (2.8) com base em (2.29), obtém-se:
νψνηηθφ
)()(0
PJ==
≈=& ,
onde:
=
××
×
3333
33
0
0)()(
I
RP
ψψ ,
onde R(ψ) representa a matriz de rotação R apenas em função do ângulo de guinada (yaw) ψ.
Daqui define-se que, o sistema de coordenadas paralelo ao dirigível é dado por:
ηψη )(Τ= Pp
onde ηp é a posição/atitude do referencial inercial f decomposto nas coordenadas do referencial do
corpo b e 66)()( ×Τ = IPP ψψ .
Para aplicações de baixa velocidade, usando a definição (2.32) e recorrendo à teoria linear, pode
então escrever-se para as equações cinemáticas do movimento que:
νηνψψηψψ
ηψηψη
+=
+=
+=ΤΤ
ΤΤ
p
p
p
rS
PPPP
PP
)()()()(
)()(
&
&&&
onde ψ&=r e
−=××
×
4323
42
00
001
10S .
Como neste tipo de aplicações 0≈r a equação da cinemática (2.33) reduz-se a 6 integradores
puros e é dada por (2.35), tornando este modelo linear em ν:
νη ≈p&
Para as forças de restituição também se pode utilizar a definição (2.32) para a sua linearização.
Atendendo à simplificação (2.29) pode escrever-se que:
pp GGPPGPg ηηψψηψηθφ
==≈ ΤΤ==
)()()()(0
,
onde:
0,,,0,0,0 mgzmgzdiagG bb −−= ,
a qual é independente do ângulo de guinada (yaw) ψ.
(2.30)
(2.31)
(2.32)
(2.33)
(2.34)
(2.35)
(2.36)
(2.37)
19
A simplificação (2.29) para aplicações de baixa velocidade 0≈ν implica que as forças e momentos
não lineares de Coriolis, de amortecimento e de restituição, podem ser linearizados em torno de
0=ν e 0== θφ . Uma vez que 0)0( =C e 0)0( =nD , faz sentido que se possa fazer a
aproximação:
τηννννν
η
=++++pGD
n gDDCM )()]([)(0
43421321& ,
que pode ser escrita na forma final linearizada:
νη =&
τηνν =++ pGDM & .
Definindo as varáveis de estado como:
=
=⇒
=
=
νη
νη
&
&
&
&& pp
x
xx
x
xx
2
1
2
1 e τ=Bu ,
sendo u o vector das variáveis de controlo disponíveis para cada um dos três graus de liberdade
sujeitos a actuação, dado por [ ]Τ= ZFXu MT ,, . A solução da dinâmica do dirigível será obtida a
partir das suas equações de estado do modelo. Fazendo as substituições e resolvendo as equações
(2.39) e (2.40) em ordem a 1x& e a 2x& respectivamente, vem:
21 xx =&
BuMGxMDxMx 11
12
12
−−− +−−=&
Na expressão (2.41) não é representada a dependência temporal das variáveis para facilitar a
notação.
Este sistema corresponde, por fim, ao modelo em espaço de estados linear e invariante no tempo
pretendido e pode reescrever-se na forma:
buAxxuBMx
x
DMGM
I
x
x+=⇔
+
−−=
−×
−−×× &
&
&136
2
111
6666
2
1 00.
As respectivas matrizes para o sistema linearizado são dadas por (2.22) para a matriz de
amortecimento linear D, por (2.37) para a matriz de forças de restituição G, por (2.44) para a matriz de
inércia do sistema M e por (2.45) para a matriz de transformação de entradas de controlo B:
rzzqyypxxwvu NIMIKIZmYmXmdiagM &&&&&& −−−−−−= ,,,,, .
(2.38)
(2.39)
(2.40)
(2.42)
(2.43)
(2.44)
(2.41)
20
A matriz B é obtida da decomposição matricial do vector τ, já calculado, onde são separadas as
variáveis de controlo que constituem o vector u, ficando:
−−
=
00
0
00
100
000
001
MT
MDMD
MT
X
XZ
ZB .
Como simplificação pode-se considerar que o motor de cauda se encontra no plano XY do referencial
b, que corresponde a considerar na Figura 2.5 que zMT = 0. Esta simplificação, apesar de grosseira,
não possui grandes implicações no resultado final, uma vez que o Dirigível possui um ângulo de
rolamento naturalmente nulo e a actuação deste motor não é demasiado significativa quando
comparada com os motores dianteiros.
De notar ainda que as posições da aeronave no referencial f terão que ser calculadas a partir de ηp
usando a expressão (2.46), para apresentação da sua posição η ao operador humano,
permanecendo a realimentação do sistema de controlo baseado nas variáveis de estado (ηp,ν):
pP ηψη )(=
2.5 – Definição de Subsistemas
Observando o modelo obtido com mais atenção fica claro que este pode ser separado em dois
sistemas inteiramente desacoplados efectuando apenas algumas trocas nas linhas e nas colunas das
matrizes do modelo linearizado, tal como se apresenta nesta secção. Estamos por conseguinte na
presença de dois subsistemas independentes, um que descreve o comportamento do dirigível no
plano vertical (Subsistema XZ) e outro q modela o comportamento rotacional em torno do eixo dos zz
(Subsistema de Direcção).
Finalmente, pode ser observado que o acoplamento real entre estes dois subsistemas, presente no
sistema total não linear, é o resultado da estrutura inerente da matriz de coriolis. Mas tendo em conta
que o seu efeito a baixa velocidade é reduzido, C(ν) pode ser negligenciado mesmo no modelo não
linear, deixando-nos igualmente com os dois subsistemas desacoplados. Pode-se ainda incluir a
dinâmica total não linear dos efeitos gravíticos g(η) e da matriz de amortecimento D(ν), situação na
qual se iria incorrer em vários erros pois o acoplamento está presente no veículo, no entanto, este
acoplamento pode simplesmente ser considerado como uma perturbação externa, com a qual o
controlador terá que lidar.
(2.45)
(2.46)
21
2.5.1 – Definição do Subsistema XZ
Neste caso, as variáveis de estado correspondentes são [ ]Τ= qwuzxx ,,,,, θ , sendo a
actuação exercida por [ ]Τ= ZXu , . De notar que X e Z são consideradas desacopladas por
simplificação, pois na realidade a magnitude destas duas forças dependem ambas da orientação α
dos actuadores de propulsão. Na realidade tem-se que as forças de propulsão são dadas por:
αα
sin
cos
MD
MD
FZ
FX
==
, 2MD
MDDMDE
FFF == .
O subsistema pode ser descrito pelo seguinte modelo de espaço de estados:
uBM
xDMGM
Ix
+
−−= −
×−−
××123
113333 00
& ,
onde as matrizes M, D e G são construídas pelos elementos já apresentados, correspondentes às
variáveis de estado definidas para o subsistema, tal como é representado em (2.49):
−−
−=
qyy
w
u
MI
Zm
Xm
M
&
&
&
00
00
00
−−
−=
q
w
u
D
D
D
D
00
00
00
−=
mgz
G
b00
000
000
.
A matriz B depende da localização dos motores propulsores no referencial b. As suas localizações
são assumidas como sendo simétricas em relação ao centro de gravidade da aeronave, resultando
na matriz expressa por:
−=
MDMD xz
B 1
0
0
1
.
(2.47)
(2.48)
(2.49)
(2.50)
22
2.5.2 – Definição do Subsistema de Direcção
As variáveis de estado definidas para este subsistema são dadas por [ ]Τ= rpvyx ,,,,, ψφ ,
com actuação exercida apenas pelo motor traseiro MTFu = . O sistema é descrito pelo modelo de
espaço de estados da equação (2.51):
uBM
xDMGM
Ix
+
−−= −
×−−
××113
113333 00
& ,
onde as matrizes M, D e G são construídas pelos elementos já apresentados, correspondentes às
variáveis de estado escolhidas para o sistema, tal como se apresenta em (2.52).
−−
−=
rzz
pxx
v
NI
KI
Ym
M
&
&
&
00
00
00
−−
−=
r
p
v
D
D
D
D
00
00
00
−=000
00
000
mgzG b .
A matriz B depende da localização do motor traseiro no referencial b e é expressa por:
−=
MT
MT
X
ZB
0
.
(2.51)
(2.52)
(2.53)
23
3 Identificação de Sistemas
3.1 – Definição da Função de Transferência G(s) Considere-se a expressão genérica do modelo em espaço de estados:
=+=
)()(
)()()(
tCxty
tbutAxtx&
Pela teoria em espaço de estados, tendo-se o sistema definido na forma (3.1) é possível obter-se a
função de transferência equivalente H(s) = Y(s) / U(s), para a variável de estado pretendida (dada
pela matriz C), através da aplicação da transformada de Laplace ao sistema, de onde resulta:
)det(
).(.)(
AsI
bAsIadjCsG
−−= ,
onde )(Madj e )det(M são a matriz adjunta e o determinante respectivamente, da matriz M
genérica.
Tal como foi entendido no Capítulo 2, o robô em estudo tem os movimentos de translação e de
rotação desacoplados3. Nesta fase de projecto, com o objectivo de procurar uma base teórica para a
definição dos controladores em estudo, procurou-se conhecer as funções de transferencia que regem
os respectivos movimentos do dirigível para depois se proceder à sua identificação no sistema real e,
com base neste conhecimento, fazer o estudo dos controladores em simulação.
Sabendo a definição de cada um dos vectores de estado Tpx ],[ νη= e as respectivas matrizes que
compõem cada um dos dois modelos em espaço de estados do dirigível, designadamente:
− «Subsistema XZ», com [ ]Τ= qwuzxx ,,,,, θ ;
− «Subsistema de Direcção», com [ ]Τ= rpvyx ,,,,, ψφ ,
falta apenas definir qual o vector C desejado para cada um dos casos, para que se apresentem as
funções de transferência em causa.
3 A aproximação é válida, bastando para tal observar as características da actuação do robô, onde a separação de movimentos acontece de forma visível.
(3.2)
(3.1)
24
Definindo o vector C como:
[ ]Τ= 654321 ,,,,, ccccccC ,
e pretendendo-se conhecer para o movimento de translação do robô no plano XZ as suas posições
temporais x e z, obtém-se naturalmente:
Posição x na saída do modelo (2.48):
[ ]0,0,0,0,0,1=xC ;
Posição z na saída do modelo (2.48):
[ ]0,0,0,0,1,0=zC .
Para o movimento rotacional do robô, pretendendo-se conhecer a sua orientação temporal em torno
de z, obtém-se para o vector C do subsistema:
Posição ψ na saída do modelo (2.51):
[ ]0,0,0,1,0,0=ψC .
Sejam agora consideradas os modelos em espaço de estados de cada um dos subsistemas de um
dirigível não-holonómico do tipo do Passarola (Subsistema XZ – Parte X e Subsistema de Direcção,
respectivamente), obtidos na Secção 2.5 e escritos de uma forma genérica por:
+
=
Z
X
bb
b
b
q
w
u
z
x
aa
a
a
q
w
u
z
x
3,111,11
3,9
1,7
11,115,11
9,9
7,7
0
0
00
00
00
0000
00000
00000
100000
010000
001000
θθ
&
&
&
&
&
&
,
[ ]MTF
br
p
v
y
a
aa
a
r
p
v
y
+
=
2,1212,12
10,104,10
88
0
0
0
0
0
00000
0000
00000
100000
010000
001000
ψφ
ψφ
&
&
&
&
&
&
.
Obtenham-se, por conseguinte, as funções de transferência desejadas, para cada subsistema, nas
secções que se seguem.
(3.3)
(3.4)
(3.6)
(3.7)
(3.8)
(3.5)
25
3.1.1 – Função de transferência do Subsistema XZ – Parte X
Escreva-se de uma forma genérica para o Subsistema XZ – parte X (Z=0), a matriz XZAsI − e o
vector bX, correspondente à anulação da força Z na matriz bXZ, para efeitos do cálculo da função de
transferência, relativa ao movimento linear rectilíneo uniformemente acelerado do dirigível, ao longo
do eixo dos xx:
−−−
−−
−−
=−
11,115,11
9,9
7,7
0000
00000
00000
10000
01000
00100
asa
as
as
s
s
s
AsI XZ,
[ ]Τ= 1,111,7 ,0,,0,0,0 bbbX .
Desenvolvendo a matriz adjunta de XZAsI − e multiplicando esta pelos vectores CX e bx, fica-se com:
1,711,119,92 ).)(().(. basassbAsIadjC XXZX −−=− .
Calculando agora o determinante da matriz XZAsI − temos por fim a função de transferência do
dirigível para a variável de estado x:
)())()((
).)((
)det(
).(.)(
7,7
1,7
11,119,97,73
1,711,119,92
ass
b
asasass
basass
AsI
bAsIadjCsG
XZ
XXZxX −
=−−−
−−=
−−
= .
3.1.2 – Função de transferência do Subsistema XZ – Parte Z
Escrevendo de uma forma genérica o vector bZ, correspondente a anulação da primeira coluna da
matriz bXZ do Sistema XZ, temos:
[ ]Τ= 3,113,9 ,,0,0,0,0 bbbZ .
Desenvolvendo a matriz adjunta de XZAsI − e multiplicando esta pelo vector CZ e bZ fica-se com:
3,911,117,72 ).)(().(. basassbAsIadjC ZXZz −−=− .
(3.9)
(3.10)
(3.11)
(3.12)
(3.13)
(3.14)
26
Calculando o determinante da matriz XZAsI − , temos por fim, a função de transferência do dirigível,
para a variável de estado z:
)())()((
).)((
)det(
).(.)(
9,9
3,9
11,119,97,73
3,911,117,72
ass
b
asasass
basass
AsI
bAsIadjCsG
XZ
ZXZzZ −
=−−−
−−=
−−
= .
3.1.3 – Função de Transferência do Subsistema de Direcção
Escrevendo de uma forma genérica, para o Subsistema de Direcção, a matriz DAsI − e o vector bD,
para efeitos do cálculo da função de transferência, relativa ao movimento circular uniformemente
acelerado do dirigível, em torno do eixo dos zz, temos:
−−−
−−
−−
=−
12,12
10,104,10
8,8
00000
0000
00000
10000
01000
00100
as
asa
as
s
s
s
AsI D,
[ ]Τ= 2,12,0,0,0,0,0 bbD .
Desenvolvendo a matriz adjunta de DAsI − e multiplicando esta pelo vector Cψ e bψ fica-se com:
2,1210,108,82 ).)(().(. basassbAsIadjC D −−=− ψψ .
Calculando o determinante da matriz DAsI − temos por fim a função de transferência do dirigível
para a variável de estado ψ:
)())()((
).)((
)det(
).(.)(
12,12
2,12
12,1210,108,83
2,1210,108,82
ass
b
asasass
basass
AsI
bAsIadjCsG
D
DDD −
=−−−
−−=
−−
= ψ .
Note-se que as funções de transferência obtidas para os três graus de liberdade do dirigível sujeitos a
actuação são sistemas de segundo grau e são compostos por um integrador puro, isto é, possuem
um dos pólos em zero.
(3.15)
(3.16)
(3.17)
(3.18)
(3.19)
27
3.2 – Determinação dos Parâmetros de GX(s) e GD(s)
3.2.1 – Determinação Manual
Para a determinação dos ganhos e dos pólos das funções de transferência que modelam o
comportamento do dirigível no plano XY, foram realizadas várias experiências de identificação no
dirigível Passarola, na sua forma de sistema final para controlo, ou seja, com o sistema autónomo
desenvolvido já a funcionar a bordo.
As experiências realizadas foram divididas nos dois subsistemas em estudo. Para tal, com o robô em
repouso, foi aplicado um escalão na respectiva entrada de cada subsistema correspondente a uma
variação brusca no valor do PWM de alimentação dos motores no instante t = 0s, de valor equivalente
a um escalão de força com amplitude aproximada a 2N, em ambos os casos, mas no sentido
negativo no caso do Subsistema de Direcção. Para cada caso, foi realizada a captura em vídeo da
respectiva resposta apresentada pelo robô (ver Anexo A), tendo-se analisado posteriormente os
dados recolhidos com vista à medição das sucessivas posições lineares e angulares do movimento
apresentado, obtendo-se por fim os dados, representados de forma esclarecedora nos gráficos da
Figura 3.1:
Figura 3.1 – Representação gráfica do comportamento do dirigível Passarola após aplicação de um escalão no
ciclo de trabalho (duty cycle) do sinal PWM (f = 48Hz) de estímulo dos actuadores:
a) Estimulo dos motores dianteiros com um sinal PWM com duty cycle = 7,0% + 1,0% (com α = 0);
b) Estimulo do motor traseiro com um sinal PWM com duty cycle = 7,3% + 1,7% (valor de repouso + escalão).
O sistema GZ(s) não será considerado neste trabalho, pois para efeitos deste projecto foi considerado
que o dirigível iria operar indiscriminadamente a uma altitude fixa, sem consequências para os
objectivos finais do controlo, pois o controlador deste sistema poderá ser implementado
posteriormente de forma independente. Esta opção foi tomada pelo facto de não existir nenhum
altímetro a bordo do dirigível, mas principalmente por não se conseguir efectuar essa medição por
incompatibilidade com as dimensões físicas do espaço de trabalho, nomeadamente a nível de altura
do pavilhão onde se executam as experiências com o Passarola.
a) b)
Posição X versus Tempo Posição ψ versus Tempo
28
Conhecendo-se a resposta dos dois subsistemas do robô a um escalão prosseguiu-se com a
determinação dos parâmetros de GX(S) e GD(S) através do ajuste manual dos valores do ganho (b7,1
ou b12,2) e do pólo (a7,7 ou a12,12), com base na comparação visual entre as respostas dos sistemas
simulados em simulink e as respectivas respostas reais, numa tentativa de as tornar coincidentes. Por
fim, reduzido visualmente ao mínimo o erro entre as duas respostas, foram obtidas as funções de
transferência finais (3.20), com os valores dos ganhos e dos pólo sintetizados na Tabela 3.1. As
respectivas comparações entre as respostas dos sistemas reais e os modelos encontram-se
representadas na Figura 3.2.
))1.0((
075.0)(
−−=
sssGX
; ))3.0((
119.0)(
−−−=ss
sGD .
Tabela 3.1 – Valores dos parâmetros determinados para os subsistemas do robô Passarola.
Valor do ganho Valor do pólo b7,1 0.075 ---
Subsistema XZ – parte X variável de estado x a7,7 --- -0.1
b12,2 -0.119 --- Subsistema Direcção variável de estado ψψψψ
a12,12 --- -0.3
Figura 3.2 – Gráficos comparativos entre as respostas dos sistemas simulados e as respostas reais:
a) Subsistema XZ – Parte X
b) Subsistema de Direcção
Torna-se necessário esclarecer que as grandezas das leis de controlo devem ser traduzidas nas
grandezas eléctricas correspondentes, para o correcto funcionamento do controlo no sistema real.
Deste modo, para a realização das experiências de identificação já descritas, foi necessária a
conversão dos sinais de controlo em estudo, em unidades de força (Newton), para as unidades
eléctricas dos sinais PWM (Pulse Width Modulation) de alimentação dos motores. Assim, a partir de
[3], calculou-se qual a percentagem do ciclo de trabalho (duty cycle) do sinal PWM de cada actuador,
que produz a força de impulsão equivalente à força pretendida e programou-se o seu respectivo valor
no computador de bordo do Passarola, para a realização da identificação.
(3.20)
a) b)
Posição X versus Tempo Posição ψ versus Tempo
Resposta Real
Resposta Simulada
Resposta Real
Resposta Simulada
29
O valor do escalão programado no DSP, que representa a aplicação de uma força de 2N nos
sistemas, no caso do Subsistema XZ – Parte X, tem o valor de 10 unidades e, no caso do
Subsistema de Direcção, tem o valor de 17 unidades. Estes valores representam uma modificação no
ciclo de trabalho do referido sinal PWM, usando a quantificação de tempo de impulso do sinal PWM
em permilagem do período do sinal, em vez da quantificação mais usual, dada em percentagem do
período do sinal, por razões de simplificação da programação do DSP, tal como é esclarecido em [4].
Este aspecto do sistema de controlo denuncia um novo factor a ser tido em conta na calibração dos
controladores, pois na verdade, para que a saída dos controladores esteja em concordância com a
entrada do sistema real, os seus parâmetros deverão ser determinados com base nesses mesmos
aspectos do sistema. Por conseguinte, é agora necessário realizar a conversão dos sistemas
determinados, para que possam receber o novo tipo de entrada desejada em vez dos sinais de força,
em Newtons. A conversão é facilmente realizada mediante a multiplicação do sinal de entrada dos
sistemas pelo factor de conversão respectivo – permilagem do duty cycle do sinal PWM para
Newtons, utilizando-se de igual forma os sistemas determinados em (3.15). O valor do factor de
conversão, correspondente a cada sistema, é obtido pela divisão do escalão, em Newtons, utilizado
na identificação, pelo respectivo valor do escalão em permilagem, tal como demonstrado nos
sistemas da Figura 3.3, obtendo-se as respectivas respostas representadas na Figura 3.4, que
ilustram correctamente as experiências de identificação realizadas.
Figura 3.3 – Diagrama de blocos simulink de teste dos sistemas simulados, em unidades eléctricas:
a) Subsistema XZ – Parte X: escalão de entrada = 10‰, conversor de entrada = 2/10 = 1/5 (N.s-1)
b) Subsistema de Direcção: escalão de entrada = 17‰, conversor de entrada = -2/17 = -1/8,5 (N.s-1)
Figura 3.4 – Respostas dos sistemas simulados, do robô Passarola, em unidades eléctricas:
a) Subsistema XZ – Parte X; b) Subsistema de Direcção
a) b)
a) b)
Posição linear versus Tempo Posição angular versus Tempo
30
3.2.2 – Determinação com a toolbox Ident, do MatLab
Como garantia dos resultados da secção anterior utilizou-se ainda a toolbox Ident do Matlab para
realizar a identificação dos dois subsistemas em estudo e comparar os resultados obtidos com os
sistemas agora determinados. Para tal, forneceu-se ao Ident a respectiva resposta ao escalão de
cada subsistema (escalão de entrada de 2N e sinais de saída da Figura 3.1), amostrada à frequência
de amostragem do controlador determinada no Capítulo 6 – fa = 0.02s, realizando-se em seguida
vários testes de identificação paramétrica do conjunto entrada/saída fornecidos. O modelo utilizado
neste processo corresponde ao modelo paramétrico ARX, dado pelo sistema G(q):
)(
)(.)(
qA
qBqqG nk−= ;
onde A e B são polinómios, representados no operador de atraso -1q , dados por:
nanaqaqaqA −− +++= ......1)( 1
1 ,
1121 ......)( +−− +++= nb
nbqbqbbqB ,
onde na e nb representam a ordem dos respectivos polinómios e, nk é o valor do atraso da entrada
para a saída. Escrevendo o modelo na sua forma mais comum ficamos com:
)()()()()( tenktuqBtyqA +−= ,
onde e(t) é ruído branco.
Em conclusão, para cada um dos subsistemas, foi obtido um modelo paramétrico ARX com na=2,
nb=1 e nk=1, seguidamente traduzidos nas funções de transferência de segunda ordem
correspondentes, que confirmam os sistemas já determinados manualmente, conferindo maior
certeza à solução encontrada.
A função de transferência obtida para o Subsistema XZ – Parte X é dada por:
)09.0(
071.0
)0855.0)(003986.0(
)100(00070847.0)(
+≈
+++=
ssss
ssGX .
A função de transferência obtida para o Subsistema de Direcção é dada por:
)26.0(
109.0
)2616.0)(0001704.0(
)1.100(0010898.0)(
+−≈
+++−
=ssss
ssGD .
(3.21)
(3.22)
(3.23)
(3.24)
(3.25)
31
Em seguida, encontram-se representados dois gráficos comparativos entre as respostas ao escalão
dos sistemas identificados e as respostas reais obtidas pelos sistemas originais. Tal como no sistema
real, o Subsistema XZ – Parte X foi sujeito a um escalão de 2N, enquanto que o Subsistema de
Direcção foi sujeito a um escalão de -2N (por questões de sentidos do respectivo referencial b). Aqui
é possível confirmar a precisão dos modelos identificados, com os modelos reais verificando-se que
estão ambos correctos.
Figura 3.5 – Comparação entre as respostas dos sistemas identificados e a resposta real, para os dois
subsistemas em estudo.
Posição linear versus Tempo Posição angular versus Tempo
32
33
4 Estudo do Controlador
4.1 – Esquema de Controlo do Robô
Analisando o sistema autónomo de controlo do dirigível Passarola, desenvolvido neste projecto em
conjunto com [4], é sabido que o sinal de actuação que dirige os motores/hélices do dirigível é
produzido pela unidade de processamento a bordo do dirigível, onde se encontra implementado o
controlador do sistema. De forma a encerrar a malha de controlo com a realimentação dos dados de
saída do sistema é também sabido que se utilizam os dados de uma câmara de vídeo, também ela a
bordo do dirigível, que capta a atitude deste em relação ao mundo. Através do correcto
processamento de imagem, realizado na unidade de processamento, é calculado o vector de erro do
sistema, actuando-se em seguida o controlador, para que este anule o vector de erro pelos seus
próprios meios. Desta forma se permite que o dirigível possa percorrer uma trajectória de seguimento,
de um veículo ou de linhas marcadas no solo, usando os seus próprios “olhos”, pensando com o seu
“cérebro” e agindo com os seus “membros”.
Teoricamente, pode se afirmar que o esquema de controlo implementado tem a forma da Figura 4.1:
Figura 4.1 – Esquema teórico de controlo do dirigível Passarola.
onde C(s) é o controlador, G(s) é o sistema a controlar e H(s) é o sensor do sistema – câmara de
vídeo. Sendo o controlo do dirigível efectuado através da imagem da câmara, o objectivo aqui
proposto é detectar a posição do objecto de seguimento na imagem de vídeo e com essa informação
indicar ao controlador qual o erro de posição em pixels, no referencial da imagem, entre a referência r
e o centro de massa, ou ponto de contorno do objecto (ver Secção 6.3.1). Por conseguinte, obriga-se
aqui a que o dirigível acompanhe o movimento do objecto ou a linha enquanto procura posicionar a
localização medida do objecto em seguimento sobre a referencia r, isto é, tenta reduzir o erro na
imagem para zero (ver Secção 4.3.1 e Secção 4.4.1). A entrada p é uma perturbação no sistema de
controlo do robô e simula a mudança de atitude do objecto de seguimento em relação ao mundo,
34
provocando uma deslocação extraordinária na posição do objecto na imagem de vídeo do robô, que o
controlador deverá compensar.
O movimento do robô Passarola é descrito por três subsistemas, já analisados no Capítulo 3. Pelas
razões já apresentadas e agora reforçadas pela compreensão do sistema de controlo do dirigível, não
será estudado o Subsistema XZ – Parte Z neste projecto, restringindo-nos apenas ao controlo do
dirigível no plano paralelo ao solo. Os dois subsistemas resultantes (Subsistema XZ – Parte X e
Subsistema de Direcção) são independentes entre si, assumindo o desacoplamento entre sistemas
considerado no Capítulo 2, e são os responsáveis pela descrição do movimento não-holonómico do
dirigível. Deste modo, para a realização do seu controlo através da imagem do solo, foi considerada a
estratégia de associar a cada um dos dois subsistemas em análise, o grau de liberdade da imagem
mais conveniente para a sua representação. Assim, ao Subsistema XZ – Parte X apenas diz respeito
as alterações no eixo dos xx da imagem, isto é, o erro de posição da trajectória em x, e ao
Subsistema de Direcção, interessa todo o restante espaço da imagem, ou seja, o erro de orientação
da trajectória e a sua distância no eixo dos yy. Daqui se pode concluir que deverão ser dois, os
sistemas de controlo do tipo do sistema representado na Figura 4.1, cada um com o seu controlador,
coexistindo e operando de forma independente.
4.2 – Definição do Controlador
Deriva-se de seguida a lei de controlo que permite ao dirigível seguir uma trajectória, proveniente das
linhas captadas do chão, ou de uma trajectória resultante do movimento do robô ATRVJr. Assuma-se
a dinâmica do dirigível dada por:
unM =+ ),()( ηηηη &&& ,
com ],[ Ω= Vη& e ],[ Ω= &&&& Vη , e seja a lei de controlo (Inverse Dynamics Control) dada por:
),()( ηηη &nyMu += ,
então conclui-se que:
y=η&& .
Escolhendo
rKKy dp +−−= ηη & ,
onde, KP e KD são as matrizes de ganhos do controlador PD e r é a referencia. De (4.3) e (4.4) vem:
rKK PD =++ ηηη &&& .
Se a referencia r for dada por:
(4.3)
(4.2)
(4.1)
(4.4)
(4.5)
35
dPdDd KKr ηηη ++= &&& ,
ficamos com:
0~~~ =++ ηηη PD KK &&& .
Tendo em conta (4.3), pode-se por fim, escrever a equação final de controlo (4.8):
),()~~( ηηηηη &&&& nKKKMu dDP +++= ,
onde ηηη −= D~ , uma vez que o controlo do dirigível é alimentado por processamento de imagem,
vindo da câmara de vídeo de bordo (image servoing) e a matriz K representa a conversão de
unidades de força para os sinais eléctricos digitais de controlo dos actuadores do robô.
A estabilidade do controlador é necessária para o seu bom funcionamento e será garantida se KD e
KP forem escolhidos tal que os seus pólos estejam no Semi-plano Complexo Esquerdo (SPCE). Para
a aplicação da lei de controlo é necessário conhecer os valores de dη&& , dη& e dη , e medir em tempo
real o vector η e η& .
O inconveniente de utilização da lei de controlo, tal como é apresentada, prende-se com a dificuldade
em conhecer a referência dη&& e em determinar com precisão os parâmetros não lineares reais da
equação da dinâmica ),( ηη &n . Desta forma se se assumir apenas que:
yMu )(η= ,
em vez da expressão (4.7) ficamos com:
dPD KK ηυηηη &&&&& −−=++−~~ ,
onde ),(1 ηηυ &nM −= . Considerando agora que υ e dη&& são perturbações do sistema, com as quais
o controlador tem que conviver e deverá corrigir, surge a equação reduzida do controlador, na forma
matricial reduzida:
)~~( 16661666666313 xxDxxPxxx KKMku ηη &+= ,
computacionalmente mais leve para implementação em hardware e de determinação mais simples,
embora se tenha aumentado a dificuldade em encontrar um controlador robusto às perturbações
relativas ao sistema real. A solução para determinar o melhor controlador, passa por determinar as
matrizes de ganho KP e KD, com maior cuidado, tal como é descrito na Secção 4.3.3 e na Secção
4.4.3. Estas matrizes de ganhos podem ser matrizes diagonais, pesando apenas o valor da variável
de controlo em causa, ou ainda, ter em conta o valor de outras variáveis de estado para o controlo da
variável de estado em questão. Em resumo, pode constatar-se para este controlador que η
(4.6)
(4.7)
(4.8)
(4.11)
(4.10)
(4.9)
36
corresponde à variável de controlo do sistema, η~ é a variável controlada na imagem da câmara e
Dη é a referência de seguimento, definida em pixels na referida imagem da câmara.
4.2.1 – Controlador PD digital
O controlador PD digital pensado para o controlo do dirigível Passarola foi inicialmente obtido a partir
da função de transferência )()()( sEsUsC = do controlador PD, resultante da transformada de
Laplace da lei de controlo no domínio do tempo, originando:
( )sKKsC DP .)( += .
No entanto, uma derivada pura não pode, por questões de causalidade, nem deve, por questões de
amplificação do ruído, ser implementada. Portanto, aproximou-se o termo D da expressão à função
de transferência (4.13) que, ao acrescentar um termo passa-baixo adicional, introduz um pólo
ajustável no bloco derivativo, tornando o controlador mais realista (números de pólos igual ao número
de zeros):
NsK
sKsK
D
DD +
≈1
,
Esta função aproxima bem a derivada a baixas frequências mas limita o ganho a N nas altas-
frequências. Os valores típicos de N estão no intervalo [3, 20], de acordo com [16].
Daqui resulta a função de transferência C(s) final:
)(
)(..)(...
1)(
c
cc
D
DPD
D
D
DPD
D
DP ps
zsK
K
Ns
KKNK
NKs
K
KKNKsC
N
sKsK
KsC++
=
+
++
+=⇔⇔+
+= .
Realizando a discretização de C(s) pelo método de Tustin e, colocando C(z) na forma de equação de
diferenças, recorrendo à transformada inversa de Z, obteve-se a expressão da saída do controlador
em tempo discreto kh, em que h é o período de amostragem:
)(..)(.)(.)( hkhezKkheKhkhypkhy cccc −′′−′+−′= ,
a qual se implementou e testou no sistema de simulação, com o modelo USARSim do Passarola.
Durante a afinação dos parâmetros da equação no sistema de simulação, foi verificado que este
controlador mantinha um elevado erro do ganho estático, em ambos os sistemas do dirigível,
revelando um desempenho insatisfatório durante o seguimento de trajectórias. Este comportamento
está directamente relacionado com o facto do sistema de controlo ser do tipo 1, pois apenas possui
(4.12)
(4.13)
(4.14)
(4.15)
37
um pólo na origem, em malha aberta, tendo um erro estático constante para referências em
velocidade. Por este facto procurou-se ainda testar modelos alternativos do PD, ou ainda
reconsiderar um PID para eliminação do referido erro. Por conseguinte, encontrou-se uma solução
mais eficiente para o controlador, num modelo alternativo do controlador PD, alcançado a partir de
um controlador PID digital retirado de [17]. Este modelo, deduzido por emulação do seu equivalente
continuo, tem algumas melhorias a nível de aspectos práticos, tais como a separação do termo
derivativo do sinal de erro, para evitar picos na actuação devido a variações bruscas da referência e
redução da contribuição da referência no termo proporcional, de onde surge a nova função de
transferência:
+++−= )(
1)(
1)()()( sY
NsT
sTsE
sTsYsbUKsU
D
D
ic ,
com )()()( sYsUsE c −= , onde )(sU c é a referência e )(sY é a saída, K é o ganho proporcional,
iT é o tempo de integração e dT é o tempo derivativo.
O controlador PID discreto é obtido utilizando uma regra ad-hoc em que os termos proporcionais,
integrais e derivativos são obtidos de forma simples e independente, pelas equações:
Proporcional: ))()(()( khykhbuKkhP c −=
Integral: )()()( hkheT
KhhkhIkhI
i
−+−=
Derivativo: ( ))()()()( hkhykhyNhT
NKThkhD
NhT
TkhD
d
d
d
d −−+
−−+
=
Adoptando a equação do termo proporcional e do termo derivativo é possível construir o diagrama de
bloco simulink do controlador PD, utilizado para o controlo do dirigível Passarola, e afinar os seus
parâmetros por meio da construção de sistemas de controlo teóricos do robô (ver Secções 4.3.3 e
4.4.3) – Figura 4.2:
Figura 4.2 – Diagrama de blocos do controlador PD obtido para o controlo do dirigível Passarola.
P
D
(4.16)
(4.17)
38
4.3 – Controlo 1: Seguimento do ATRVJr
Pretende-se agora, apresentar a investigação desenvolvida no controlo do dirigível Passarola para o
seguimento do robô terrestre de direcção diferencial (diferencial drive) ATRVJr, no âmbito do projecto
RESCUE [30].
4.3.1 – Definição do Erro
A imagem captada pela câmara de vídeo do Passarola, único sensor a bordo, encerra a malha de
controlo do presente sistema. Defina-se a resolução desta imagem como sendo yx nPixelsnPixels × .
Tomando o centro da imagem )0,0(),( =yx CC como a referência ),( imgd
imgd
img yxr = do sistema, e
como sua saída ),( imgimgimg yxo = a posição em pixels do centro de massa ),( yx CMCM da mancha
vermelha (robô ATRVJr), detectada em cada imagem no sistema de coordenadas do dirigível b,
então teremos um vector de erro:
)~,~( imgimg yxE = ,
diferente de zero sempre que o centro de massa do ATRVJr ( imgo ) não se encontre no centro da
imagem ( imgr ), com imgimgd
img xxx −=~ e imgimgd
img yyy −=~ (Figura 4.3).
Figura 4.3 – Exemplo do processamento de imagem realizado no controlo do seguimento do ATRVJr:
a) Imagem original obtida no simulador USARSim;
b) Imagem processada com representação dos vectores de erro do seguimento (vector a verde e vector a azul).
Inicialmente, como primeira abordagem para o controlo do sistema, assumiu-se directamente que a
magnitude desse vector seria o valor do erro para o Subsistema XZ – Parte X, e que o ângulo
formado entre o eixo dos xx (eixo vertical da imagem) e o vector de erro E, seria o valor de erro do
Subsistema de Direcção. Mas, rapidamente se compreendeu que estes erros não funcionavam
correctamente pois o sistema revelou-se instável.
Entendeu-se então que, para o Subsistema XZ – Parte X, o erro teria que ser dado por imgx~ (vector
de cor verde na Figura 4.3 b), pois é apenas sobre o eixo dos xx que este subsistema exerce
actuação, não existindo razão para considerar aqui a dimensão y do vector de erro:
(4.18)
a) b)
39
imgimgimgimgd
img xxxxx −=−=−= 0~ , [ ]2;2 xx nPixelsnPixels−∈ .
Também para o Subsistema de Direcção foi necessário modificar o cálculo do erro, uma vez que
junto à referência, tal como o erro é dado, não é possível estabilizar o sistema pois a referencia é um
ponto de sela4. Para a resolução deste problema e aperfeiçoamento do sistema de controlo, concluiu-
se que seria útil avaliar aqui dois tipos de erro distintos. Por um lado, foi novamente escolhido o erro
de orientação do dirigível em relação ao robô terrestre imgψ~ , através do cálculo do ângulo formado
entre o eixo dos xx e o vector de erro, sendo agora considerado um novo vector de erro Eψ. Este
vector passa agora a ter origem vários pixels abaixo da referência (vector de cor azul na Figura 4.3
b), transformando assim a referência num ponto estável para o sistema:
ψψ EPIimg −= 2~ , [ ]PIPI ;−∈ .
Por outro lado, revelou-se importante, a introdução do termo do erro que indica a distância a que o
objecto se encontra da referência, no eixo dos yy – imgy~ , para complementar a informação do
controlador e auxiliar este na decisão da rapidez de resposta, em cada situação:
imgimgimgimgd
img yyyyy −=−=−= 0~ , [ ]2;2 yy nPixelsnPixels−∈ .
Desta forma o dirigível irá virar suavemente quando o ATRVJr estiver, perto da referência ( imgr ) e
com Eψ reduzido, e será mais rápido a virar quando o ATRVJr estiver longe da referência e com Eψ
perto de ±PI/2.
4.3.2 – Aplicação da Lei de Controlo
Com base na lei de controlo (4.11) e tendo em consideração a Secção 4.3.1, é possível escrever:
+
=
ψθφ
ψθφ
&
&
&
&
&
&
~
~
~~
~
~
0000
000000
000000
00000
000000
00000
~
~
~~
~
~
0000
000000
000000
00000
000000
00000
6622
33
11
6662
33
11
6663
z
y
x
KK
K
K
z
y
x
KK
K
K
MK
Z
F
X
DD
D
D
PP
P
P
xxMT
,
onde foi omitindo o índice superior “img” nas variáveis de estado, relativo à conversão da lei de
controlo para o referencial da câmara, por questões de simplificação da notação. Conhecendo a
matriz de inércia do sistema M e sabendo que K é a matriz dada pelo sistema real:
4 Devido a uma pequena oscilação na posição dos robôs o erro de orientação do dirigível pode passar de 0 a ±180º, o que impede a aeronave de estabilizar em posição angular sobre a referência.
(4.20)
(4.19)
(4.22)
(4.21)
40
+
+
+
=
ψψ &&
&
&
~~0
0
~0
~
~~0
0
~0
~
00000
00000
00000
00000
00000
00000
00000
00000
00000
6662
33
11
6662
33
11
33
26
11
DD
D
D
PP
P
P
zz
yy
xxMT
KyK
zK
xK
KyK
zK
xK
I
I
I
m
m
m
K
K
K
Z
F
X,
alcançam-se as expressões finais para o controlo do sistema:
( )( )
( )
+=+++=
+=
zKzKmKZ
KyKKyKIKF
xKxKmKX
DP
DDPPzzMT
DP
&
&&
&
~~
~~~~
~~
333333
6662666266
111111
ψψ .
Tendo-se já abordado e esclarecido o esquema de controlo em análise, e sendo já conhecidas as
equações dos controladores, falta agora ajustar os seus parâmetros para que se possa validar o
método de controlo estudado, em simulação.
4.3.3 – Ajuste dos Parâmetros dos Controladores
De modo a afinar os parâmetros correspondentes a cada um dos controladores em análise foi
desenhado em simulink um sistema de controlo, para cada subsistema do robô, que tenta simular o
sistema real envolvido no controlo do dirigível, na sua situação mais crítica (Figura 4.4). Este sistema
é baseado na captura e processamento da imagem, sobre a qual é realizado todo o estudo do
comportamento do dirigível Passarola.
Uma forma de realizar o ajuste dos parâmetros de cada um dos controladores PD seria com base no
estudo do root-locus do sistema em malha fechada, através da toolbox sisotool da ferramenta de
software Matlab, obtendo-se assim uma primeira aproximação dos valores de controlo desejados.
Mas, uma vez que o sistema real de controlo, sendo um pouco mais complexo que as malhas de
controlo mais gerais, já não permite a utilização desta ferramenta, optou-se por realizar a afinação
manual iterativa dos parâmetros K, Td e N dos controladores PD ad-hoc, pela visualização da
resposta ao escalão do sistema em malha fechada, com base no conhecimento dos pólos do sistema.
Esta calibração manual foi realizada nos sistemas teóricos simulink referidos, com base no princípio
do pior caso para que o controlador responda com a maior rapidez possível, mas de uma forma
suave. Isto é, quando o objecto a seguir se encontra na eminência de desaparecer do raio de visão
do dirigível (extremidades da imagem de vídeo), o controlador deverá permitir que os actuadores
respondam com as suas capacidades máximas, para que o robô volte a capturar o seu objecto de
seguimento rapidamente, produzindo no entanto movimentos suaves.
(4.23)
(4.24)
41
Sistema de controlo do Subsistema XZ – Parte X
No caso do Subsistema XZ – Parte X, com o sistema dirigível + ATRVJr em repouso, foi aplicada uma
perturbação na sua saída, através da aplicação de um escalão de 3m, correspondente a um salto da
posição do ATRVJr do centro para o topo da imagem. Desta forma, o sistema deixa de estar estável,
com um valor de erro igual a zero (por se encontrar posicionado na referência) para passar a ter um
erro imprevisto no eixo dos xx. Para a escolha do valor do escalão foi considerado que o dirigível se
encontrava a baixa altitude, de forma a simular o ambiente experimental real do Passarola,
assumindo-se o valor de 6m para o valor do alcance do campo de visão da câmara de vídeo. Assim,
para a geração do erro máximo admitido para o sistema XZ – Parte X, foi escolhido para o valor do
escalão o valor da distância que simula a deslocação brusca do ATRVJr do centro da imagem para a
sua extremidade superior, correspondente a metade do alcance do campo de visão (3m), efectuando-
se a conversão de metros para pixels através do ganho Kx5. Perante a reprodução desta situação no
presente sistema Simulink (Figura 4.4), restou ajustar-se iterativamente os parâmetros deste
controlador, com vista à reposição imediata da estabilidade do dirigível em torno da referência,
obtendo-se a resposta representada no gráfico da Figura 4.5.
Figura 4.4 – Diagrama de blocos do Subsistema XZ – Parte X, desenhado em simulink.
No modelo Simulink do controlo deste subsistema foi incluído um bloco de saturação do sinal que
simula a saturação física real dos actuadores do dirigível, limitando o sinal de controlo no intervalo
[-16; 16]‰. Uma outra restrição imposta pelos actuadores é o facto de só aceitarem variações
mínimas de 1‰ no ciclo de trabalho do seu sinal PWM de alimentação, simulando-se essa limitação
no sistema através da inclusão de um bloco quantizador com níveis de 1 unidade no sinal de
comando. O valor de conversão Kx de metros para pixels, que simula a imagem da câmara, tem o
valor multiplicativo de 40 pixels/m, tendo em conta que o campo de visão (FOV) da câmara, durante
os testes com o robô real, possuía um alcance de 6m, e a imagem processada é devolvida com uma
dimensão segundo x de 288pixels.
5 Assume-se, por simplificação de implementação e computação, que a imagem obtida pela câmara está calibrada, sendo linear a relação entre os pixels da imagem e as distâncias correspondentes, no mundo real. Na prática, não é importante que se conheça com precisão a posição do objecto de seguimento no mundo, uma vez que, neste projecto não será utilizada homografia. A calibração da posição e orientação do referencial da câmara em relação ao referencial do dirigível também é desprezada, assumindo-se que a câmara se encontra alinhada verticalmente com o centro de gravidade do dirigível e o plano de imagem é paralelo ao plano do solo, orientado horizontalmente com os eixos x e y do dirigível.
k=1/5
42
Figura 4.5 – Gráficos das respostas da simulação do sistema da Figura 4.4.
Afinado manualmente o controlo do Subsistema através de um processo iterativo de ajuste e
visualização dos sinais de controlo, os valores dos parâmetros obtidos para este controlador PD são
os valores representados na Tabela 4.1:
Tabela 4.1 – Valores dos parâmetros do controlador do Subsistema XZ – Parte X.
K Td N B h
Controlador PD_X 0.1 4 10 1 0.02
Sistema de controlo do Subsistema de Direcção
No caso do controlo do Subsistema de Direcção, com o sistema em repouso na posição zero (relativo
ao ATRVJr em repouso no centro da imagem), foi aplicada uma perturbação na saída do sistema, do
tipo escalão, com o valor -1,5rad, significando uma variação da posição do ATRVJr, do centro da
imagem para o seu lado esquerdo (Figura 4.6). Tendo em atenção que neste sistema, assim
apresentado, não está envolvida nenhuma distância, é clara a independência da localização do
ATRVJr ao longo do eixo dos yy, na imagem. Este é o motivo pelo qual foi conjugada a acção de dois
controladores para este sistema: controlo em ângulo + controlo em distância lateral, pois é esperado
do dirigível, no seguimento de um corpo, que possua um atitude adequada perante a situação de
estar longe da referencia ou perto da mesma, embora com igual ângulo de desvio. Desta forma,
sabendo que a situação critica para este sistema acontece quando o objecto de seguimento se
encontra num extremo lateral da imagem, foi imposto no presente sistema que a perturbação aplicada
corresponderia a essa situação.
Para o ajuste dos parâmetros dos controladores foi testada individualmente cada uma das malhas de
controlo e afinados iterativamente cada um dos parâmetros dos controladores PD, com base na
evolução da resposta do sistema, com o entendimento de que cada controlador deve ter uma
importância relativa para o controlo global do subsistema. O sistema desenvolvido em Simulink para a
Output Output 1
43
simulação do subsistema encontra-se representado na Figura 4.6, estando a sua resposta final,
obtida após afinação do controlador PD, representada na Figura 4.7.
Figura 4.6 – Diagrama de blocos do Subsistema de Direcção, desenhado em simulink.
Figura 4.7 – Gráficos das respostas da simulação do sistema da Figura 4.6.
No sistema de controlo da Figura 4.6 é possível encontrar duas malhas de controlo, correspondentes
ao controlo de cada uma das variáveis de estado em análise. É repetida a utilização dos blocos de
saturação e o bloco de quantização pelas mesmas razões que são utilizados no sistema da Figura
4.4 e é utilizado como conversor rad para pixels Ky o valor 350, que representa metade do valor dos
pixels da imagem segundo y, como é referido em [4]. Afinado o controlo deste Subsistema, os valores
dos parâmetros obtidos para os controladores PD são os valores representados na Tabela 4.2:
Tabela 4.2 – Valores dos parâmetros dos controladores do Subsistema de Direcção.
K Td N b H
Controlador PD_Yaw 3 3 10 1 0.02
Controlador PD_Y 0.02 3 10 1 0.02
Output Output 1
44
4.4 – Controlo 2: Seguimento de Linhas
Pretende-se agora, apresentar a investigação realizada no controlo do dirigível Passarola no
seguimento de trajectórias marcadas no solo através de linhas.
4.4.1 – Definição do Erro
Utilizando o «algoritmo de Sobel» para obtenção de uma imagem de contornos e aplicado um
segundo algoritmo para detecção de rectas – «algoritmo de Hough», foi possível indicar ao
controlador qual a atitude do dirigível em relação à trajectória, fornecendo a posição e orientação que
o dirigível deve seguir.
Para o correcto reconhecimento da linha que se deseja seguir, elaborou-se uma estratégia de
seguimento que filtra apenas as rectas de interesse na imagem, seleccionando como saída do
sistema apenas a recta do conjunto que tem menor erro em relação ao eixo vertical (eixo dos xx),
tendo ainda em consideração a saída do sistema na iteração anterior. Essa estratégia é baseada no
cruzamento de cada uma das rectas detectadas na imagem com uma semicircunferência de raio R,
situada no hemisfério superior da imagem, com centro no centro da imagem, onde a
semicircunferência examinada significa o raio de busca de trajectórias para seguimento. Desta forma,
obtidas as rectas no raio de alcance, é escolhida para linha de seguimento a linha cujo ponto de
intersecção com o raio de busca se encontre mais próximo da vertical da imagem, isto é, esteja mais
próxima do alinhamento com a direcção de deslocação do dirigível (Figura 4.8).
Figura 4.8 – Exemplo do processamento de imagem realizado no controlo do seguimento de linhas:
a) Imagem original obtida no simulador USARSim;
b) Imagem processada: a vermelho – o vector de erro de orientação; a azul – o raio de busca de trajectórias.
Finalmente, para essa linha é calculado o erro de orientação imgψ~ entre o vector de erro ψE , que
une o centro da circunferência ao ponto de intersecção da linha escolhida, e o eixo vertical (eixo dos
xx), de onde resulta:
ψψ EPIimg −= 2/~ , [ ]2;2 PIPI−∈ . (4.25)
a) b)
45
Em relação à velocidade de deslocação do dirigível, optou-se por se estabelecer uma velocidade
constante de valor intermédio, uma vez que neste estudo não existe um objectivo temporal manifesto
a cumprir durante o seguimento da trajectória. De modo a praticar no dirigível o controlo da
velocidade de seguimento, foi instituída uma relação simétrica entre o módulo do erro de orientação
| imgψ~ | e a velocidade de deslocação do mesmo, fazendo com que o robô abrande em situações de
desorientação na trajectória, nomeadamente em curvas.
4.4.2 – Aplicação da Lei de Controlo
Com base na lei de controlo (4.11) e tendo em consideração a Secção 4.4.1, é possível escrever:
+
=
ψθφ
ψθφ
&
&
&
&
&
&
~
~
~~
~
~
00000
000000
000000
00000
000000
000000
~
~
~~
~
~
00000
000000
000000
00000
000000
00000
66
33
66
33
16
6663
z
y
x
K
Kz
y
x
K
K
K
MK
Z
F
X
D
D
P
P
P
xxMT
,
onde foi omitindo o índice superior “img” nas variáveis de estado, relativo à conversão da lei de
controlo para o referencial da câmara do dirigível, por questões de simplificação da notação.
Conhecendo a matriz de inércia do sistema M, e sabendo que K é a matriz dada pelo sistema real:
+
=
ψψ
ψ
&
&
~0
0
~0
0
~0
0
~0
~
00000
00000
00000
00000
00000
00000
00000
00000
00000
66
33
62
33
16
33
26
11
D
D
P
P
P
zz
yy
xxMT
K
zK
K
zK
K
I
I
I
m
m
m
K
K
K
Z
F
X,
alcançam-se as expressões finais para o controlo do sistema:
( )( )
( )
+=+=
=
zKzKmKZ
KKIKF
KmKX
DP
DPzzMT
P
&
&
~~
~~
~
333333
666666
1611
ψψψ
Note-se que a equação de controlo do Subsistema XZ – Parte X, é um controlador simples do tipo
Proporcional, cuja retroacção é a variável de estado ψ, pois para este sistema de controlo apenas se
(4.27)
(4.28)
(4.26)
46
pretende realizar uma redução sustentada da velocidade em função do erro de orientação, não se
exigindo o seguimento de uma referencia de posição linear imgdx durante a trajectória.
Uma vez modificado o modelo de controlo anteriormente adoptado para este subsistema, da forma
agora descrita, pode então reescrever-se a equação de controlo X de forma mais esclarecedora
conforme:
( )ψ~16111 Pcte KmKXX −= ,
onde cteX1 é uma força constante, de valor intermédio, que permite ao robô deslocar-se ao longo da
trajectória. Como 11K e m são constantes do sistema, a sua influência para o controlo pode ser
representada parcial ou totalmente pelo ganho do controlador P, pelo que não é fundamental que se
conheçam aqui os seus valores reais.
Conhecidas as equações dos controladores assim como os esquemas de controlo a implementar,
falta apenas ajustar os parâmetros dos controladores e validar os métodos de controlo estudado para
o dirigível Passarola, no simulador USARSim, com base no hardware de controlo real, e realizar por
último, após correcta implementação do sistema autónomo, o teste final no robô real.
4.4.3 – Ajuste de Parâmetros dos Controladores
Para este sistema de controlo, o ajuste dos parâmetros dos controladores de ambos os subsistemas
foi efectuado manualmente, de forma iterativa, com o modelo USARSim do Passarola, uma vez que o
modelo de controlo adoptado é simples e permite realizar o ajuste no simulador de uma forma
metódica.
Os parâmetros dos controladores digitais PD ajustados para este sistema de controlo são agora
apresentados na Tabela 4.3.
Tabela 4.3 – Valores dos parâmetros do controlador do Subsistema XZ – Parte X e do Subsistema de Direcção
K Td N b H
Controlador P_X 3 -- -- -- --
Controlador PD_Yaw 2 1,5 10 1 0.02
(4.29)
47
5 Simulação Teórica, em Matlab
5.1 – Ensaio Teórico do Controlo, em Simulink (Matlab)
Realizada a correcção do modelo da dinâmica do dirigível e reutilizando o simulador construído no
âmbito de [3], foi possível desenvolver e testar teoricamente o controlo do dirigível Passarola, em
Matlab, no seguimento de uma trajectória descrita pelo robô ATRVJr, tendo sido incluída a cinemática
dos actuadores e a sua função não-linear real, de modo a permitir uma maior proximidade com o
sistema real.
A intenção da criação deste simulador passou também pela vontade de construção de uma
plataforma simples e prática que estimule a progressão na investigação e desenvolvimento do
controlo de robôs do tipo dirigíveis, para sua posterior integração em equipas robóticas de busca e
salvamento [30].
Após a determinação teórica simplificada dos valores das matrizes A e b do modelo em espaço de
estados (2.43), realizada no Capítulo 2, tornou-se possível a obtenção da descrição do movimento
geral de um dirigível do tipo do dirigível Passarola, depois de ter sido aplicada uma determinada força
no sistema. Sabe-se no entanto que, o comportamento descrito por estas matrizes pode não
corresponder fielmente ao comportamento do dirigível Passarola, por não se conhecer com clareza
os vários elementos das matrizes da dinâmica envolvidas no cálculo do modelo. Mas, tendo aqui em
consideração a identificação de subsistemas já realizada no dirigível Passarola, apresentada no
Capítulo 3, é ainda possível realizar um ajuste em alguns dos valores mais importantes das matrizes
A e b deste modelo, proporcionando até mesmo, a desejada aproximação do modelo teórico ao
modelo real. Sejam então relembrados os valores da Tabela 3.1, obtida para os subsistemas do robô
Passarola:
Tabela 5.1 – Valores experimentais de alguns dos coeficientes das matrizes do modelo da dinâmica (2.43).
A7,7 -0.1
A12,12 -0.3
b7,1 0.075
b12,2 0.119
Tendo em conta a dedução teórica realizada para estes parâmetros, no Capítulo 2, é evidente a
identificação destes valores com os valores dos respectivos parâmetros das matrizes A e b. Deste
modo, assumem-se estes valores experimentais como sendo os valores reais dos coeficientes das
48
matrizes do modelo da dinâmica do Passarola (2.43), implementando-se este modelo no simulador
simulink através do bloco azul representado no diagrama de blocos da Figura 5.1.
Perante esta situação favorável e para que fique registado, pode-se ainda ajustar de forma oportuna
alguns dos valores das matrizes da dinâmica do dirigível, nomeadamente da matriz de amortecimento
aerodinâmico linear D e da matriz de inércia do sistema M, tendo para tal, o conhecimento das
expressões que originam os elementos da matriz A e b do modelo, dados por (2.43). O cálculo dos
coeficientes das matrizes e os respectivos resultados são apresentados no Anexo A.
Para desencadear o funcionamento deste simulador, em cada instante de tempo é gerada uma
referência tridimensional de posição (x,y,z) para seguimento, com base num controlador do tipo SBC
(Separation- Bearing Control), desenvolvido em [3], que estabelece regras de formação entre robôs,
levando o robô seguidor (dado pelo modelo cinemático do dirigível) a cumprir durante o seguimento,
as especificações de distância e orientação em relação ao robô líder (dado pelo modelo cinemático
do ATRVJr). A trajectória desejada, dada pelo bloco vermelho «gerador de referencia 3D» do
simulador (Figura 5.1), é descrita no referencial do mundo f, e como tal, a saída do sistema de
controlo também deverá ser dada no referencial f para que se possa efectuar o cálculo correcto do
erro de realimentação e ainda para fácil compreensão dos resultados da simulação, por parte do
utilizador. Estando o modelo da dinâmica do Passarola descrito no sistema de coordenadas paralelo
ao veículo, apresentado no Capítulo 2, a conversão da variável de estado ηp para o referencial do
mundo f é realizada com base na integração do vector η& dado por (2.30). A implementação desta
transformação de referenciais no sistema desenvolvido é representada pelo bloco amarelo R(yaw). O
controlador do modelo do robô, por sua vez realizado no sistema de coordenadas paralelo do veículo,
impõe novamente a reconversão do vector de erro η~ para o vector de erro pη&~ , dada pela expressão
(2.32), implementada na malha de controlo do sistema pelo bloco amarelo R’(yaw).
Finalizada a construção em Simulink do sistema de controlo, passou-se ao ensaio do controlo do
modelo teórico do dirigível Passarola, realizando a afinação manual dos parâmetros dos
controladores PD (blocos a verde), com base no comportamento do sinal de saída e do sinal de erro,
para cada uma das malhas de controlo de seguimento.
Seja agora comprovada a lei de controlo apresentada na Secção 4.2 com base nos resultados agora
apresentados, para a resposta do sistema a um escalão e para o seguimento de uma trajectória do
ATRVJr em forma de oito, onde se conclui que o sistema de controlo adoptado é válido e permite aos
robôs do tipo dirigíveis não-holonómicos o seguimento de referencias de uma forma simples e eficaz.
49
Figura 5.1 – Diagrama de blocos do simulador Simulink do sistema de controlo do Passarola.
50
5.2 – Resultados do Ensaio Teórico do Controlo
Em seguida apresentam-se os resultados das experiências realizadas com o simulador Simulink para
o ensaio teórico do controlo do dirigível Passarola, utilizando o modelo matemático da sua dinâmica.
Ensaio 1: Resposta a um escalão de 3 metros na posição do robô líder ATRVJr. Inicialmente ambos
os robôs se encontram em repouso, orientados a -PI/2rad e a altitude do robô Passarola é constante
em z = 10m. Em t = 0s é aplicado um escalão de velocidade no robô ATRVJr de valor V = 0,5m/s.
Figura 5.2 – a) Posição 3D da formação de robôs, no referencial do mundo; b) Posição e orientação da formação
em função do tempo; c) Erro temporal de posição e de orientação do Passarola em relação à referência.
Erro de Posição e Erro de Orientação versus tempo
a)
b)
c)
Posição e Orientação versus tempo
Gráfico Posição 3D (x,y,z)
51
Ensaio 2: Seguimento de uma trajectória em forma de 8, traçada pelo robô terrestre ATRVJr. Ambos
os robôs partem da situação de repouso, orientados a –PI/3rad. No plano do solo os robôs distam de
3m no eixo x, operando o dirigível a uma altitude constante em z = 10m. Para t > 0s, V = 0,5m/s.
Figura 5.3 – a) Posição 3D da formação de robôs; b) Posição e orientação da formação em função do tempo;
c) Erro temporal de posição e de orientação do Passarola em relação à referência.
Gráfico Posição 3D (x,y,z)
Erro de Posição e Erro de Orientação versus tempo
a)
b)
Posição e Orientação versus tempo
c)
52
Figura 5.4 – Valores temporais da força aplicada no modelo matemático do Passarola durante o seguimento.
Nos ensaios 1 e 2 agora apresentados, é possível confirmar a reprodução em simulação dos
movimentos mais gerais do robô líder ATRVJr, representados na Figura 5.2 a) e Figura 5.3 a). Aqui
também é possível observar, além da trajectória descrita pelo ATRVJr, a trajectória SBC de referência
para o dirigível e por fim, o movimento simulado para o dirigível Passarola. Verifica-se por
conseguinte que dada a referencia de seguimento SBC, obtida pelo sucessivo movimento do robô
líder, o sistema de controlo executa correctamente o comando de controlo do dirigível para o seu
seguimento, concluindo-se com uma trajectória de seguimento do robô líder suave.
Para a calibração manual dos controladores PD dos três subsistemas do dirigível foi fundamental a
observação cuidada dos vários gráficos agora apresentados, verificando-se para cada iteração qual a
alteração provocada nos respectivos sinais temporais de Erro e de Posição/Orientação. Pela
facilidade deste método é possível rapidamente acelerar ou atrasar a velocidade de resposta do
dirigível modificando-se os parâmetros do controlador, se assim se desejar, com os limites impostos
pela saturação.
Na Figura 5.2 c) e Figura 5.3 c) é possível verificar que o sistema consegue rapidamente estabilizar o
erro de seguimento mantendo-o constante num valor próximo de zero ou em torno de zero.
Verifica-se também a correcta utilização dos sinais de saída dos controladores no controlo do
sistema, uma vez que estes valores têm unidades de força (Newtons) e encontram-se dentro dos
limites de actuação, com correcta saturação física, compensação derivativa e comutação de sinal
algébrico consoante o sentido em que devem actuar em b.
Em conclusão, obtidos os controladores PD dos subsistemas do dirigível, demonstra-se através dos
ensaios agora apresentados que a lei de controlo implementada permite a obtenção de resultados
satisfatórios na navegação do dirigível Passarola em tarefas de seguimento de referencias, sendo
visível a actuação da dinâmica na simulação do seu modelo matemático, de onde se comprova a
correcta funcionalidade do esquema de controlo em estudo.
Força versus Tempo
53
5.3 – Verificação do Desempenho do Controlador
Nesta fase em que já foi afinado um controlador PD digital, baseado no sistema de controlo real, e
tendo sido já verificada a controlabilidade do dirigível Passarola, em simulação matemática, pode-se
realizar uma verificação final, onde se testam os controladores PD do sistema real no simulador
teórico Simulink.
De modo a proceder com a realização desta experiência foi necessária a adaptação da estrutura do
simulador da Figura 5.1 de modo a ensaiar o modelo de controlo real descrito na Secção 4.1,
ficando-se com o simulador da Figura 5.5.
Nesta modificação, adicionou-se na saída do modelo do Passarola, a transformação da câmara de
vídeo, com base na conversão linear metros para pixels, para os eixos horizontal e vertical da
imagem da câmara, permitindo assim que se obtenham os vectores de erro pretendidos para
controlo, no referencial da imagem. Esta transformação simplificada para o modelo da câmara,
assumida como aproximação do modelo real para baixas altitudes, determina o alcance do campo de
visão da imagem a partir da altitude a que se encontra o dirigível, assumindo-se que têm uma relação
linear e são de igual valor. Assim a relação matemática que realiza o cálculo do factor de conversão
metros para pixels (desprezando a inclinação da câmara) é simples e é dada por:
xemalcance
pixelsK x
x = ; yemalcance
pixelsK y
y = .
O modo de utilização da referência SBC para seguimento foi também modificado para que o novo
objectivo de controlo fosse correctamente aplicado. Assim a nova referência a cumprir corresponde à
estabilização do sistema no centro da imagem, tal como foi referido na Secção 4.3.1, sendo por isso a
nova referencia em (0,0), para o controlo no plano do solo. No caso do controlo em altitude, iniciou-se
o dirigível a uma altura de valor z0_blimp, e determinou-se essa altura como sendo o valor de
referência, pelo que o dirigível se manteve a uma altitude fixa durante todas as experiências. Sendo o
seguimento efectuado por seguimento visual colocou-se por conseguinte, a referência SBC como
perturbação de saída do sistema, conseguindo assim fornecer o vector de erro de posição e
orientação à transformação da câmara, simulando a imagem da câmara de vídeo.
Para o funcionamento do controlador PD duplo do Subsistema de Direcção foi também convertida a
saída do simulador (imagem da câmara) na malha de controlo do motor de cauda FMT, utilizando a
função trigonométrica atan2() para que o ângulo da posição medida do ATRVJr fosse correctamente
calculado de acordo com o referencial da imagem, tal como se sucede no processamento de imagem
do sistema real.
Realizados alguns ensaios com o sistema de controlo real foram obtidos os resultados apresentados
na próxima secção, onde se prova que o desempenho dos controladores PD digitais desenvolvidos
para o sistema real é concordante com o sistema teórico.
(4.1)
54
Figura 5.5 – Diagrama de blocos do simulador Simulink adaptado para teste do controlador real.
Tra
nsfo
rmaç
ão d
a câ
mar
a
55
5.4 – Resultados do Ensaio com os Controladores PD
Ensaio 1: Resposta a um escalão de 3 metros na posição do robô líder ATRVJr. Inicialmente ambos
os robôs se encontram em repouso, orientados a -PI/2rad e a altitude do robô Passarola é constante
em z = 6m. Em t = 0s é aplicada uma velocidade constante no robô ATRVJr de valor V = 0,5m/s.
Figura 5.6 – a) Posição 3D dos robôs, no referencial do mundo; b) Posição e orientação temporal dos robôs.
Figura 5.7 – a) Emulação da imagem da câmara com a referência de seguimento; b) Erro temporal de posição e
de orientação do Passarola em relação à referência, na imagem da câmara emulada no simulador.
Após este primeiro ensaio já é possível verificar que o controlador real do sistema não é tão suave na
sua resposta como o controlador do ensaio teórico calculado da Secção 5.2, pois este controlador foi
ajustado individualmente, através de um processo isolado do comportamento de cada subsistema do
dirigível, não tendo sido tomado em conta o comportamento global do robô ao contrario do que se fez
para o controlador do ensaio teórico. Por outro lado, o esquema de controlo também foi alterado para
que fosse aqui ensaiado o sistema real, sendo a posição do robô agora calculada e controlada no
referencial da imagem, pelo que surgem daqui modificações relevantes no controlo do sistema que
implicam alguma perda de capacidades deste controlador. No entanto, é possível observar que o
controlador realiza o seguimento correctamente, estabilizando num intervalo de tempo aceitável, pelo
que se pode concluir que o controlador construído cumpre os objectivos propostos.
Gráfico (x, y) da referência SBC Posição e Orientação versus tempo
Gráfico Posição 3D (x,y,z) Posição e Orientação versus tempo
a) b)
a) b)
56
Ensaio 2: Seguimento de uma trajectória em forma de oito, traçada pelo robô terrestre ATRVJr.
Ambos os robôs partem da situação de repouso, orientados a 0rad. No plano do solo os robôs distam
de 3m no eixo x, operando o dirigível a uma altitude constante em z = 10m. Para t > 0s, V = 0,5m/s.
Figura 5.8 – a) Posição 3D dos robôs, no referencial do mundo; b) Posição e orientação temporal dos robôs.
Figura 5.9 – a) Emulação da imagem da câmara com a referência de seguimento; b) Erro temporal de posição e
de orientação do Passarola em relação à referência, na imagem da câmara emulada no simulador.
Figura 5.10 – Valores temporais da força aplicada no modelo do Passarola durante o seguimento do 8.
Gráfico Posição 3D (x,y,z) Posição e Orientação versus tempo
Gráfico (x, y) da referência SBC Posição e Orientação versus tempo
a) b)
a) b)
Força gerada pelos controladores versus Tempo
57
Findo este último ensaio do sistema dá-se então por concluído o processo de avaliação do sistema
de controlo em desenvolvimento, podendo verificar-se claramente a competência deste método de
controlo para o controlo do dirigível Passarola em missões de seguimento de trajectórias.
Observando a Figura 5.8 com a representação do comportamento dos dois robôs da formação
verifica-se tal como no ensaio teórico que, o controlo de seguimento aqui simulado é bem sucedido,
cumprindo-se o seguimento do robô ATRVJr pelo dirigível de forma muito próxima à situação
desejada, realçando-se o aspecto de se estar a executar controlo por seguimento visual. Na Figura
5.9 a) pode ser observada uma imagem com a representação da sequência de movimentos do robô
ATRVJr, obtida no referencial da imagem para todo ensaio. Aqui é possível compreender o método
de controlo em estudo, notando-se o esforço do sistema em manter o robô líder no centro da imagem
(referência do sistema). Neste caso o erro de seguimento é dado em pixels através da imagem
captada e pode ser observado que também aqui o controlador limita o erro num intervalo próximo de
zero estabilizando-o assim que possível. O maior valor do erro de seguimento é verificado no inicio do
ensaio e deve-se à iniciação dos dois robôs com um afastamento de 1m no eixo x e 1m no eixo y. De
notar que esta perturbação é reduzida ao valor do erro estático ao fim de 25s, em ambas as
coordenadas, já durante o seguimento, pelo que se conclui que o sistema responde correctamente às
exigências de um ambiente real, onde pode ser pedido o inicio de um seguimento com quaisquer
condições iniciais.
Analisando por fim o gráfico da Figura 5.10, verifica-se que também para este controlador é garantido
o controlo do dirigível utilizando sinais de força legítimos. Estes sinais encontram-se dentro dos seus
limites físicos reais e realizam correctamente a compensação derivativa e a comutação de sinal
algébrico segundo b. Observa-se ainda que este sinal possui uma forma quadrada devido à anterior
quantização do sinal de controlo para níveis de actuação bem definidos. Esta quantização, tal como
referido no início do capítulo, deve-se às características de funcionamento do sistema físico e é
essencial a sua simulação em teoria para a correcta avaliação das verdadeiras habilidades do
controlador.
58
59
6 Sistema Autónomo de Controlo
6.1 – Sistema de Trabalho, em Laboratório
Para o estudo e desenvolvimento do sistema autónomo de controlo do robô Passarola, foi montado
um sistema de teste e simulação do processamento de imagem, do desempenho do controlador e do
funcionamento dos actuadores, que permite a validação de todo o sistema real de controlo antes da
sua aplicação no robô real (Figura 6.1). Com a construção deste sistema de trabalho tornou-se
possível analisar em laboratório, o comportamento do dirigível, através de simulação 3D realista,
utilizando o computador de bordo real (DSP). Desta forma, depois de calibrado o controlador através
dos testes em simulação, apenas se tem que desligar o DSP deste sistema de trabalho e ligá-lo ao
robô real para ficar todo o controlo a funcionar, sem necessidade de novas calibrações ou ajuste dos
valores dos actuadores.
Figura 6.1 – Bancada de trabalho, em laboratório.
O sistema é constituído por:
− dois computadores de uso geral – o Computador de Trabalho e o Computador do Simulador,
(embora sejam utilizados três computadores para facilitar as tarefas);
− uma placa USB de aquisição e conversão de sinais analógicos para sinais digitais – ADC;
− as duas Gôndolas do dirigível Passarola, com o Computador de Bordo, a Câmara de Vídeo e
os Actuadores do dirigível.
Em relação ao Computador de Trabalho (Pentium IV 3,0 GHz, com 1Gbyte de RAM e WinXP), foi
necessária a instalação de uma placa de aquisição de imagem (placa de TV), cuja função é receber a
60
imagem de saída do DSP, para visualização do funcionamento dos algoritmos de processamento de
imagem e de controlo e para fins de debug. Foi instalado o software VisualDSP++, com os drivers
para programação e comunicação com o DSP, e foi ainda instalado o software LabView, com os
drivers para o ADC, para interligação do computador com os sinais de controlo do DSP.
Neste computador é efectuado todo o processo de programação e execução dos algoritmos na
unidade de processamento DSP e é realizada a ponte entre o controlador DSP e simulador
USARSim, para o controlo do robô virtual Passarola.
O Computador do simulador UsarSim (pentium IV 2,4GHz, com 1GHz de RAM, placa gráfica ATI
de 512MHz de RAM e WinXP), é o computador responsável pela simulação 3D realista do dirigível
Passarola, utilizado para testar os algoritmos implementados no DSP, através da simulação das
condições de teste reais. Este simulador, pelo facto de realizar uma simulação física e gráfica de todo
o ambiente de simulação, consome muitos recursos da unidade de processamento, necessitando por
este motivo de ser utilizado um computador independente para a realização da simulação em tempo
real. A comunicação com o servidor é realizada por ligação TCP/IP para efeitos de controlo dos
objectos do ambiente de simulação, e como saída do sistema é utilizada a imagem fornecida pelo
simulador, enviada pela saída S-video da placa gráfica, que emula a imagem capturada pela câmara
do dirigível.
O DSP, unidade de processamento real do robô , é o centro deste sistema de trabalho e actua
neste ambiente exactamente como se do sistema real de controlo se tratasse. De tal forma que, capta
a imagem enviada pelo simulador por vídeo composto, através da ligação BNC da sua placa
electrónica, tal como acontece com a câmara de vídeo real, e actua no sinal de controlo de igual
modo como faria com os actuadores reais, por meio das suas saídas de sinal analógico, no formato
PWM.
O esquema do sistema de trabalho construído é apresentado na Figura 6.2:
Figura 6.2 – Esquema de trabalho, em laboratório, construído para o desenvolvimento deste projecto.
61
6.2 – Sistema de Trabalho, no Terreno
De forma a tornar todo o sistema de trabalho portátil, durante a transição dos testes de controlo para
o robô real, preparou-se um Portátil de Trabalho com o software VisualDSP++ de programação do
DSP, e adquiriu-se uma placa externa de captura de vídeo, para visualização da imagem de saída do
DSP, transmitida a partir do dirigível através de um sistema de transmissão de vídeo por rádio
frequência, para debug do controlador. Na Figura 6.3 encontra-se representado o esquema do
sistema de trabalho real utilizado no terreno para o teste do robô Passarola (Figura 6.4).
Figura 6.3 – Esquema do sistema de trabalho, utilizado no terreno, durante os testes com o robô Passarola.
A captura da imagem de saída com o processamento realizado no DSP, incluindo o sistema de
gravação dos sinais de erro e de controlo em gráficos de tempo, foi muito vantajosa para o
desenvolvimento do projecto, principalmente durante a calibração dos controladores, pois é a única
forma de visualização de informações/dados vindos dos cálculos do controlo, por se tratar de um
computador DSP programável e de memória do tipo RAM (o que implica a perda dos dados quando
se desliga a alimentação). Esta funcionalidade oferece ainda uma forma rápida de compreensão das
atitudes do dirigível, através da observação da imagem processada, recebida no computador.
Figura 6.4 – Esquema das ligações eléctricas do Dirigível.
62
6.3 – Computador de Bordo DSP
Para a realização autónoma do controlo do dirigível através da imagem capturada por uma câmara,
foi essencial incorporar a bordo do robô uma placa de processamento que se responsabilizasse pela
aquisição e processamento de imagem, pela decisão de comportamentos através da realização dos
cálculos de controlo e pela produção e envio de sinais de controlo para os motores. Para tal, adquiriu-
se uma placa electrónica de processamento de sinais (Figura 6.5), conhecida por «EZ-KIT Lite
Evaluation Kit for ADSP-BF561 Blackfin Processor» (da Analog Devices), especializada em
processamento de áudio e vídeo, pois é fundamental que o controlo seja efectuado em tempo-real,
isto é, o tempo entre a aquisição das imagens pela câmara e a transmissão de comandos para os
actuadores, seja mínima em relação à largura de banda do sistema real.
Digital Signal Processor (DSP) é um microprocessador programável, com uma arquitectura
especializada capaz de operar em tempo real no processamento digital de sinais, com velocidades
muito superiores aos microprocessadores para aplicações genéricas.
Este microchip é o cérebro da placa de processamento utilizada e é composta, para além do
microprocessador DSP, por diversos outros componentes necessários para o seu funcionamento
como memórias externas, unidades de DMA (Direct Memory Access), leds, pushbuttons, codecs de
áudio e vídeo, portas externas (porta série RS-232 e USB, portas RCA, portas para módulos de
extensão), entre outros.
Figura 6.5 – Fotografia da placa de processamento do DSP, utilizada para a construção do computador de bordo
do robô Passarola.
A programação no DSP do projecto de controlo do dirigível foi conseguida com base na modificação e
de dois projectos de exemplo independentes, fornecidos com o software da Analog Devices6, com a
programação básica para captura e processamento de imagem, com os codecs de vídeo, e para
manipulação de sinais analógicos para os actuadores, com os codecs de áudio. Para a construção do
desejado sistema autónomo de controlo do Passarola foi necessária a criação de um projecto de
grupo, com a união destes dois projectos multimédia para o seu funcionamento em paralelo no DSP.
Formou-se assim um projecto de grupo constituído pelo projecto «core A», projecto «core B», e
6 http://www.analog.com
63
projecto «sml2», onde o primeiro é o projecto de processamento de imagem, o segundo é o projecto
do controlador e da actuação dos motores e o terceiro é o projecto da memória partilhada, para a
troca de dados entre os dois cores.
6.3.1 – Processamento de Imagem
A frequência de aquisição de imagem do DSP é de 15fps (imagens por segundo), estimando-se que
este valor baixe para cerca de 8fps após a aplicação de processamento sobre a imagem. Este valor é
aceitável para a aplicação em causa, sabendo que se trata de um robô inerentemente lento, para
operação em alturas, onde os movimentos captados pela câmara têm uma dinâmica lenta, permitindo
uma menor sensibilidade na tarefa de seguimento.
Sejam agora apresentadas as tarefas de processamento de imagem realizadas no DSP.
Controlo 1 – Seguimento do ATRVJr
A imagem capturada pelo o DSP encontra-se no formato UYVY e pode ser apresentada quer no
sistema NTSC quer no sistema Pal. Este formato é provavelmente o formato mais popular das
variações 4:2:2 do formato YCbCr ou YUV (luminância, crominância azul e crominância vermelha),
utilizado normalmente em sistemas de vídeo profissionais para efeitos de compressão do sinal de
vídeo, tornando o pré-processamento mais rápido.
Sendo o objectivo deste projecto de controlo o seguimento do ATRVJr e sendo este robô vermelho, a
melhor forma de o detectar numa imagem será pela detecção da sua cor vermelha. Assim
pretende-se aqui, descobrir como se identifica a cor vermelha numa imagem descrita no formato
YCbCr. Embora este formato não fosse o melhor formato para tratamento de cores numa imagem,
optou-se pela sua utilização em detrimento, p. ex. do formato HSV, pois a conversão de formatos
torna-se computacionalmente pesada na aplicação desenvolvida em DSP, perdendo-se a capacidade
de tempo real pretendida.
Consultada a bibliografia sobre a relação entre os formatos de imagem [31] e estudada a estrutura e
significado dos diferentes pixels deste formato, concluiu-se que a detecção de pixels através da cor
só era possível pela observação da gama de valores das três componentes do pixel (Y, Cb e Cr), à
semelhança do que acontece no RGB. De maneira a determinar as gamas de valores a que
corresponde a cor vermelha e, para posterior calibração destes limites de forma prática e fiável (p.ex.
numa mudança de luz ou de ambiente do robô), foi elaborado um programa em Matlab, que simula o
formato de imagem UVYV do DSP a partir de uma imagem em RGB, para análise do conjunto de
valores dos pixels da imagem.
Assim, para estudo da cor vermelha neste formato, foram capturadas várias imagens de objectos
vermelhos com a câmara real e o DSP, com diferentes níveis de luminosidade, de onde se retiraram
64
amostras de pixels para a construção da imagem da Figura 6.6 a), analisando os seus valores de Y,
Cb e Cr em função de Cr, com base programa Matlab citado, obtendo-se a distribuição de valores
apresentada na Figura 6.6 b).
Figura 6.6 – a) Imagem com várias amostras de vermelho; b) Gráfico com o valor das três componentes YUV.
Assim este programa, baseado nas formulas de conversão RGB para YCbCr e na organização de
pixels na memória do DSP, permite a observação das características da imagem descritas no formato
UVYV, possibilitando o estudo e avaliação da combinação das componentes. Por conseguinte, depois
de analisadas as gamas de valores dos pixels na região vermelha da imagem, foram definidos os
limites desejados para cada uma das componentes do formato, resultando no processamento de
imagem, realizado em UVYV, da Figura 6.7.
Figura 6.7 – a) Imagem original obtida pelo DSP; b) imagem processada (em UVYV) com detecção de vermelho.
Obtida a região vermelha na imagem, correspondente ao robô ATRVJr, é determinado o seu centro
de massa e calculado por fim, o ângulo e a posição desse ponto em relação ao referencial
apresentado na Figura 6.8, de modo a calcular os vectores de erro dos subsistemas do dirigível,
representados a verde e a azul, convenientemente convertidos para o referencial de corpo b para o
controlo do robô.
Para o calculo da posição e orientação do centro de massa na próxima imagem é realizada uma
técnica de procura, baseada na continuidade do movimento dos robô, onde é utilizada uma região de
a)
b)
65
procura, de raio programável, centrada na ultima posição conhecida para o robô, de forma a
concentrar o seguimento unicamente no robô pretendido, descartando a detecção de falsos robôs.
Figura 6.8 – Processamento de imagem do seguimento do ATRVJr.
Como referido, foram ainda elaborados cinco gráficos na imagem de saída do DSP, para a
monitorização em tempo real dos valores das variáveis intervenientes no controlo. Estes valores são
armazenados em vectores de inteiros e vão sendo actualizados em cada iteração de imagens com os
novos valores utilizados no controlador. Estes gráficos fornecem informações sobre o desempenho
do seguimento ao longo do tempo, permitindo assim confirmar a funcionalidade dos controladores
durante o acerto da referência. Os gráficos representados são, por ordem de cima para baixo e da
esquerda para a direita, dutycycle do PWM do motor traseiro, dutycycle do PWM dos motores
dianteiros, erro de posição no eixo Y, erro de posição no eixo X e erro de rotação θ. As escalas,
sendo difíceis de marcar na imagem, são entendidas a partir dos limites do eixo vertical, que marca o
valor máximo e o valor mínimo possível para cada sinal, apresentados na Tabela 6.1. O eixo
horizontal de cada gráfico, cruza com o eixo vertical no zero da sua escala e representa um tempo de
sinal de 13s.
Tabela 6.1 – Valores limites dos eixos verticais dos gráficos das variáveis de controlo.
Eixo vertical Gráfico Limite inferior Limite superior
Duty Cycle M. Traseiro -20‰ 20‰ Duty Cycle M. Dianteiros -20‰ 20‰
Erro eixo X -288pixels 288pixels Erro eixo Y -360pixels 360pixels
Erro rotação θθθθ -180º 180º
66
Controlo 2 – Seguimento de Linhas
Para a implementação do algoritmo de Sobel em tempo real, foi utilizado um projecto de exemplo de
vídeo com este algoritmo de processamento de imagem já implementado em Assembly, produzindo
directamente na saída uma imagem a preto e branco, com os contornos das imagens. Em seguida
implementou-se o algoritmo de detecção de rectas, algoritmo de Hough, com base na análise dos
pixels brancos desta imagem (recta amarela da Figura 6.9 orientada com um ângulo θ e localizada a
uma distância d do centro), realizando-se o cálculo matemático do cruzamento das rectas obtidas
com uma semicircunferência de raio programável, para concretização do algoritmo de seguimento de
linhas, descrito no Capítulo 4 (linhas cor-de-laranja da Figura 6.9).
Depois de encontrada a linha de seguimento, efectua-se o seguimento dessa linha nas imagens
seguintes com o fundamento da continuidade do movimento do robô, durante o seguimento. Quer isto
dizer que, o cálculo da localização da recta na próxima imagem será efectuado com base na
informação do ângulo α adquirido pela recta de seguimento na última imagem, pois esta deverá estar
orientada de forma semelhante à última forma detectada, conseguindo-se assim controlar as
perturbações no seguimento causadas pelo cruzamento indesejado de outra rectas na
semicircunferência.
Figura 6.9 – Esquema de detecção de linhas na imagem de contornos.
Para a elaboração do processamento de imagem foi definido o referencial representado na Figura 6.9
com linhas azuis, tendo-se convertido posteriormente o sinal de controlo para o referencial de corpo
do dirigível b, descrito no Capítulo 2, para a realização da lei de controlo.
Com o intuito de melhorar o esquema de seguimento de linhas de uma imagem para a outra seria
ainda boa estratégia controlar a informação da distância d e orientação θ da recta de seguimento,
fornecida pelo algoritmo de Hough, com a mesma linha de raciocínio da continuidade de movimento
do robô, mas uma vez que não se teve a oportunidade de experimentar a implementação desta nova
67
estratégia, regista-se aqui esta ideia, como sugestão de melhoramento do processamento de imagem
para trabalho futuro.
Controlo e actuação dos motores
A construção do sinal PWM e a realização dos cálculos do controlador PD que determina o valor do
seu duty cycle, foi obtida com recurso a uma rotina de interrupção do processador, que utiliza o codec
de áudio para a geração de um sinal analógico com a forma pretendida. Esta rotina, com grande
velocidade de execução, constrói um sinal PWM contínuo com uma frequência de 48Hz (período de
20,8ms), realizando os cálculos de controlo apenas no fim de cada período do sinal.
A divisão de tarefas entre os dois processadores mostrou-se uma opção muito vantajosa para a
realização deste sistema autónomo de controlo, uma vez que são realizadas em simultâneo tarefas
de aquisição e construção de sinais em tempo real, tendo-se verificado durante uma tentativa de
junção dos projectos apenas num core do DSP, que estas seriam tarefas muito pesadas para
realização com um único processador, faltando ainda a realização dos cálculos de controlo. Por sua
vez, a implementação do controlador PD no segundo processador, permitiu uma divisão equilibrada
dos recursos disponíveis, optimizando a rapidez de cálculo dos algoritmos, e permitiu ainda a
realização dos cálculos do controlo digital a uma frequência de amostragem constante, conferindo
estabilidade ao sistema. A única limitação detectada para esta estratégia passou pela necessidade de
construção de um espaço de memória partilhado entre cores, a partir do qual são trocadas os dados
do processamento de imagem para o controlador e vice-versa.
6.4 – LabView
Durante a transição da Etapa 1a (simulação Matlab) para a Etapa 1b (simulação USARSim), proposta
no inicio do projecto, numa apreciação da próxima etapa de implementação do controlador, que
indicava a tradução e teste do controlador para a linguagem de programação C, a partir de um
computador de uso geral, surgiu uma nova estratégia para o desenvolvimento do sistema de controlo.
Com o objectivo de reduzir alguns passos na execução do projecto e para minimizar as
incompatibilidades e erros provenientes da transição do sistema simulado para o sistema real,
considerou-se a viabilidade de utilização do DSP, já a partir desta etapa, para implementação e teste
do sistema de controlo com o novo simulador 3D realista – USARSim. Arriscando na dificuldade de
ligação entre o controlador real e o simulador, mas criando novas capacidades por outro lado, foi
conseguida a ligação entre o DSP e o USARSim com a ajuda de um programa realizado em
LabView7, com comunicação de rede TCP/IP e tratamento conveniente de sinais de controlo do DSP,
7 Software de programação gráfica, para instrumentação e medida, da National Instruments.
68
para conversão e adaptação dos comandos entre os sistemas. A conexão do DSP ao computador
com o programa LabView é efectuada através de uma placa de aquisição e conversão de sinais
analógicos para digital – ADC. Deste modo, são traduzidos de forma transparente os sinais de
controlo reais do DSP para os comandos de controlo do simulador USARSim, enviando-os
posteriormente, por ligação TCP/IP, para o computador de simulação para controlo idêntico do robô
virtual Passarola, simulando-se assim a utilização do sistema real, através de uma ponte para o robô
virtual.
Este sistema, permitindo a utilização da mesma unidade de controlo do robô real, possibilitou o teste
e validação de todos os algoritmos desenvolvido e implementado no DSP antes de se passar para o
dirigível real, utilizando para tal uma simulação fiel da física do dirigível Passarola, tal como
demonstrado no Anexo B, eliminando quase na totalidade a dificuldade de transição do controlador
para o real, tal como desejado.
A Figura 6.10 mostra a interface gráfica do programa elaborado em LabView, onde é visível, em cima,
a ligação TCP/IP do simulador e os controlos manuais de comando do robô Passarola virtual, em
baixo, os sinais PWM captados do DSP e, no meio da janela, o comando automático de controlo do
simulador, cujos valores de controlo foram traduzidos de unidades de duty cycle para unidades de
velocidades e de ângulos.
Figura 6.10 – Janela de interface do programa LabView.
Para a adaptação dos sinais de controlo entre os sistemas partiu-se da relação entre o valor do duty
cycle do sinal PWM e o valor de velocidade/ângulo produzido pelo mesmo, no modelo real. Assim,
69
foram realizados vários testes de correspondência entre o duty cycle aplicado e a velocidade atingida
pelo robô Passarola, para a construção dos polinómios de conversão dos comandos de controlo,
mantendo assim a correspondência de comportamentos entre o modelo simulado e o modelo real.
As experiências de medição de velocidades em função do duty cycle foram efectuadas em separado
para cada um dos subsistemas do dirigível, em estudo. Em cada subsistema, para cada um dos
valores do duty cycle testados, apresentados na tabela da Figura 6.11 e Figura 6.12, foram
efectuadas duas ou mais experiências de medição de velocidade, tendo-se gravado em vídeo o
respectivo movimento do dirigível Passarola, para cada experiência. Conhecidas as distâncias das
linhas marcadas no chão do pavilhão onde foram filmadas as experiências e depois de analisadas as
imagens gravadas, foi calculado o valor médio das velocidades medidas para cada valor de duty
cycle testado, elaborando-se os respectivos gráficos de tradução de unidades, apresentados na
Figura 6.11 e Figura 6.12.
Duty Cycle Dianteiro (‰)
Velocidade em X (m/s)
50 -1,03 60 -0,62
68 0 70 0 72 0
77 1,02 80 1,26 82 1,47
88 1,90 95 2,33
Figura 6.11 – a) Gráfico da velocidade linear do Passarola em função do duty cycle do sinal PWM aplicado nos
seus motores dianteiros.
Dutycycle traseiro (‰)
Velocidade rotação (rad/s)
60 -0,87
65 -0,67
70 -0,42
72 0
73 0
74 0
77 0,31
84 0,56
90 0,71
Figura 6.12 – a) Gráfico da velocidade angular do Passarola em função do duty cycle do sinal PWM aplicado no
seu motor traseiro.
Com base nos dados obtidos experimentalmente foi realizada a determinação das funções que
aproximavam as características não-lineares das tabelas de conversão construídas, através da
toolbox Curve fitting do Matlab, tendo-se obtido os polinómios da Figura 6.13. Estes polinómios foram
Velocidade linear versus Duty Cycle
Duty Cycle (‰)
Vel
ocid
ade
linea
r (m
/s)
Vel
ocid
ade
angu
lar
(rad
/s)
Velocidade angular versus Duty Cycle
Duty Cycle (‰)
70
posteriormente implementados no programa LabView e utilizados para traduzir os comandos reais de
controlo para os seus correspondentes do simulador, possibilitando assim o teste dos algoritmos de
controlo desenvolvidos no DSP no simulador USARSim, de forma ainda mais realista.
Fit 1: f(x) = -0,004184x2 + 0,8007x - 36,03 Fit 3: f(x) = -0,00298x2 + 0,5341x - 23,24
Fit 2: f(x) = 0,002798x2 - 0,2668x + 5,315 Fit 4: f(x) = 0,005924x2 - 0,7162x + 20,8
Figura 6.13 – Aproximação de polinómios às tabelas de conversão Duty Cycle – Velocidade.
6.4.1 – Placa de Aquisição e Conversão ADC
Esta placa USB de conversão e aquisição de sinais (Figura 6.14) tem o importante papel de captura e
conversão instantânea dos sinais PWM analógicos, emitidos pelo DSP para actuação dos actuadores
do dirigível real, em sinais digitais passíveis de manipulação digital pela ferramenta LabView. É assim
estabelecida a ponte entre o computador de bordo real do Passarola e o robô Passarola virtual em
simulação, possibilitando o desenvolvimento do sistema autónomo de controlo em ambiente de
laboratório, até à situação em que todo o sistema é testado no robô Passarola real, sem necessidade
de qualquer adaptação prévia.
Figura 6.14 – Placa USB de conversão e aquisição de sinais – ADC.
71
7 Resultados
7.1 – Ajuste Prévio do Sistema de Controlo
Depois de programado no DSP o controlador de cada subsistema do robô, apresentados no Capítulo
4, e testado o controlo do robô no simulador USARSim, verificou-se durante o seguimento do robô
ATRVJr, na execução das trajectórias, que o dirigível demonstrava desempenhos diferentes entre a
realização de curvas para a esquerda e a realização de curvas para direita, onde se notava um
alargamento prejudicial da sua trajectória em curvas para a direita. Este facto pode ser demonstrado
pela diferença entre as trajectórias da Figura 7.1, realizadas a uma velocidade de seguimento de
1m/s, que compara o desempenho do dirigível no seguimento do robô ATRVJr, numa fase inicial, sem
compensação do sinal de controlo e numa fase posterior, já com compensação do sinal de controlo.
Figura 7.1 – Comparação de trajectórias no controlo do dirigível, a uma altitude de 6m: a) sem compensação de
comportamento; b) com compensação de comportamento.
É possível observar na Figura 7.1 a) que o dirigível se perde, já no fim da trajectória, devido a uma
curva mais acentuada do ATRVJr para a direita. Esta situação acontece devido às assimetrias na
propulsão dos hélices dos actuadores do dirigível, que faz com que sejam produzidas forças
diferentes na rotação do robô quando se faz rodar os hélices no sentido directo ou no sentido inverso,
para iguais velocidades de rotação dos actuadores. Este facto faz com que a calibração dos
parâmetros dos controladores, realizada no Capítulo 4, apenas funcione correctamente para um dos
lados, sendo preciso compensar a assimetria para o lado oposto. Assim, para a solução deste
problema, optou-se numa fase inicial por se realizar o cálculo do sinal de controlo com recurso a
parâmetros variáveis, conforme se tratasse de um ou de outro sentido de rotação dos hélices. Mas
após análise das tabelas de força dos actuadores (Figura 6.11 e Figura 6.12), percebeu-se que a
a) b)
72
relação de perda de força dos hélices, entre a rotação no sentido directo e a rotação no sentido
inverso, é na proporção de 2:1, tendo em conta igual valor do escalão no duty cycle do sinal PWM do
actuador (em valor absoluto). Por conseguinte, como para obter a força pretendida no sentido inverso
é necessário aplicar o dobro da velocidade de rotação, solucionou-se esta questão analisando o valor
dos escalões dos sinais de controlo antes da sua aplicação nos actuadores, decidindo pela sua
multiplicação por 2, ou não, consoante os seus valores sejam negativos, ou não.
Os resultados obtidos com esta compensação dos actuadores são mostrados, para o mesmo
exemplo, na Figura 7.1 b).
7.2 – Resultados em Simulação 3D Realista – USARSim
Após a conclusão de todo o sistema de controlo do dirigível Passarola é agora altura de apresentar
os resultados conseguidos neste projecto, para o desempenho do sistema durante o seguimento de
trajectórias, retirados de experiências realizadas no simulador USARSim e realizadas no robô real.
Para tal utilizou-se, em ambas as situações, o sistema real de controlo desenvolvido para a
navegação autónoma do dirigível (modelo simulado e modelo real), apresentado no Capítulo 6.
7.2.1 – Controlo 1: Seguimento do ATRVJr
Nos testes que se seguem, fez-se variar a velocidade de seguimento do ATRVJr e a altitude de
operação do dirigível, assim como o teste do sistema em vários tipos de trajectórias. A altitude
comum de operação do dirigível nos testes realizados com o simulador é 6m de altura, aproximando-
se da situação real de testes com o robô Passarola, para o qual os controladores foram ajustados,
tendo-se avaliado também o presumível desempenho do sistema de controlo para 12m de altura. A
modificação da velocidade de seguimento do dirigível é realizada pela variação da velocidade de
deslocação do robô ATRVJr, tendo-se utilizado V = 0,58m/s, V = 0,78m/s e V = 1m/s nas experiências
agora apresentadas.
73
Figura 7.2 – Experiência 1: Trajectória em forma de U, realizada com V = 0,58m/s.
Experiência 1: Na Figura 7.2 é apresentada uma experiência de seguimento do robô ATRVJr numa
trajectória em forma de U, onde ambos os robôs partem do repouso no instante t = 0s. A velocidade
de seguimento é 0,58m/s e o dirigível opera a uma altitude de 6m. São apresentados os gráficos de
Posição 3D e Posição/Orientação versus Tempo, onde se pode observar um seguimento muito
próximo do robô líder por parte do robô Passarola. São percorridos cerca de 240m em 400 segundos,
notando-se em todo o percurso um pequeno atraso temporal do robô Passarola em relação ao seu
líder, que se pode explicar pelo facto do controlo no dirigível ser efectuado em relação ao referencial
da câmara e não em relação ao seu centro de massa (onde é efectuada a medida da sua posição no
simulador). Uma outra causa para este facto deve-se às características do seguimento de um objecto
em movimento, que naturalmente se afasta do seu seguidor em cada instante, conservando na
situação de equilíbrio um erro estático de seguimento. Este problema surge devido à simplificação da
lei de controlo, realizada no Capítulo 4, onde se desprezou o termo de aceleração desejada dx&& no
controlador PD deduzido, cuja função é a supressão deste tipo de erros, somando um termo adicional
ao sinal de controlo. Caso se justifique, esta situação pode ser facilmente ultrapassada com a
modificação do controlador adoptado para o controlador original, mas nesse caso terá que se lidar
com a determinação de dx&& em cada instante, o que pode não ser trivial. Além deste facto sabe-se
que os motores possuem uma zona morta na sua característica que impede a actuação eficiente do
robô junto à referência, bem visível no gráfico Orientação versus Tempo. Estando a característica dos
actuadores modelada no programa LabView (Secção 6.4) este problema do modelo real é
representado no simulador durante as experiências, para uma simulação realista.
A realização destas experiências foi realizada com recurso a um programa em Matlab para controlo
do robô ATRVJr, utilizando as suas funcionalidades de comunicação TCP/IP, uma vez que se
pretendia conhecer as posições temporais do robô ao longo das experiências, efectuando a
descodificação das mensagens de resposta do simulador com este conteúdo. Para o dirigível
Passarola também foi efectuada uma modificação no programa LabView para que também fosse
possível receber e armazenar as mensagens de resposta do simulador com as sucessivas posições
dentro da arena, para posterior descodificação e comparação com as posições do robô ATRVJr.
74
Figura 7.3 – Experiência 2 e 3: a) Trajectória em forma de escalão no eixo dos xx, com V = 0,58m/s;
b) Trajectória em forma de U, realizada com V = 0,78m/s, a 12m de altitude.
Experiência 2 e 3: Na Figura 7.3 são apresentadas duas experiências realizadas no âmbito do teste
do sistema de controlo, onde foram avaliadas as capacidades do sistema numa situação extrema de
seguimento durante uma mudança brusca de direcção e foi ainda avaliada a capacidade de
adaptação do sistema a novas condições de operação, realizando-se um teste de seguimento com o
dirigível a 12m de altura. Ambos os robôs partem da situação de repouso, orientados segundo o
sentido positivo de x, e são iniciados com 3m de distância em x, para que o robô ATRVJr coincidisse
com o centro da imagem da câmara do dirigível no inicio das experiências.
Verifica-se que o seguimento é efectuado sem perturbações, não existindo sobre-elevações
preocupantes durante a trajectória descrita pelo dirigível que coloquem em causa a continuidade do
seguimento. Destes resultados pode-se pressupor que o sistema de controlo é robusto a alterações
na trajectória e nas condições de operação, dentro dos limites de velocidade e das modificações
impostas.
Experiência 4: Na experiência que se segue realizou-se ainda uma inversão de marcha do robô
ATRVJr, a meio da realização de uma trajectória rectilínea segundo x, com V = 0,58m/s. Ambos os
robôs iniciam a experiência em t = 0s com V = 0m/s. A atitude de operação do dirigível é 6m e a
distância entre os robôs é 3m no eixo dos xx, para que o erro de seguimento seja inicialmente nulo
(colocação do robô ATRVJr na origem da imagem de vídeo da visão do robô Passarola).
Também nesta experiência é possível verificar um bom desempenho do sistema de controlo, visto
que o controlador executou o procedimento necessário para efectuar a inversão de marcha em
simultâneo com o robô terrestre, notando-se inclusive a acção de travagem em t = 40s dos motores
propulsores do dirigível quando este alcançou repentinamente o robô ATRVJr. Embora o dirigível
sofra ainda alguns efeitos da sua inércia na execução da inversão, conclui-se, tendo em conta a
escala da trajectória, que o sistema inverte eficazmente a marcha enquanto prossegue com o
seguimento do robô terrestre como pretendido, adquirindo a estabilidade assim que possível.
a) b)
75
Figura 7.4 – Experiência 4: Trajectória de inversão de marcha, realizada com V = 0,58m/s.
Experiência 5: Na próxima experiência pretende-se demonstrar o desempenho do sistema
desenvolvido, no seguimento do robô terrestre, durante a execução de uma trajectória curvilínea em
forma de 8. As condições iniciais mantêm-se idênticas às experiências anteriores, assim como todo o
processamento de controlo, realizado de forma autónoma com o computador de bordo do dirigível.
76
Figura 7.5 – Experiência 5: Trajectória em forma de 8, realizada com V = 0,58m/s.
A uma velocidade de seguimento de 0,58m/s é possível observar na Figura 7.5 que o sistema
descreve uma trajectória muito próxima da trajectória do robô líder, mantendo um erro de seguimento
baixo e de valor constante nas duas fases da trajectória em oito, onde se nota ainda um
comportamento aproximadamente simétrico em relação ao centro da trajectória. Este facto indica-nos
que o sistema está a responder de igual forma, tanto para curvas para o lado direito como para
curvas para o lado esquerdo, tal como era desejado, graças à manipulação do sinal de controlo para
compensação das assimetrias do sistema de actuação, apresentada no inicio deste capítulo.
Vejamos agora o que acontece quando se modifica a velocidade e a altitude de operação do dirigível.
Experiência 6: Repetição da experiência anterior com a modificação da velocidade de seguimento e
a altitude de operação do dirigível, para o dobro dos seus valores iniciais. Numa primeira experiência
é testado o seguimento modificando apenas a velocidade para V = 1m/s. Numa segunda experiência,
além da velocidade de seguimento é modificada ainda a altitude de operação do dirigível para 12m.
Figura 7.6 – Experiência 6: a) Trajectória em forma de 8, realizada com V = 1m/s e altitude 6m;
b) Trajectória em forma de 8, realizada com V = 1m/s e altitude 12m.
a) b)
77
Observando a Figura 7.6 a) verifica-se que o aumento da velocidade de seguimento provoca um
aumento do erro entre as trajectórias dos dois robôs, especialmente visível nas curvas, tal como seria
de esperar, pois uma maior velocidade tangencial à curva provoca um maior afastamento do dirigível
ao robô líder, quando este inicia as curvas. No entanto o sistema de controlo consegue manter esse
erro constante durante toda a curva, de forma eficaz e, tal como desejado, segue de forma tranquila o
robô ATRVJr. Observando a Figura 7.6 b) conclui-se que o aumento da altitude do dirigível provoca
no seguimento, tal como o aumento da velocidade, um crescimento no erro entre as trajectórias dos
dois robôs. Uma vez mais, também neste caso, este resultado corresponde ao comportamento
esperado, pois um aumento de altitude do dirigível provoca directamente um aumento do campo de
visão da sua câmara de vídeo, modificando-se as condições de operação para as quais se calibrou o
controlador, resultando num cálculo de controlo menos eficaz. No entanto o controlador executa,
ainda sem problemas de maior, o desejado seguimento do robô líder, confirmando-se a correcta
funcionalidade do sistema de controlo.
Experiência 7: Para finalizar esta série de testes, realizou-se por último uma experiência de
seguimento do robô ATRVJr num circuito de longa distância, com 700m de comprimento, a uma
velocidade V = 0,78m/s. Os robôs partem da situação de repouso e estão orientados segundo o
sentido positivo de x. O dirigível é iniciado a 6m de altura e a experiência decorre em t = [0, 900]s.
Várias perspectivas do seguimento obtido na experiência 7, tais como as Posições 3D e a
Posição/Orientação versus Tempo dos dois robôs podem ser observadas na Figura 7.7. A título de
exemplo, é ainda apresentada uma imagem de saída da unidade de processamento do dirigível,
retirada durante a realização da experiência, representativa da visão do robô Passarola. Nesta
imagem, obtida no instante t = 271s, nota-se que o robô ATRVJr está a iniciar a quarta curva do
circuito, pois começa a afastar-se do eixo vertical da imagem. Observando ainda com mais pormenor,
os gráficos de controlo impressos nesta imagem (ver Secção 6.3.1), verifica-se que o Subsistema de
Direcção do dirigível, encontrando-se já estabilizado na referencia antes da curva, começa já a reagir
devido ao crescimento do erro em y e do erro em yaw, confirmando-se o seu correcto funcionamento.
Com esta experiência é possível confirmar a autonomia do sistema de controlo do robô Passarola,
verificando-se também a existência de robustez na lei de controlo desenvolvida.
78
Figura 7.7 – Experiência 7: Circuito de longa distância, realizado a 6m altitude e com V = 0,78m/s.
Sinal controlo FMT Sinal controlo FMD
Erro em x Erro em y Erro em yaw
Processamento de imagem em t = 271s
79
7.2.2 – Controlo 2: Seguimento de Linhas
Seguem-se agora as experiências realizadas no âmbito do controlo de seguimento de linhas. Os
parâmetros de controlo utilizados são os parâmetros já apresentados no Capítulo 4, ajustados para
uma altitude de operação do dirigível de 6m. É testado o seguimento com o robô a uma velocidade de
ponta em rectas de 0,9m/s e é testado o funcionamento do sistema para uma altitude de 6m e 10m.
Experiência 1: Nesta primeira experiência testou-se o sistema de controlo no seguimento de uma
linha delimitadora de uma trajectória em forma de 8, para a altitude de 6m e 12m, para posterior
comparação do desempenho do controlador. O dirigível é iniciado em t = 0s com V = 0m/s, orientado
segundo o sentido positivo de x.
Figura 7.8 – Experiência 1: a) Trajectória em forma de 8, realizada a 6m de altitude;
b) Trajectória em forma de 8, realizada a 10m de altitude.
A trajectória em forma de 8 é uma boa trajectória para o teste do sistema de controlo de um robô uma
vez que resume nela muitas das trajectórias comuns exigidas a um veículo móvel, abrangendo os
comportamentos mais básicos dos veículos. Se um controlador não for capaz de executar
correctamente esta trajectória não será, com certeza, bem sucedido no desempenho das tarefas
principais de navegação de um robô. Observando os gráficos de Posição 3D da Figura 7.8 verifica-se
que o sistema de controlo desenvolvido para esta situação de controlo resolve com facilidade este
tipo de trajectórias, pois apresenta um baixo erro de seguimento em toda a trajectória, demonstrando
ainda uma boa capacidade de adaptação a novas condições de operação. Comparadas as duas
trajectórias desta experiência é possível concluir que o sistema de controlo implementado é robusto a
variações de altitude, funcionado como desejado, uma vez que o seguimento apresentado na Figura
7.8 b) apresenta um baixo erro de seguimento à trajectória, sendo muito semelhante ao desempenho
apresentado na Figura 7.8 a). Por último pode justificar-se ainda que o sistema executa o seguimento
com rapidez pois realiza esta tarefa num tempo de 365s, com Vmed = 0,7m/s.
a) b)
80
Experiência 2: Para o teste do comportamento do sistema de controlo em mudanças de direcção
bruscas, realizou-se uma experiência prática de seguimento de linhas numa trajectória em forma de
quadrado, acompanhando-se esta experiência com uma avaliação da velocidade instantânea
adquirida pelo robô durante todo o seguimento. A posição inicial do dirigível é em (70, 62)m e o
dirigível encontra-se orientado segundo o sentido positivo de x, tal como em experiências anteriores.
Figura 7.9 – Experiência 2: Trajectória em forma de quadrado, realizada a 6m de altitude.
Na Figura 7.9, observa-se durante a experiência que o sistema de controlo leva o robô a descrever
uma sobre-elevação na resposta às mudanças bruscas de direcção da trajectória. Esta situação é
manipulável e faz parte da pretensão para este controlador em ser eficaz no seu objectivo de alcance
de uma meta, no fim da trajectória. Modificando um pouco o ganho do controlador P do Subsistema
XZ – Parte X, é possível garantir um seguimento mais próximo da trajectória para estas situações,
mas esse decréscimo da sobre-elevação será paga com um aumento do tempo de realização da
trajectória. No gráfico Velocidade versus Tempo é possível verificar que o sistema abranda
bruscamente na chegada às várias curvas do circuito, estando essa descida directamente
relacionada com o erro de orientação à trajectória. À medida que esse erro de orientação é eliminado
pelo controlador do Subsistema de Direcção o robô recupera a velocidade prosseguindo o seu
trajecto de forma autónoma e robusta, tal como desejado, enfrentado as variações da trajectória com
a tranquilidade necessária.
81
Figura 7.10 – Experiência 3: Seguimento de linhas num circuito de longa distância. Altitude = 6m e Vmed ≈ 0,8m/s.
Processamento de imagem em t = 215s
82
Experiência 3: Por fim efectuou-se uma última experiência de seguimento de linhas num circuito de
longa distância, com 600m de comprimento, a uma velocidade média Vmed = 0,73m/s. O dirigível é
iniciado a 6m de altura, parte da situação de repouso e está orientado segundo o sentido positivo de
x. A experiência decorre no intervalo t = [0, 860]s.
Várias perspectivas do seguimento obtido na experiência 3, tais como as Posições 3D e a
Posição/Orientação versus Tempo do dirigível podem ser observadas na Figura 7.10. A título de
exemplo, é ainda apresentada uma imagem de saída da unidade de processamento do dirigível,
retirada durante a realização da experiência, representativa da visão do robô Passarola para esta
situação de controlo. Nesta imagem, obtida no instante t = 215s, é possível observar que o dirigível
está a iniciar a terceira curva do circuito, começando já a modificar a sua orientação de acordo com a
trajectória. No gráfico de Posição 3D é bem visível o baixo erro de seguimento conseguido pelo
sistema, mesmo durante as curvas, notando-se apenas uma pequena sobre-elevação nas várias
curvas em esquadria. Toda a trajectória descrita é efectuada de uma forma suave, no entanto é
visível no gráfico Orientação versus Tempo algum ruído no sinal durante a experiência. Isto deve-se a
algumas falhas na detecção de linhas durante o processamento de imagem, devido ao ruído simulado
na imagem pelos flocos de neve, presentes na arena de simulação do USARSim, que leva o sistema
a cometer alguns erros de orientação. Este processamento de imagem, tendo um bom algoritmo de
base, funciona como esperado na correcta detecção das linhas de seguimento, levando o robô ao
seu objectivo de forma eficaz. No entanto algumas modificações deverão ser realizadas para
melhorar a sua implementação e a sua robustez, para uma maior generalidade de aplicações. Com
esta experiência é ainda possível confirmar a autonomia deste sistema de controlo aplicado no robô
Passarola, visto que o veículo executa todos os comportamentos exigidos, durante um largo intervalo
de tempo, sem necessitar qualquer apoio humano.
7.3 – Resultados no Robô Real – Passarola
Uma vez implementado, ajustado e testado todo o sistema de controlo desenvolvido neste projecto
para funcionamento no dirigível Passarola e, sabendo ainda que o controlador foi determinado e
apurado através de sistemas teóricos desenvolvidos à imagem e semelhança do protótipo real
Passarola, foi com grande segurança que se passou para o teste final do sistema de controlo no robô
real. Na verdade, verificou-se que o controlador foi entre todos os contratempos, o que menos
problemas causou durante as experiências com o robô Passarola. À excepção das assimetrias dos
actuadores verificada no robô real, as quais ainda não tinham sido compensadas nesta fase dos
testes no sistema real, todas as experiências de seguimento do robô ATRVJr e do Seguimento de
Linhas decorreram tal como em simulação, validando efectivamente as capacidades da simulação do
robô real em laboratório.
83
O teste do sistema no robô real foi realizado essencialmente em duas fases, para reconhecimento
amadurecimento e execução dos processos desenvolvidos:
− Numa primeira fase foram realizadas experiências de seguimento de um objecto vermelho,
tais como uma peça de roupa vermelha ou um saco de pano vermelho, como simulação do
robô ATRVJr, para validação do processamento de imagem e validação do sistema de
controlo. Aqui verificou-se que o dirigível tem um grande momento de inércia, devido às suas
grandes dimensões e ao baixo atrito do ar, dificultando a estabilização dos movimentos
angulares e lineares. Este aspecto torna-se ainda mais complicado devido à fraca
motorização dos actuadores, embora o ambiente de testes seja também ele bastante limitado
para experiências com um dirigível como o Passarola, pois não permite muito espaço para
manobras nem utilização de velocidades elevadas. Foram realizadas experiências de
identificação dos movimentos lineares e angulares do dirigível e foram efectuadas
experiências em série, de comportamento, para construção de uma tabela de relação Duty
Cycle versus Velocidade, fornecidas no DVD em anexo, para a caracterização dos
movimentos do robô;
− Numa fase seguinte, vários melhoramentos foram efectuados no sistema, tais como a
utilização de uma nova câmara de vídeo, mais robusta às alterações de luminosidade e com
maior campo de visão, a aquisição de novas baterias e a reformulação do processamento de
imagem8 e do controlo do robô. Preparado o novo controlador PD foi testado e validado todo
o sistema de controlo desenvolvido em laboratório, através do cumprimento de várias provas
reais de seguimento. Na realização destas provas foi mesmo utilizado um robô terrestre
ATRVJr para teste da situação de Controlo 1, fornecendo-se no DVD em anexo, vários vídeos
comprovativos do funcionamento do controlo de formação do robô terrestre ATRVJr com o
robô aéreo Passarola, assim como do Seguimento de Linhas (Controlo 2).
7.3.1 – Controlo 1: Seguimento do ATRVJr
Na experiência final com o dirigível Passarola, para o Seguimento do robô ATRVJr, foi testado o
sistema de controlo no seguimento de trajectórias em forma de 8 e em forma de quadrado, tal como
foi realizado em simulação.
Pelo facto de existir alguma dificuldade em isolar no processamento de imagem, a cor vermelha do
chassis do robô ATRVJr, em contraste com a cor castanha do chão do pavilhão, e pelo facto de
existirem poucas zonas vermelhas na vista superior do robô, colocou-se um saco de pano, de cor
vermelha mais forte, em cima do robô ATRVJr, que permitiu a realização de todas as experiências de
seguimento seguintes sem que fossem criados problemas com a detecção do robô terrestre.
8 Nesta fase foi de grande importância a utilização do programa de calibração de vermelhos em UYVY, implementado em Matlab e descrito na secção tal, para ajuste do nível de vermelhos captado no ambiente de testes do pavilhão, gravando e analisando a imagem de entrada do DSP, com o ATRVJr presente na imagem.
84
Durante estas últimas experiências, como ainda não tinha sido realizada uma boa compensação da
assimetria dos actuadores, por falta de oportunidade para a sua calibração em laboratório no
simulador USARSim, foi experienciada alguma dificuldade no seguimento do ATRVJr em situações
de mudanças bruscas de trajectória (trajectória em forma de Quadrado), pois o controlador não
conseguia aplicar as forças de contrabalanço solicitadas para a estabilização do veículo. Por
conseguinte, foi esta a única adversidade enfrentada na transição do controlador estudado
teoricamente para a realidade, tendo-se efectuado vários testes de seguimento bem sucedidos, que
validam todo o Sistema Autónomo de Controlo desenvolvido neste projecto, como se pode observar
na Figura 7.11 e nos filmes do «Testes Robô Passarola», adicionados ao DVD do projecto.
Figura 7.11 – Sequencia de imagens de um teste do seguimento do ATRVJr, com o robô Passarola,
numa trajectória em forma de Quadrado.
7.3.2 – Controlo 2: Seguimento de Linhas
No caso do Seguimento de Linhas, os testes foram um pouco mais simples, uma vez que as linhas
existentes no chão do pavilhão têm as formas dos vários campos de jogos, com vários cruzamentos
de linhas e com variações bruscas na sua trajectória, não se conseguindo elaborar uma boa
trajectória de seguimento, simples e completa. Usou-se então um bocado de papel de um rolo de
papel para descrever uma pequena trajectória em curva para teste do sistema, contornando assim
esta contrariedade, mas ainda assim foi verificada alguma dificuldade em manter o seguimento, pois
85
existem muitas perturbações provenientes da imagem real que interferem na correcta detecção das
linhas para seguimento.
Por conseguinte, conclui-se neste caso que o processamento de imagem é um pouco lento e
necessita ainda de algumas melhorias, além de uma reformulação da sua implementação no DSP,
para que seja conseguida maior robustez na detecção de linhas em imagens reais, manipulando de
forma correcta os dados de ângulo e distância das rectas detectadas.
No entanto, conseguiu-se ainda realizar algumas experiências de seguimento de linhas que
confirmam o funcionamento do sistema autónomo no robô real e que também permitem validar a
cumplicidade entre o sistema simulado em laboratório e o robô real, resumidas na Figura 7.12 e nos
vídeos adicionados ao DVD do projecto, em anexo.
Figura 7.12 – Sequencia de imagens de um teste de Seguimento de Linhas, realizado com o robô Passarola.
86
87
8 Conclusões e Trabalho Futuro
8.1 – Conclusões
Terminado este projecto, é tempo agora de avaliar as contribuições propiciadas e fornecer um
resumo das metas alcançadas. Consequentemente também são realizadas algumas críticas às
opções de projecto tomadas e são esboçadas algumas orientações para os trabalhos futuros como
continuidade para este projecto.
Antes de mais, pessoalmente, este projecto deu uma grande satisfação em realizar pois viu-se nascer
a partir de quase nada, um dirigível autónomo, com todos os desafios que isto proporciona. Permitiu
também que fosse estendido o conhecimento já adquirido durante o curso sobre a prática de
engenharia, no que diz respeito à busca constante de soluções para os vários problemas que
surgem, facultando uma forte experiência no desenvolvimento e controlo de sistemas e na
manipulação de ferramentas e de meios para a satisfação dos objectivos pretendidos.
No desenrolar do projecto foi necessária a familiarização com várias ferramentas de software e de
hardware para o desenvolvimento de soluções para o sistema de controlo, tais como Matlab,
VisualDSP++ e DSP, AutoCad, 3DSMax, UnrealEd, USARSim, LabView e ADC, Software GPSolution
e GPS, entre outros, tendo sido desenvolvido um sistema complexo de teste e desenvolvimento para
que fossem atingidos os fins deste projecto.
Foi resolvida a dinâmica do robô Passarola com base no conhecimento descrito no livro de Thor
Fossen [2], corrigindo-se e aperfeiçoando-se o estudo já realizado em [3]. Foi também realizada a
identificação e determinação dos sistemas que descrevem o movimento do dirigível Passarola, com a
realização de experiências no próprio robô, permitindo a construção de um simulador matemático do
robô em Simulink, através da implementação do modelo em espaço de estados da dinâmica do
dirigível. Para o controlo dos Subsistemas deste modelo foi estudada a construção de controladores
PD, pesquisando-se e desenvolvendo-se métodos de análise e de ajuste dos parâmetros de controlo,
com base no esquema de controlo implementado, retirando-se do processamento de imagem os
vectores de erro necessários para o cálculo do seguimento.
Na base deste projecto vem uma das principais contribuições conseguidas com este trabalho, que diz
respeito à construção do modelo Passarola em USARSim, simulador 3D realista em forte
desenvolvimento, tendo-se expandido as capacidades do simulador com a introdução de uma nova
classe de robôs, os dirigíveis (Blimps), na qual o Passarola é pioneiro. A partir deste modelo,
construído à imagem e semelhança do dirigível Passarola, foi possível criar uma poderosa ferramenta
88
de desenvolvimento do Sistema Autónomo de Controlo do robô Passarola em laboratório, com a
garantia de que a posterior passagem do controlador para o robô real é quase directa. Nesta linha de
pensamento, foi construído em laboratório um cómodo sistema de desenvolvimento e simulação de
controlo baseado no computador de bordo do Passarola e no simulador USARSim, reproduzindo em
simultâneo durante a simulação, se necessário, todos os sinais de controlo nos actuadores reais do
dirigível, comprovando a generalidade do sistema construído.
A comunicação do sistema de controlo real, implementado no DSP, com o simulador USARSim foi
conseguida com recurso à utilização de ferramentas de instrumentação e medidas, tirando partido da
excelente funcionalidade do simulador USARSim de comunicação em rede por ligação TCP/IP. Esta
comunicação foi uma aposta notável para a investigação deste projecto, pois permitiu no momento
certo uma utilização eficiente dos meios adequados para o rápido desenvolvimento do sistema.
Também a escolha da placa de processamento (ADSP BF561) foi uma excelente aposta, pois por
todas a suas características de peso, tamanho, entradas e saídas de áudio e vídeo analógico em
número e formato perfeito, pushbuttons, projectos de exemplo e ainda o dual core, permitiram que
todas as questões levantadas durante o desenvolvimento do projecto fossem eficazmente
solucionadas com as capacidades desta placa. Além disso permite o cálculo pesado do
processamento de imagem, de controlo e de actuação dos motores do dirigível em tempo real,
satisfazendo correctamente as ambições propostas.
Como se esperava, o dirigível revelou ser um sistema de difícil controlo derivado ao seu baixo peso e
elevado volume, experimentando pouco atrito e um elevado momento de inércia, mesmo em
pequenos movimentos, levando muito tempo a estabilizar. No entanto foi conseguido o seu controlo
através do Sistema Autónomo de Controlo desenvolvido neste projecto para o seguimento do ATRVJr
e para o Seguimento de Linhas, tanto em simulação como na realidade, executando todo o tipo de
trajectórias pretendidas, cumprindo os objectivos do projecto. Apenas no caso do Seguimento de
Linhas, na realidade, foi verificada alguma dificuldade em seguir apenas a trajectória pretendida, pelo
que ainda é necessário rever algumas partes do processamento de imagem para este programa.
Em relação aos problemas experimentados durante a passagem do sistema para o robô Passarola,
de acordo com os problemas comuns aos sistemas reais, verificou-se a existência de contratempos a
nível de baterias, maus contactos, excesso de carga no dirigível, reajustes do ponto de equilíbrio do
balão, fixação das gôndolas e da câmara no corpo do veículo e a constante re-programação do DSP
para realização de alterações no código do programa de controlo, não se verificando problemas de
maior com o controlo do veículo em si, tal como esperado. No Sistema Autónomo de Controlo apenas
foram verificados problemas a nível do processamento de imagem, devido a dificuldades de detecção
de vermelhos em contraste com o chão castanho do pavilhão e com as linhas cor-de-laranja das
marcações dos campos. Também as variações de luminosidade causaram problemas durante a
realização dos testes, pois impediam o ajuste duradouro dos parâmetros de detecção de vermelhos
na imagem, não sendo possível manter fixas as condições de luz durante as experiências.
Em conclusão, é possível afirmar que foram atingidos com sucesso praticamente todos os objectivos
propostos para este projecto, tendo-se acumulado muitos conhecimentos sobre o robô Passarola, a
89
nível físico e a nível de controlo, que irão com certeza ajudar nos desenvolvimentos futuros do
projecto, para além da construção de um sistema de suporte à investigação de controlo de dirigíveis,
intuitivo e eficaz.
A excepção desta conclusão reside na não inclusão do GSP no sistema de controlo, uma vez que o
dirigível Passarola não é aconselhado para utilizações outdoor, ficando apenas completo o estudo da
comunicação com o dispositivo GSP, deixando-se a sua inclusão na malha de controlo e a
implementação no sistema real como melhoramento do projecto em trabalhos futuros.
8.2 – Trabalho Futuro
Para que no futuro este projecto possa valorizar e progredir terá agora que ser equacionada a
aquisição de um dirigível de maiores dimensões e, em consequência, com motores mais potentes e
velozes, para a sua utilização no exterior, de modo a suportar com maior facilidade as perturbações
externas, tais como o vento. A oportunidade de transitar o dirigível para o exterior permite a inclusão
de um GPS a bordo, possibilitando a programação de rotas num sistema de coordenadas fiável e
global prestando auxílio na sua navegação. Por outro lado um dirigível de maiores dimensões
aumenta a sua capacidade de carga podendo-se incluir novas unidades de processamento mais
poderosas, novos sensores e transmissores de dados para comunicação com estações de base e
ainda com os restantes robôs da formação, trocando mensagens relevantes para a missão, tais como
melhores trajectórias, mapas topológicos, missões, entre outros.
Na continuação do presente projecto deverá ser considerada a aquisição de um sensor de altitude
para a implementação do controlo do Subsistema XZ – Parte Z, permitindo a realimentação da
posição z do sistema utilizando um altímetro ou um género de sonar, ou ainda a informação de
posição de um sistema GPS. Em qualquer dos casos deve ser tipo em conta o peso do sensor para
não exceder o limite de peso para o dirigível Passarola. Deverá ainda ser feito um melhoramento no
processamento de imagem no projecto do Seguimento de Linhas, de modo a garantir que a detecção
de linhas não sofre perturbações durante o seguimento e que é sempre escolhida a trajectória
desejada tendo em consideração a continuidade do movimento do sistema, isto é, entre instantes
contíguos deverão manter-se valores iguais/semelhantes de distancia e ângulo da recta da trajectória.
Poderá também considerar-se a junção dos dois projectos desenvolvidos de forma a que se possa
alterar online o seguimento de veículos terrestres ou de linhas captadas no solo, consoante se
necessite.
De forma a aumentar a autonomia do dirigível é também possível considerar a inclusão de painéis
solares no corpo do dirigível, podendo revestir-se parte do envelope do veículo, de forma a gerar
energia durante o voo aumentando a autonomia do sistema.
90
91
Bibliografia
[1] FOSSEN, I. Thor – Guidance and control of ocean vehicles : Jonh Wiley & Sons, 1994.
[2] FOSSEN, I. Thor – Marine control systems guidance, navigation, and th e control of ships,
rigs and underwater vehicles . Trondheim: Marine Cybernetics, 2002.
[3] COSTAL, João – Formação de robot aéreos e terrestres . Lisboa: Instituto Superior Técnico,
Projecto Aeroespacial de LEA. 2004.
[4] JERÓNIMO, David – Passarola – Dirigível autónomo para operações de bu sca e
salvamento – Parte electrónica . Tese de Mestrado. Lisboa: Instituto Superior Técnico, 2008.
[5] KRAUSE, Thomas – Description of an aerial robot and the position con trol library . Tese de
Mestrado. Lisboa: Instituto Superior Técnico, 2004.
[6] METELO, Filipe; CAMPOS, Luís – Vision based control of an autonomus blimp
(videoblimp) . Trabalho Final de Curso. Lisboa: Instituto Superior Técnico, 2003.
[7] MARQUES, João; NEVES, Marco – Vision based control of an autonomous blimp
(videoblimp) . Trabalho Final de Curso. Lisboa: Instituto Superior Técnico. 2006.
[8] ZWAAN, Sjoerd Van Der – Vision based station keeping and docking for floating robo ts .
Tese de Mestrado. Lisboa: Instituto Superior Técnico. 2001.
[9] LIMA, Pedro; et al – Rescue - cooperative navigation for rescue robots. Final Technical
Report . Lisboa: Instituto Superior Técnico- Instituto de Sistemas e Robótica. 2004.
[10] FIERRO, R.; et al – Hibrid control of formations of robots . Philadelphia: GRASP Laboratory,
University of Pennsylvania.
[11] FIERRO, R.; et al – Cooperative localization and control for multi-robo t manipulation .
Philadelphia: GRASP Laboratory, University of Pennsylvania.
[12] FERREIRA, Victoria R.C. – Identificação de parâmetros da dinâmica do dirigíve l Aurora
AS800. Tese de Mestrado. Lisboa: Instituto Superior Técnico. 2004.
[13] LEMOS, J. Miranda – Controlo em espaço de estados (Notas das aulas teóricas). Unidade
Curricular de CEE, leccionada no Instituto Superior Técnico (IST) em 2001/2002, Lisboa, 2001.
92
[14] SEQUEIRA, J. – Robótica (Transparências das Aulas Teóricas), Unidade Curricular de
Robótica, leccionada no IST em 2006/2007. Lisboa, 2006.
[15] RIBEIRO, Maria I.; LIMA, Pedro – Guidance methods for wheeled mobile robots
(Transparências das Aulas Teóricas). Unidade Curricular de Robótica, leccionada no IST em
2002/2003. Lisboa, 2002.
[16] BERNARBINO, Alexandre; GASPAR, José – Real-Time Distributed Control Systems
(Transparências das Aulas Teóricas). Unidade Curricular de SCDTR, leccionada no IST em
2007/2008. Lisboa, 2002.
[17] BERNARBINO, Alexandre – Modelação, Identificação e Controlo Digital (Transparências das
Aulas Teóricas). Unidade Curricular de MICD, leccionada no IST em 2006/2007. Lisboa, 2006.
[18] RIBEIRO, Maria I.; PASCOAL, António – Controlo – Transparências de apoio às aulas teóricas.
Unidade Curricular de Controlo, leccionada no IST em 2003/2004. Lisboa, 2003.
[19] SLOTINE, Jean-Jacques E.; LI, Weiping – Applied non-linear control . New Jersey: Prentice
Hall Inc., 1991.
[20] ASTRÖM, Karl J.; WITTENMARK, Bjorn – Computer controlled systems: theory and design .
London: Prentice-Hall International Editions,1984.
[21] SANTOS, José dos; SILVA, Paulo – Centauro, veículo autónomo com sistema de condução
automática versátil . Lisboa: Instituto Superior Técnico, 1997.
[22] LACROIX, S; et al – The autonomous blimp project of LAAS-CNRS: achievem ents in flight
control and terrain mapping . Toulouse: LAAS/CNRS.
[23] ZARATTI, M.; FRATARCANGELI, M.; LOCCHI, L. – A 3D simulator of multiple legged robots
based on USARSim . Roma: Università “La Sapienza”.
[24] MORI, S.; et all – Path tracking control of mobile robots using a quad ratic curve. Tokyo:
University of Tokyo and Fuji Electric Corporate Research and Development, Ltd.
[25] IdMind - Engenharia de Sistemas, Lda – Blimp Zepper 40, with bubble shape for extra lift,
Functional Report . Lisboa: 2002.
[26] Analog Devices, Inc. – VisualDSP++ 4.0, linker and utilities manual. revis ion 2.0 . USA: April
2006.
[27] Analog Devices, Inc. – ADSP-BF561 Blackfin Processor Hardware Reference. R evision 1.1 .
USA: February 2007.
93
[28] Analog Devices, Inc. – Blackfin Embedded Symmetric Multiprocessor (DataShe et). USA,
2006.
[29] Manual do USARSim – USARsim-manual_3.1.1.pdf – Prepared by Jijun Wang, Edited by
Stephen Balakirsky. USARSim V 3.1.1, A game-based simulation of mobile robots. 2007;
Web Sites: [30] Site do projecto RESCUE: http://rescue.isr.ist.utl.pt/
[31] Site de apoio aos formatos de imagem: http://www.fourcc.org/yuv.php#UYVY
[32] Site comunidade USARSim: http://sourceforge.net/projects/usarsim
[33] Site National Institute of Standards and Technology: http://www.nist.gov/
[34] Site Unreal Wiki: http://wiki.beyondunreal.com/wiki/Karma
[35] Site da plataforma de comunicação com o UT2004: http://www.planetunreal.com/gamebots/
[36] Site do unreal engine 2, motor do UT004: http://udn.epicgames.com/Two/WebHome.html
[37] Fórum de ajuda ao USARSim: http://sourceforge.net/forum/forum.php?forum_id=486389
[38] Suporte à utilização do motor KARMA: http://udn.epicgames.com/Two/KarmaReference.html
[39] UnrealEd – Importar objectos: http://udn.epicgames.com/Two/ImportingKarmaActors.html
[40] Física no motor de jogo do UT2004: http://udn.epicgames.com/Two/CollisionTutorial.html
[41] UT2004 – Física do jogo: http://udn.epicgames.com/Two/StaticMeshCollisionReference.html
[42] Ex. animação física: http://udn.epicgames.com/Two/ExampleMapsKarmaColosseum.html
[43] Aplicação gráfica 3D Studio Max 9.0 (versão trial de 30 dias de utilização):
http://usa.autodesk.com/adsk/servlet/mform?id=10083915&siteID=123112
[44] Site de suporte à conversão CAD-Unreal: http://udn.epicgames.com/Two/CADtoUnreal.html
[45] UnrealEd: Construção de mapas: http://wiki.beyondunreal.com/wiki/Mapping_Lessons
[46] Edição gráfica em 3DSMAX: http://wiki.beyondunreal.com/wiki/3D_Studio_Max
[47] USARSim e relatórios de testes: http://digilander.libero.it/windflow/eng/reports.htm
94
95
Anexos A (Cálculos Auxiliares)
96
A.1 – Cálculos do Modelo da Dinâmica do Passarola
A.1.1 - Determinação dos coeficientes do Modelo da Dinâmica
Será agora repetida a determinação dos coeficientes do modelo da dinâmica do Passarola, já
efectuada no projecto anterior [3], por se ter alterado o sistema inicial do robô Passarola e também
por questões de correcção de alguns cálculos anteriormente realizados nesta secção.
Se se assumir, por simplificação, tal como realizado no projecto anterior [3], que o dirigível pode ser
aproximado por um elipsóide/esferóide, deve escolher-se os valores do semi-eixo maior de
comprimento a e semi-eixo menor de comprimento b de maneira a que o volume ocupado pelo
elipsóide seja igual ao volume do dirigível. Sabendo pelas especificações do dirigível [25] que o seu
volume VP = 5,5 m3 e sabendo que o volume Ve de um elipsóide é dado por:
2..3
4baPIVe = ,
pode escolher-se a = 3.25/2m e b = 1.8/2m tal que o volume do elipsóide Ve = 5,5135m3, cuja forma
se encontra representada à escala na Figura A.1.
Figura A.1 – Aproximação da forma do dirigível Passarola a um elipsóide com igual volume.
Comece-se então por determinar os termos de massa virtuais M A (2.19) utilizando as fórmulas
mencionadas em [3], dadas por:
−++−−−
−==
=−
−==
−−=
))(()(2
))((
5
1
0
2
2
002222
0022
0
0
0
0
αββα
ββ
αα
abab
abNM
K
mZY
mX
zy
x
zy
x
&&
&
&&
&
, (A.2)
(A.1)
97
onde m é a massa do veículo, agora obtida pela lei de Arquimedes9, partindo do principio que o
dirigível se encontra a pairar no ar, em equilíbrio de forças (fg = fb):
KgmKgmVm arP 15,7.2928.15,5 33 =×=×= −ρ ,
em que arρ é a massa volúmica do ar seco (PTN) e VP é igual ao volume de ar deslocado pelo
dirigível. As constantes 0α e 0β são parâmetros característicos do elipsóide e são dados por:
−=
−+−−=
−
−+−=
2
3
2
20
3
2
0
1
1
1ln
2
11
1
1ln
2
1)1(2
a
be
e
e
e
e
e
ee
e
e
e
β
α
.
Resolvendo as equações agora mencionadas são obtidos os valores para os termos de massa
virtuais, apresentados na Tabela A.1:
Tabela A.1 – Valores dos termos de massa virtuais e valores intermédios.
Parâmetro Valor
Xx 2,3947
Yy 4,2818
Zz 4,2818
Kx 0
My 0,4221
Nz 0,4221
a 1,625
b 0,9
e 0,6933
αααα0 0,5018
ββββ0 0,7491
Para a determinação da matriz de inércia I do veículo , sendo o robô constituído por três partes:
balão + gôndola dos motores (gM) + gôndola do controlador (gC), é também necessária a divisão do
cálculo em três partes correspondentes, onde se determina a matriz de inércia de cada elemento,
descrito no referencial do seu próprio corpo, e só depois, com base nas relações entre os
referenciais, se referem os seus valores no referencial do veículo b, através da aplicação da método
9 A lei de Arquimedes diz: Todo o corpo mergulhado total ou parcialmente num fluido recebe, da parte deste, uma impulsão vertical, de baixo para cima, de intensidade igual à do peso do volume de fluido deslocado pelo corpo.
(A.3)
(A.4)
98
oportuno dado pela fórmula de Steiner. Por último somando-se todas as matrizes obtidas, obtendo-se
a matriz de inércia final do dirigível Passarola.
Sejam agora calculados os termos da matriz de inércia do veículo. A matriz de inércia do balão em
relação ao seu centro de massa, que neste caso coincide com o centro geométrico do elipsóide, é
dada por:
=
zz
yy
xx
b
I
I
I
I
00
00
00
, onde
+=
+=
=
)(.154
)(.154
.158
222
222
4
babaI
babaI
baI
balãozz
balãoyy
balãoxx
πρ
πρ
πρ
.
Sabendo que a massa do balão (aproximado a um elipsóide) mb é dada por:
2.3
4bam balãob πρ=
e conhecendo-se o valor de mb, dado pela diferença entre o peso total do veículo m e o peso das
duas gôndolas Mgm e
Cgm a bordo do dirigível:
KgmmmmCM ggb 65,2)5,4(15,7)( =−=+−= ,
pode calcular-se o valor da densidade do balão balãoρ , obtendo-se por fim, para a matriz de inércia
do balão, os valores da Tabela A.2:
Tabela A.2 – Valores da matriz de inércia do balão do dirigível Passarola.
Parâmetro Valor (Kg)
Ixx 0,8586
Iyy 1,8288
Izz 1,8288
ρρρρbalão 0,4807Kg.m-3
Para cada uma das gôndolas, tendo estas a forma de um paralelepípedo, dadas as suas dimensões
por a x b x c e a sua massa por mg, a sua matriz de inércia é dada por:
=
zz
yy
xx
g
I
I
I
I
00
00
00
, onde
+=
+=
+=
)(121
)(121
)(121
22
22
22
camI
cbmI
bamI
gzz
gyy
gxx
.
(A.5)
(A.6)
(A.7)
(A.8)
99
Sabendo que KgmmCM gg 25,225,4 === de maneira a que o dirigível se encontra equilibrado, e
conhecidas a dimensões da gôndolaM – 0,15 x 0,15 x 0,40 (m) e da gôndolaC – 0,22 x 0,1 x 0,22 (m),
obtiveram-se a matrizes de inércia correspondentes, descritas na Tabela A.3:
Tabela A.3 – Valores da matriz de inércia das gôndolas do dirigível Passarola.
Parâmetro Valor (Kg)
Ixx 0,00844
Iyy 0,03422 Gôndola dos
motores Izz 0,03422
Ixx 0,01095
Iyy 0,01095 Gôndola do
controlador Izz 0,01815
Determinadas as matrizes de inércia dos três elementos, no referencial do próprio corpo, são agora
obtidas as matrizes correspondentes no referencial do corpo do veículo b, utilizando a fórmula de
Stainer:
)( 33xCO IrrrrmII ΤΤ −−= ,
onde IO representa a matriz de inércia do veículo, em relação ao seu referencial de corpo b, IC
representa a matriz de inércia do corpo em relação ao seu centro de massa, r é o vector que une o
centro de massa do corpo ao referencial b, em coordenadas deste último, e I3x3 é a matriz
identidade. Para a conclusão deste cálculo, é ainda necessário conhecer a localização do referencial
b no corpo do dirigível, tendo-se para tal, que se recorrer ao cálculo auxiliar da posição do centro de
massa do veículo. Considere-se a Figura A.2:
Figura A.2 – Esquema com as relações entre as posições dos referenciais do dirigível Passarola.
Sabendo que a massa total do veículo é 7,15Kg e que a massa das gôndolas é 4,5Kg, onde d3 = d4 e
CM gg mm = , pode escrever-se que:
)( 211 ddm
mmd CM gg +
+= .
(A.9)
(A.10)
100
Como o valor de d1 + d2 é conhecido e é igual a 1,0m, pode-se calcular o valor da posição do centro
de gravidade do Passarola, em relação ao centro do balão, concluindo-se que:
..63,01 GCmd ==
Conhecidos também os valores d3 = 0,6m e d4 = -0,6m, para o cálculo de r, calculadas e somadas as
novas matrizes de inércia no referencial b, obtém-se:
=8288,100
08806,20
009104,1
ObI
−
−=
8442,004995,0
01522,10
4995,003165,0
MOgI ;
=8281,004995,0
01290,10
4995,003190,0
COgI
Por fim, para a matriz de inércia total I, obteve-se:
5012,3;1618,5;5458,2diagIIII
CM OgOgOb =++=
Escrevendo agora, de forma explícita, a matriz de inércia do sistema M na sua forma final, com a
adição dos termos de massa virtuais, obtém-se:
9233,35839,5;5458,2;4318,11;4318,11;5447,9diagM = .
A matriz de amortecimento aerodinâmico linear D , não foi recalculada neste projecto, por se tratar
de um processo moroso e de alguma complexidade, e por não se ter considerado urgente a
realização da sua correcção, mantendo-se por isso os valores determinados em [3].
09,0;3,0;1,0;78,0;78,0;1904,0diagD =
Para a determinação da matriz de forças de restituição G , tendo sido calculado a posição do centro
de massa do dirigível por (A.11) sabe-se que zb = -0.63m, sabendo que o seu peso é dado por (A.3),
e usando g = 9,8m.s-2 para o valor da aceleração da gravidade, pode escrever-se de forma explicita:
0,14,44,14,44,0,0,0 −−= diagG
(A.11)
(A.12)
(A.13)
(A.14)
(A.15)
(A.16)
101
Por fim calcula-se a matriz B com recurso à medição da localização dos actuadores em relação ao
referencial do corpo do veículo b, onde XMD = 0,7m, XMT = -1,6m, ZMD = 0,4m e ZMT = 0m,
obtendo-se:
−−
=
06,10
7,004,0
000
100
000
001
B
A.1.2 – Correcção dos coeficientes da matriz D e M
Com base nos dados experimentais obtidos na Secção 3.2 e conhecendo as expressões dos
coeficientes da matriz A e b, apresentadas no capitulo 2, é possível escrever o sistema de equações
(A.18) e (A.19) e corrigir por conseguinte alguns dos parâmetros mais importantes da matriz D e da
matriz M, anteriormente determinados na Secção A.1.1:
=−−=
⇔
=−
−−=−⇔
−=
−−
−=−⇔
−=
−−
−=
)3(33,13
)3(33,1
075,0
1).(075,01,0
1075,0
).(1
1,0
1
).(1
1,7
7,7
u
u
u
u
u
uu
u
uu
Xm
DXm
D
Xm
DXm
Xmb
DXm
a
&&
&
&
&
&
=−−=
⇔
−=−
−−=−⇔
−−=−
−−
−=−⇔
−=
−−
−=
6,12
78,3
119,0
5,1).(119,03,0
5,1119,0
).(1
3,0
1
).(1
2,12
12,12
ν
ν
ν
ν
ν
νν
ν
νν
&&
&
&
&
&
Ym
DYm
D
Ym
DYm
Ymb
DYm
a
Tabela A.4 – Valores dos coeficientes das matrizes D e M.
Du -1,33(3)
Dv -3,78
m-Xu 13,33(3)
m-Yv 12,6 Se considerarmos ainda que a massa do dirigível, dada por (A.3), é m = 7,15Kg, pode-se ainda
determinar os respectivos coeficientes da matriz de massas virtual MA, concluindo-se que:
KgXu 18,65,7)3(33,13 =−=&
KgYv 45,515,76,12 =−=& .
(A.17)
(A.18)
(A.19)
(A.20)
(A.21)
102
A.2 – Validação do Modelo Teórico da Dinâmica
Tendo em vista a obrigatória concordância entre a resposta do modelo teórico e a resposta do
modelo real do robô Passarola, foram efectuados alguns testes em Matlab ao modelo matemático
deduzido no Capítulo 2, numa fase prévia à construção do simulador Matlab apresentado no
Capítulo 5. Aqui, foi verificada a congruência de movimentos deste modelo em relação ao modelo
real, aquando da aplicação de primitivas simples na entrada do sistema (correspondente aos
actuadores do robô real), concluindo-se sobre a veracidade das respostas/modelo apresentadas com
base no conhecimento do comportamento real do dirigível Passarola. No diagrama de blocos da
Figura A.3 apresenta-se o esquema simulink utilizado nos testes do modelo do Passarola.
Figura A.3 – Diagrama de blocos simulink utilizado no teste do modelo matemático da dinâmica do Passarola.
Atribuindo ao modelo uma orientação inicial igual a 45º e partindo da situação de repouso, na posição
(0,0) do referencial do mundo f, foi obtida a resposta do sistema da Figura A.4 b), após aplicação dos
sinais de entrada da Figura A.4 a) no sistema da Figura A.3.
Figura A.4 – Teste 1 ao comportamento do modelo teórico: a) Entrada do sistema; b) Saída do sistema.
Modelo Teórico do Passarola
a) b)
Forças aplicadas versus Tempo
(m)
(m)
103
Neste primeiro teste é possível concluir que o movimento observado na saída do sistema está de
acordo com o resultado esperado para o robô real, no caso da aplicação de iguais forças nos
actuadores do mesmo. Inicialmente é observado um movimento rectilíneo com aproximadamente
10m de comprimento, com o sentido e direcção inicial aplicados no modelo, resultado da aplicação
isolada da força X de valor 1N, durante o intervalo t = [0, 20]s, sendo esta atitude coerente com a
realidade. Após este primeiro movimento é observado um segundo movimento circular no sentido
inverso, segundo f, resultado da aplicação do escalão 0,8N em FMT (motor traseiro) em t = 20s,
produzindo-se um binário no robô em torno do eixo dos zz, que o leva a descrever continuamente
uma trajectória circular até t = 60s. Neste segundo movimento é também possível verificar a
coerência de comportamentos entre o robô real e o seu modelo, embora aqui se possa realçar que a
nobreza dos comportamentos do modelo não corresponde à realidade uma vez que o robô real
possui assimetrias inerentes à sua construção física, que o impossibilita de descrever o movimento
circular perfeito sem que seja aplicado controlo nos sinais de entrada.
Num segundo teste foi realizada a experiência oposta do teste anterior, para verificação do efeito do
binário no modelo teórico, em comparação com o comportamento real. A orientação inicial aplicada
no modelo foi 45º e fez-se iniciar o sistema no ponto (0,0) de f, partindo da situação de repouso.
Após a aplicação dos sinais da Figura A.5 a) foi obtida a resposta da Figura A.5 b).
Figura A.5 – Teste 2 ao comportamento do modelo teórico: a) Entrada do sistema; b) Saída do sistema.
Neste segundo teste fica confirmada a validade do modelo uma vez que o movimento observado na
saída do modelo corresponde em definitivo ao comportamento real observado no dirigível Passarola.
Aplicada uma força de valor constante no actuador traseiro, é gerado um binário no dirigível em torno
do seu centro de massa, ficando o dirigível a girar sobre si próprio. Nesta situação, como foi aplicada
uma pequena força X no modelo, para que este movimento fosse perceptível, era esperado que o
movimento produzido fosse um pequeno movimento circular em torno da origem do referencial, tal
como é apresentado pela Figura A.5. Em t = 35s, sendo retirada a força responsável pela produção
do binário no modelo, é iniciado um movimento rectilíneo tal como esperado, fazendo-se notar a zona
de transição entre os movimentos, onde bem visível a simulação do efeito da inércia do robô.
a) b)
(m)
(m)
104
A.3 – Identificação de Sistemas no Passarola
Subsistema XZ – Parte X
Para a realização da identificação do Subsistema XZ – Parte X foi programado na unidade de
controlo do robô a aplicação de uma força constante de 2N nos motores de propulsão, com um sinal
PWM de duty cycle = 8,0%. Fez-se iniciar a experiência com o dirigível em repouso e obteve-se a
sequência de imagens (capturada a partir de uma máquina de filmar doméstica a bordo do Passarola)
resumida na Figura A.6.
Figura A.6 – Imagens do vídeo de identificação do Subsistema XZ – Parte X.
Sabendo as dimensões dos tacos de madeira do chão do pavilhão e sabendo as distâncias entre as
linhas dos campos (Figura A.9), foi possível construir um mapa de distâncias (descritas em f) para a
sequência de imagens capturada (pseudo-calibração da câmara), permitindo o cálculo da localização
do Passarola em cada imagem do vídeo. Analisadas, em Matlab, todas as imagens do vídeo de
identificação, foi possível traçar um gráfico Posição versus Tempo para o movimento descrito pelo
Passarola, tal como é apresentado na Secção 3.2.
105
Subsistema de Direcção
No caso da identificação do Subsistema de Direcção foi aplicada uma força constante de -2N no
motor de rotação, programado na unidade de controlo do robô com um sinal PWM com duty
cycle = 9,0%. O dirigível partiu da situação de repouso tendo sido capturado o vídeo resumido na
Figura A.6 (capturado a partir de uma máquina de filmar doméstica colocado a bordo do Passarola).
Figura A.7 – Imagens do vídeo de identificação do Subsistema de Direcção.
Analisadas em Matlab imagem a imagem do vídeo de identificação, foi possível traçar um gráfico
Orientação vs Tempo do movimento descrito pelo Passarola, apresentado na Secção 3.2, a partir do
cálculo da orientação temporal dos tacos do chão do pavilhão, com recurso à técnica da Figura A.8.
Figura A.8 – Técnica de medição do movimento angular o dirigível a partir de uma imagem do chão do pavilhão. y (pixels)
X(p
ixel
s)
106
A.4 – Construção das Tabelas Duty Cycle - Velocidade
Em seguida é apresentado o método construção das tabelas de conversão das unidades de controlo,
com base nos testes de aceleração e rotação do dirigível, gravados em vídeo (anexados em DVD):
Tabela A.5 – Análise dos vídeos de testes para a construção da tabela Duty Cyle – Velocidade Linear.
Nome Ficheiro duty cycle (10x%) Ti (s) Tf(s) ∆∆∆∆T(s)
Dist. precorrida entre linhas (m) V (m/s) Vmédia(m/s)
(…)34_50f.mov 50 35,53 50,53 15 azul 2 - branca 5 -14 -0,93 -1,01
(…)35_50f.mov 50 43,87 56,73 12,86 azul 2 - branca 5 -14 -1,09
(…)32_60f.mov 60 15,67 37,27 21,6 branca 2 - branca 5 -12 -0,56 -0,62
(…)33_60f.mov 60 32,53 44,27 11,74 branca 4 - azul 2 -8 -0,68
(…)36_77f.mov 77 30,73 44,2 13,47 azul 2 - branca 5 14 1,04 1,03
(…)36_77f.mov 77 37,07 48,93 11,86 branca 4 - branca 1 12 1,01
(…)16_80f.mov 80 56,6 67,13 10,53 branca 4 - azul 1 14 1,33 1,26
(…)17_80f.mov 80 31,6 43,27 11,67 azul 2 - branca 5 14 1,20
(…)38_82f.mov 82 31,6 40,93 9,33 azul 2 - branca 5 14 1,50 1,47
(…)38_82f.mov 82 18,33 28 9,67 branca 4 - azul 1 14 1,45
(…)28_88f.mov 88 30,93 38,27 7,34 azul 2 - branca 5 14 1,91 1,90
(…)28_88f.mov 88 50,53 57,93 7,4 branca 4 - azul 1 14 1,89
(…)31_95f.mov 95 56,27 62,4 6,13 azul 2 - branca 5 14 2,28 2,33
(…)31_95f.mov 95 33 38,87 5,87 branca 4 - azul 1 14 2,39
Tabela A.6 – Análise dos vídeos de testes para a construção da tabela Duty Cyle – Velocidade Angular.
Nome Ficheiro duty cycle (10x%) Ti (s) Tf (s) ∆∆∆∆T(s) Rotação (rad) V(rad/s) Vmédia(rad/s)
_dvcr066.mpg 60 50,56 65,08 14,52 -4PI -12,57 -0,87 -0,86
_dvcr066.mpg 60 52,37 59,66 7,29 -2PI -6,28 -0,86
(…)22_65r.mov 65 58 64,73 6,73 -3PI/2 -4,71 -0,70 -0,68
(…)22_65r.mov 65 40,2 47,4 7,2 -3PI/2 -4,71 -0,65
(…)23_70r.mov 70 47,13 61,33 14,2 -2PI -6,28 -0,44 -0,42
(…)23_70r.mov 70 14,13 21,93 7,8 -3PI/2 -3,14 -0,40
(…)24_77r.mov 77 23,33 48,4 25,07 5PI/2 7,85 0,31 0,31
(…)24_77r.mov 77 10,4 30,87 20,47 2PI 6,28 0,31
(…)21_84r.mov 84 10,67 16,2 5,53 PI 3,14 0,57 0,56
(…)21_84r.mov 84 59 64,73 5,73 PI 3,14 0,55
(…)25_90r.mov 90 16,07 25,2 9,13 2PI 6,28 0,69 0,71
(…)26_90r.mov 90 29,93 38,53 8,6 2PI 6,28 0,73
Figura A.9 – Dimensões das linhas dos campos do pavilhão de testes. Técnica de medição do movimento linear.
107
Anexos B (USARSim)
108
B.1 – Introdução ao USARSim
No desenvolvimento de aplicações robóticas, a simulação digital dos robôs reais, dos seus
comportamentos, complexos na sua maioria e de cenários de teste, pode ser considerada como uma
das partes determinantes do projecto de controlo, sendo em muitos casos essencial para a sua
manutenção, uma vez que pode tornar-se excessivamente trabalhoso fazer todo o desenvolvimento
da aplicação de controlo e de comportamentos, no robô real, com todas as dificuldades que os
sistemas reais acrescem (baterias, espaço necessário, comunicações, condições ambientais, etc).
Deste modo um simulador, mais simples e portátil, construído com base numa representação fiel dos
comportamentos do robô real, permite oferecer ao investigador um prático sistema de estudo, para
um rápido desenvolvimento de protótipos, assumindo o importante papel de ferramenta de teste e de
debug para várias tarefas de alto-nivel, à semelhança do que o robô real faria num ambiente real,
lançando por fim, o projecto para a etapa final de desenvolvimento (implementação no robô) com
maior segurança de sucesso, ficando a pequenos passos de ser finalizada, ou aperfeiçoada.
Neste caso, sabendo que um dirigível é um robô volumoso, com muitas condicionantes de utilização,
com uma dinâmica complexa não-linear e com um ambiente de teste distinto, foi importante realizar
uma escolha consciente para um simulador 3D, para desenvolvimento do controlo do robô em estudo.
Exige-se, por conseguinte, que se encontre um simulador 3D realista, com capacidades para simular
a dinâmica correcta dos robôs e dos objectos do meio ambiente, baseado em modelos físicos, para a
correcta avaliação dos seus comportamentos, representando a interacção entre estes e o meio
circundante o mais próximo possível da realidade e em tempo real.
USARSim (Urban Search and Rescue Simulator) [32] é um simulador robótico baseado no motor de
jogo comercial Unreal Engine [36], aplicado no conhecido jogo Unreal Tournment 2004 (multiplayer
combat-oriented first-person shooter) da EpicGames. Neste simulador foram já construídas várias
arenas de teste para novos robôs, criadas pela National Institute of Standards and Technology (NIST)
[33] assim como vários robôs orientados para tarefas de busca e salvamento em meios urbanos
(USAR - Urban Search & Rescue). Aqui, várias questões relacionadas com a modelação, a animação
e o rendering de ambientes virtuais, já se encontram resolvidas, uma vez que este motor, por ser
desenvolvido para jogos 3D multiplayer suportadas na rede Internet contém, por defeito, todas as
ferramentas necessárias para o efeito da simulação gráfica e física multi-plataforma. Utiliza o estado-
da-arte com eficiência, providenciando ferramentas para um rápido desenvolvimento de objectos e de
novos ambientes (através da aplicação Unreal Editor) e torna possível a definição de novos
comportamentos dos objectos através de um script de linguagem ad-hoc (Unreal Script), baseando a
definição da dinâmica dos corpos rígidos no motor físico proprietário Karma [34]. Para o controlo dos
robôs no simulador o USARSim realiza a gestão da interface TCP/IP para definição de mensagens de
comando standart de modo a que a linguagem de programação do controlador possa ser uma
qualquer que se deseje, desde que contenha as bibliotecas de comunicação por rede.
109
Na Figura B.1 apresenta-se a arquitectura do simulador USARSim. Nas caixas a tracejado está
representado o lado do utilizador onde se pode proceder ao estudo do controlador utilizando o
simulador. Abaixo destas caixas está representado o simulador, providenciando o ambiente virtual
interactivo para os utilizadores. O sistema utiliza a arquitectura cliente/servidor. Acima da caixa
Network encontra-se o lado do cliente – Unreal Client –, onde é realizada a construção gráfica do
ambiente de simulação, podendo-se alternar a visão entre a imagem da câmara do robô ou a imagem
livre do meio ambiente na visão de um observador (third person). A troca de dados entre o cliente e o
servidor é realizada através da network.
Figura B.1 – Diagrama de blocos do simulador USARSim.
Com efeito esta arquitectura cliente-servidor, suportada pelo simulador USARSim, pode ser utilizada
de forma muito vantajosa para o desenvolvimento do controlador do robô, uma vez que realiza o
desacoplamento da simulação robótica do processamento inteligente de comportamentos, permitindo
o uso de máquinas dedicadas para levar a cabo os cálculos computacionais de planeamento e
controlo, e até mesmo o uso das máquinas e do código dos robôs reais.
110
Analisando, resumidamente, as vantagens deste simulador, destacam-se:
- Flexibilidade : o simulador permite a simulação de diferentes robôs, desconhecidos a priori,
bem como sensores e actuadores. O ambiente virtual genérico onde os robôs são colocados
é também fácil de modelar;
- Realismo físico : a interacção entre robôs e entre os robôs e o meio ambiente é modelado
através das leis físicas da dinâmica de copos rígidos, gerando resultados físicos plausíveis;
- Realismo visual : a aparência de todo o sistema gráfico é construída com precisão, de forma
a garantir leituras correctas dos sensores (por exemplo: câmara, laser, encoders, etc), com a
possibilidade de navegar com o robô utilizando a imagem realista da sua própria câmara, ou
utilizando a visão de um observador imaginário (third person), controlada pelo utilizador. Para
além disso fornece ainda uma imagem atractiva ao utilizador.
- Eficiência : a simulação é realizada de forma eficiente permitindo uma frequência de vídeo
elevada (full frame rate);
- Modularidade : é fácil de acrescentar e modificar as características do meio ambiente e dos
robôs, incluindo o input/output de sensores;
- Controlador genérico : o simulador é suficientemente flexível para ser utilizado com o
mesmo código de programação do robô real utilizando a facilidade da comunicação TCP/IP.
Em conclusão, o simulador USARSim afigura-se como uma aposta promissora para o suporte da
simulação do robô em estudo, com a implementação de várias funcionalidades importantes e com
facilidades de extensão. Por outro lado, o Unreal Engine tem um suporte industrial significativo, sendo
que, um simulador baseado neste motor, irá beneficiar de novas versões/actualizações do mesmo,
assim que elas estiverem disponíveis, com baixo esforço de adaptação.
B.2 – Comunicação e Controlo
A comunicação entre o Unreal e o controlador, suportada pela aplicação Gamebots (desenvolvida
para o efeito) é realizada através da abertura de sockets TCP/IP, seguindo um protótipo fixo de
mensagens para correcta interpretação das mesmas.
Sabendo que, o socket do servidor se encontra à escuta, por defeito, no porto 3000, e o utilizando
como endereço IP o endereço da máquina onde está alojado o servidor, facilmente se consegue criar
um socket TCP/IP e iniciar o controlo dos robôs no ambiente virtual do simulador, enviado e
recebendo mensagens. Uma vez estabelecida a ligação com o robô, ela permanece activa enquanto
o socket existir, sendo necessário um novo socket por cada novo robô introduzido no ambiente de
simulação, uma vez que a ligação é única por cada robô.
111
B.2.1 – O protocolo
O protocolo de comunicação utilizado é o protocolo da aplicação Gamebots, onde todas as
mensagens enviadas seguem o seguinte formato:
data_type segment1segment2segment3 … ,
onde:
data_type : indica qual o tipo de dados, sendo utilizadas letra maiúsculas para a sua
designação, tal como INIT, STA, SEN, DRIVE etc.
segment : é uma lista de pares propriedade/valor, estando o nome da propriedade e o
valor separados por um espaço, tal como “Location 52,-58,-4”, onde o nome
da propriedade é ‘Location’ e o valor é ‘52,-58,-4’.
Para a definição de mensagens este protocolo prevê ainda que todas as mensagens ou comandos
sejam terminados com “\r\n”, de forma a indicar ao Gamebots que a mensagem terminou.
Na comunicação entre o servidor e o cliente, as mensagens que circulam na rede podem ser
agrupadas numa de duas categorias distintas, mensagens ou comandos.
B.2.2 – Comandos
Para efectuar pedidos ao servidor, tais como adicionar um robô no mapa, mudar a configuração de
uma câmara ou dar instruções de movimento ao robô o utilizador dispõe de vários comando
pré-estabelecidos, sendo possível adicionar novos comandos, como novas funcionalidades. Dentro
dos vários comandos disponíveis destacam-se os comandos da Tabela B.1:
Tabela B.1 – Comandos importantes do USARSim.
INIT Adicionar um robô ao ambiente de simulação
DRIVE Acciona o movimento do robô/componentes
SET Controla junções, sensores, manipuladores,..
MISPKG Controla um tipo de objecto particular no simulador – Mission Package, constituído por um conjunto de junções (ex: pan/tilt camera)
TRACE Traça o caminho que o robô descreve
B.3 – Robô Passarola no USARSim
No simulador USARSim, encontram-se actualmente disponíveis um total de oito robôs terrestres,
entre eles o ATRV-Jr, o P2AT e o P2DX, modelos familiares na área de investigação robótica, do tipo
112
uni ciclo com direcção diferencial (diferential drive), quatro veículos do tipo carro, de utilização
humana (Ackerman-steered vehicles), para utilizações outdoor de teste de algoritmos de condução
automática. Estão também disponíveis dois robôs com locomoção por pernas (legged robots), um dos
quais do tipo Humanóide, e por fim um veículo marítimo, do tipo submarino, e apenas um veículo
aéreo, do tipo Helicóptero.
Existem também vários cenários disponíveis para simulação, com ambientes indoor e ambientes
outdoor. Embora se constate que, até ao momento não existe nenhum robô semelhante a um dirigível
neste simulador e que, o único modelo aéreo disponível é muito recente, verifica-se que todos os
ambientes de navegação (terrestre, marítimo e aéreo) já se encontram implementados no simulador,
significando que toda a estruturada de suporte para novos veículos já se encontra codificada e
introduzida no USARSim. Desta forma, a única tarefa delegada ao investigador para a utilização do
seu protótipo no simulador, caso este não exista, é a construção do modelo gráfico e físico do
mesmo, e/ou novo ambiente de simulação, cuja informação necessária se encontra bem
documentada no manual do simulador [29] e nos sites de apoio [34], [36] e [37].
B.3.1 – Modo de utilização avançada
A construção e codificação do modelo do Passarola, no simulador USARSim será explorada em
detalhe na presente secção. Para a implementação do dirigível no USARSim, estiveram subjacentes
alguns conhecimentos em modelação 3D e programação em C++, assim como o conhecimento da
dinâmica do dirigível para uma fiel representação dos seus comportamentos.
Em resumo, a primeira etapa (neste caso, uma das partes mais importantes para a simulação) é a
construção de um modelo geométrico de todos os objectos utilizados para a construção do protótipo,
cujo resultado final será a representação gráfica do novo robô no simulador, sobre o qual irão incidir
os comandos de controlo e sobre o qual é aplicada a física dos corpos rígidos do motor de jogo. A
segunda etapa passou pela construção do robô virtual em si, onde são programadas as classes que
descrevem o funcionamento do robô e das partes constituintes, onde é montado o robô com as partes
e os sensores e onde é associado um gráfico 3D (desenho tridimensional) com o comportamento
físico respectivo. Por último personalizou-se o modelo construído, implementando novos padrões de
controlo e novos comandos para actuação.
A simulação da mecânica de robots neste simulador é baseada num modelo genérico de robô,
construído com a ajuda do motor físico de corpos rígidos KARMA, a partir do qual todos os robôs
derivam, estendendo a classe KRobots e fazendo a tradução do código de simulação para os
comandos de jogo do motor do Unreal, tais como movimentos, visão no referencial do robô, registo
do robô no jogo, etc.
113
Figura B.2 – Esquema da hierarquia das classes de robôs no motor do Unreal.
No modelo do robô, cada protótipo é constituído por:
- chassis : o corpo do robô;
- componentes : os componentes mecânicos, tais como: rodas, uniões/articulações, suporte da
câmara, etc., que são utilizados para a construção do robô;
- junções : restrições de movimento que juntam duas peças do robô;
- componentes anexos : componentes auxiliares anexos ao robô, tais como sensores.
B.3.2 – Passo 1: Construção do Modelo Geométrico 3D
Assim sendo, seguindo a primeira etapa sugerida, começou-se por construir o gráfico 3D do dirigível
e dos seus componentes, do tipo static mesh10, com a consciência da importante tarefa de conseguir
expressar todas as características visuais e funcionais do modelo real e ao mesmo tempo conseguir
transmitir ao motor físico do jogo, as características físicas relevantes para a simulação fiel da
dinâmica do mesmo.
10 Todos os sólidos devem ser do tipo static mesh. O motor KARMA apenas funciona bem com sólidos rígidos. Como vantagem estes tipos de sólidos aceleram a o rendering gráfico 3D.
114
AutoCad
Desta forma, sabendo pelo manual do simulador, que o AutoCAD, entre outros, utiliza um dos
formatos de gráficos 3D suportados pelo editor do Unreal (formato DXF), e sendo o AutoCAD uma
ferramenta de fácil acesso e de simples utilização, escolheu-se este software (AutoCad 2008) para a
construção do modelo geométrico do Passarola, recorrendo às suas funcionalidades gráficas 3D.
Conhecidas as características físicas do Passarola, de trabalhos anteriores [3] e [5] – Figura B.3, e
escolhida uma escala simples, só para efeitos de proporcionalidade do modelo – escala 1:1, foi obtido
o modelo geométrico do Passarola, representado na Figura B.4 nas diferentes vistas, guardado no
formato conveniente para posterior importação pelo UnrealEd.
Figura B.4 – Projecto do dirigível Passarola em Autocad 2008.
Figura B.3 – Características físicas do Passarola.
115
3DSMax
A ideia básica para a importação de um modelo geométrico para o editor do Unreal, consiste na
conversão desse modelo num formato que o editor consiga ler. Mesmo tendo sido finalizado o modelo
no AutoCad, no final desta fase o modelo ainda não se encontrava preparado para a importação para
o UnrealEd, pois é exigida ainda a tradução dos dados por um programa de modelação 3D (p.ex. 3D
Studio Max). Esta necessidade deve-se ao facto do UnrealEd importar os modelos usando o formato
ASE, o qual não é suportado directamente por vários programas de desenho. Por este facto, depois
de concluído o modelo geométrico no AutoCad, houve ainda a necessidade de passar o modelo
geométrico do Passarola pelo programa 3D Studio Max 9.0 [43], para actualização da geometria,
referenciais e texturas. Importou-se, por conseguinte, o modelo no formato DXF, do AutoCad para o
3DSMax, obtendo-se o modelo representado na Figura B.5. Recorrendo às indicações do sítio da UDN,
para conversão de dados para o Unreal [44], finalizou-se a construção do corpo do modelo do
Passarola, passando-se em seguida para a sua importação para o UnrealEd.
Figura B.5 – Modelo do Passarola no 3DSMax 9.0.
UnrealEd
Dentro do programa de edição do Unreal, a missão de adicionar um novo modelo ao motor de jogo é
bastante simples, como é mostrado em [39], sendo apenas necessário executar Import *.ASE file no
menu File do Static Mesh Browser, e seleccionar o pacote e o grupo onde vai ser guardado o modelo.
A descrição do armazenamento do modelo em pacotes e em grupos encontra-se em anexo. Como
textura para o gráfico do dirigível foi utilizada, uma textura já existente no simulador, com cor
116
semelhante à cor pretendida para o novo modelo, por questões de simplificação, uma vez que esta
característica não é um factor determinante no desempenho do robô no simulador e pode revelar-se
uma tarefa temporalmente dispendiosa.
Construído o corpo do Passarola, continuou-se a sua construção, agora no UnrealEd,
acrescentando-se aqui as restantes partes constituintes do dirigível ao novo modelo, isto é, os
hélices, as barras de suporte dos motores impulsores, com os respectivos motores e o suporte da
câmara de vídeo. No caso das barras e dos motores, sendo estes geometricamente simples de
representar, utilizou-se para a sua construção as ferramentas de construção 3D do UnrealEd, com
base em comandos básicos aprendidos em [45], de desenho de cilindros, aplicando-se
posteriormente uma textura, já existente, para a sua construção tridimensional. No caso dos hélices e
do suporte da câmara de vídeo, uma vez que já existiam modelos geométricos destes componentes
noutros modelos já implementados (p.ex.: AirRobot), foram utilizadas cópias destes modelos,
devidamente escalados e orientados para aplicação no modelo do Passarola, tendo-se completado
desta forma toda a construção geométrica do modelo do Passarola.
Durante construção do novo modelo para o dirigível, para que o motor de física de corpos rígidos –
KARMA, simulasse correctamente a sua dinâmica, teve que se ter em atenção a escala final do
modelo, dentro do editor do Unreal, e também a sua orientação final, tendo sempre o cuidado de
verificar a escala da grelha de desenho e os referenciais dos vários planos, antes de salvar o modelo
para o pacote final, no static mesh browser. Por exemplo, para escalonar o corpo do dirigível
construiu-se uma caixa com 1000x500x500uu (Unreal Units), equivalente aos 4x2x2m reais do balão,
redimensionando o robô de acordo com a referência da caixa. Para o acerto dos hélices e para as
barras de suporte, seguiu-se o mesmo procedimento.
De forma a garantir que a atitude do robô é calculada correctamente, o referencial utilizado na
caracterização do modelo do dirigível foi o referencial representado na Figura B.6, levando a sua
incorrecta definição ao erro no cálculo dos ângulos de picth, yaw e roll, pelo motor físico.
Figura B.6 – Orientação final do modelo do dirigível. O eixo dos xx aponta no sentido da cabeça do dirigível e o
eixo dos yy aponta para a sua direita.
117
Inserção de física no modelo
Para adicionar as leis da física ao mais recente modelo do USARSim, foi necessário compreender em
primeiro lugar, como divulgar no motor de jogo a presença do gráfico 3D do dirigível como um gráfico
animado, passível de manipulação por comandos de controlo, deixando assim de pertencer ao
cenário, onde neste momento assumia apenas a posição de um sólido estático. Tal como descrito em
[38], para utilizar o motor físico KARMA para dirigir o movimento de qualquer actor no Unreal, é
decisivo executar ainda por um conjunto de passos, onde se define a relação do modelo com o
ambiente exterior, mas antes de mais é preciso activar o KARMA no gráfico 3D. Isso é conseguido
através da atribuição de primitivas de colisão ao modelo, formas geométricas simples, tais como
esferas, cubos, cilindros e formas convexas, envolventes ao modelo e/ou às partes constituintes,
definindo um conjunto de pontos de colisão do modelo com o ambiente circundante, apelidado no
Unreal por Collision Model. A associação destas primitivas de colisão ao modelo, é elementar para o
motor físico, pois, para além de simplificar a geometria do modelo, acelerando a simulação, gera
informação física básica sobre o modelo, tal como a sua distribuição de massas, a matriz de inércia e
o centro de massa, estruturando desta forma conhecimento material susceptível de manipulação
física.
Figura B.7 – Modelos de colisão adoptados para o gráfico 3D do dirigível e partes constituintes:
a) suporte da câmara de video, b) hélice e c) barra de suporte dos motores.
Consciente desta necessidade foi então obrigatório construir, ainda nesta fase, os vários modelos de
colisão para o modelo do dirigível para que o pacote do modelo fosse salvo e dado com finalizado já
c)
b)
a)
118
com toda essa informação. Adicionou-se então uma destas primitivas aos vários objectos do modelo
do dirigível, com ajuda do UnrealEd, seguindo os passos descritos na secção “Creating collision
models” do sítio da UDN em [40] e [41], tendo-se obtido e salvo os modelos representados na Figura
B.7.
B.3.3 – Passo 2: Construção do Robô Virtual
Nesta fase foram construídas as várias classes do novo modelo, onde se definiu o comportamento
esperado das várias partes constituintes do robô, efectuando-se a programação das funções de cada
parte e suas contribuição para a deslocação do robô. Foram definidas as características físicas de
todo o robô, e foi montado o robô peça a peça, com base nas junções do motor físico KARMA,
providas de movimentos com princípios/limitações físicas. Para o cumprimento desta segunda fase
foram utilizadas como referência as classes dos robôs já existentes, observando de perto o
funcionamento da classe do AirRobot, único robô da classe de veículos aéreos.
As classes do Robô Virtual Passarola
Para definir a existência do robô Passarola no simulador foi necessário em primeiro lugar criar a
classe dos robôs dirigíveis «BlimpRobot», que estende a classe «AerialVehicle», onde foi definido o
comportamento geral do dirigível, e só então se criou a classe «Passarola», onde foram definidas as
propriedades físicas respectivas do Passarola, de modo a que este agisse como pretendido, cuja
estrutura se assemelha com o seguinte excerto de código:
class Passarola extends BlimpRobot config(USAR);
defaultproperties
//properties
A classe AerialVehicle estende a classe-mãe dos veículos do USARSim «KRobot» e é a classe de
configuração e apresentação dos robôs desta classe. Para a introdução do robô Passarola no
USARSim, algumas alterações foram efectuadas nesta classe, por necessidade de programação e
para introdução das características da nova classe BlimpRobot, tais como a definição de um novo
esquema de direcção/comandos, em nome do novo tipo de robôs, descrito no terceiro passo desta
secção.
A classe BlimpRobot é a classe mais especializada da classe de robôs do tipo dirigível. Foi construída
com o intuito de delinear toda a programação de forças e binários aplicados, específicos dos robôs
desta categoria. Dentro desta classe foi então implementada alguma programação de gestão de
memória dinâmica para manipulação dos vários componentes do robô e para os cálculos físicos do
movimento do robô, e foram programados também os comandos de controlo da animação do robô, a
animação das partes constituintes, tais como a rotação física dos hélices e das barras de suporte dos
119
motores e ainda os seus efeitos físicos perante o meio ambiente, isto é, geração de forças e binários,
responsáveis pela locomoção do robô.
Por fim, a classe do Passarola, sendo a classe do novo robô por excelência, contem toda a
informação física específica do protótipo. Aqui foi definido o gráfico 3D do Passarola, construído no
passo 1, como sendo o gráfico correspondente ao chassis deste novo robô e foram definidos os
valores dos vários atributos físicos necessários para a correcta simulação 3D realista do mesmo.
Esses atributos, alterados com base em [38] e em [42], à semelhança do que existe nos vários robôs
do simulador, são apresentados na Tabela B.3 da Secção B.9. Aqui destacam-se os atributos
KLinearDamping e KAngularDamping, responsáveis pela afirmação do momento de inércia do
dirigível dentro do simulador, nos movimentos linear e angular respectivamente.
Uma vez que, nos robôs aéreos a força resultante a transmitir ao chassis do robô provem da força de
impulsão que o hélice produz quando, ao rodar sobre o seu eixo, desloca uma massa de ar no
sentido contrário ao movimento, proporcional à sua rotação, no caso da simulação USARSim essa
acção não se encontra estruturada, pois não existe a simulação da mecânica de fluidos no simulador.
Desta forma, o modo de cálculo da deslocação deste tipo de robôs é efectuado de forma diferente do
que é feito com os modelos terrestres, nos quais o contacto das rodas com a superfície é o
responsável pela sua motricidade. O cálculo da força F e do binário T equivalentes, produzidos pela
acção dos respectivos hélices envolvidos na locomoção do veiculo, é então realizado com recurso ao
conhecimento da posição dos impulsores no corpo do robô, na actual frequência de rotação dos
hélices e no seu correspondente valor de pitch11, e na massa total do robô, através de (B.1) e de
(B.2):
dt
dvmF = ;
bFT = .
Posteriormente são simulados, no modelo USARSim, os resultados destes efeitos por aplicação da
força/binário equivalente no chassis do robô, em termos de Unidades Unreal, produzindo assim o
efeito desejado correspondente ao comportamento verdadeiro do robô real. O cálculo da conversão
da velocidade linear/angular desejada para as forças e binários do motor físico KARMA, são dadas
pelas funções convertVelocityToForce() e convertRotationalToForce(), cuja calibração é apresentada
na Secção B.4.
As classes das Partes Constituintes
As partes constituintes do modelo, tais como as barras de suporte dos motores, e os hélices
propulsores e de cauda, exercendo funções semelhantes às rodas dos veículos terrestres, foram
11 Relação utilizada para caracterização de um hélice, que indica qual a distância teórica percorrida pelo hélice numa revolução (mpr – metros por revolução), assumindo que não existe derrapagem. Como na realidade existe derrapagem este valor será sempre menor que o valor teórico.
(B.1)
(B.2)
120
construídas em classes derivadas da classe «Propellers» que estende a classe «USARTire», da qual
derivam as rodas dos robôs terrestres. As classes construídas são: «PassarolaRightBar»,
«PassarolaLeftBar», «PassarolaThrustPropeller», «PassarolaTailPropeller», todas obedecendo à
estrutura de classe seguinte:
class part_class_name extends Propeller;
defaultproperties
//properties
onde part_class_name é o nome atribuído à classe e, properties as suas propriedades físicas. Para
os hélices e para as barras, foram utilizadas as propriedades padrão da classe Propeller, que
permitem que o objecto rode sem dificuldade sobre o seu eixo, estando já definidos os modelos de
colisão para todas as partes. Foi ainda definido o valor de pitch de cada um dos hélices para cálculo
da força produzida, com base no valor real lido nas pás dos hélices utilizados no Passarola, sendo
estes, para os hélices propulsores 0,12mpr e 0,1mpr para o hélice de cauda. Na classe das barras
foram ainda modificadas as propriedades HingePropGap e MotorSpeed para calibração da junção de
rotação das barras (servomotor), de modo a reproduzir o movimento real de rotação dos motores no
plano XZ.
No caso da câmara e do respectivo suporte, tendo estes propriedades e funções diferentes, foram
descritas em classes próprias para o efeito como extensão da classe KDPart do motor do Unreal,
com a estrutura:
class part_class_name extends KDPart;
defaultproperties
//properties
onde part_class_name é o nome atribuído à classe, sendo no presente caso a classe
«PassarolaCameraTilt» e a classe «PassarolaCameraBase», respectivamente. Em defaultproperties
foi incluída a designação do gráfico 3D atribuído à parte, funcionado este objecto apenas como
estrutura anexa ao chassis do robô. Para estas classes foram utilizados os valores padrão dos
parâmetros físicos, cujo resultado provoca o efeito físico desejado de rotação suave da câmara.
Todos os valores dos parâmetros físicos associados ao motor físico KARMA, atribuídos aos objectos
do simulador, são dados em uu (Unidades Unreal).
Montagem do robô
Depois de implementadas as classes e os atributos de todos os elementos associados ao novo
modelo, prosseguiu-se com a construção do robô efectuando a conexão entre as partes e o chassis
do modelo, utilizando para tal pares de junções de ligação. O cumprimento deste processo foi
realizado recorrendo à descrição de um ficheiro de configuração do simulador intitulado por
«USARBot.ini» onde estão construídos todos os robôs, sensores e actuadores do USARSim, sendo
121
apenas necessário programar, para cada par, o tipo de junção desejada, a posição e orientação da
junção em relação às partes e o eixo de rotação, numa estrutura própria para o efeito designada por
«JointPart», com a seguinte estrutura (ver Tabela B.4 na Secção B.9):
struct JointPart
// Part
var() name PartName;
var() class<KActor> PartClass;
var() vector DrawScale3D;
// Joint
var() class<KConstraint> JointClass;
var() bool bSteeringLocked;
var() bool bSuspensionLocked;
var() float BrakeTorque;
var() name Parent;
var() vector ParentPos;
var() vector ParentAxis;
var() vector ParentAxis2;
var() vector SelfPos;
var() vector SelfAxis;
var() vector SelfAxis2;
;
Na montagem do robô virtual Passarola foram utilizadas os dois tipos de junções disponíveis no
simulador: a junção «KCarWheelJoint» (roda de carro) e a junção «KDHinge» (dobradiça), Figura B.8.
Uma junção KCarWheelJoint conecta duas partes por dois eixos e é formada por outros dois tipos de
junção programáveis (hinge e prismatic). Um dos eixos é o eixo de rotação, em torno do qual a parte
pode girar o outro eixo é o eixo de direcção e de suspensão, podendo-se girar a parte e amortecer
impactos sobre este eixo, sendo por este motivo uma junção multi-usos. A junção KDHinge apenas
possui um eixo de comando, em torno do qual se pode fazer girar um objecto (p.ex.: um hélice ou
uma barra de suporte), comandado por ângulo, velocidade ou binário, podendo-se com ela simular o
funcionamento de um motor/servo-motor.
Figura B.8 – Junção de conecção tipo KDHinge (à esquerda) e tipo KCarWheelJoint (à direita).
Desta forma criou-se uma nova secção dentro do ficheiro «USARBot.ini», localizado na pasta
..\UT2004\System, de nome «[USARBot.Passarola]», e foram descritas, de forma sequencial (a
ordem importa), a ligações entre as partes do novo modelo. Resumidamente, foi descrito no ficheiro a
união das barras de suporte dos motores ao corpo do dirigível e a ligação de cada um dos três
motores de rotação dos hélices ao respectivo suporte, utilizando as junções apresentadas para o
controlo do ângulo de rotação das barras e para rotação dos hélices. Nesta altura considerou-se
ainda a hipótese de utilização da função de direcção da junção KCarWheelJoint para o controlo do
122
ângulo de rotação das barras dos motores, integrando assim todas a funções destas partes numa só
junção, mas essa opção foi descartada pelo facto de não existir realismo na rotação das barras e dos
motores, existindo ainda interferência entre os gráficos das partes no movimento de rotação dos
hélices propulsores. Nesta secção foram ainda montados dois sensores ao chassis do robô Passarola
como partes auxiliares. A secção [USARBot.Passarola] implementada no ficheiro USARBot.ini
encontra-se descrita na Secção B.10.
De notar que, neste processo, o facto de se poder utilizar um ficheiro de configuração para o
processo de montagem do robô, é uma mais valia para o simulador uma vez que não é necessária
compilação após alteração/montagem do robô para correr o novo modelo no simulador, e a
realização de debug é mais eficaz.
Montagem de partes auxiliares
Depois de criado e montado o robô Passarola foram adicionados dois sensores à sua composição,
implementados como partes auxiliares ao robô, sendo eles uma câmara, com campo de visão (FOV –
fields of view) e ângulo de tilt ajustáveis, satisfazendo as funcionalidades do robô real e um sensor de
posição e orientação GroundTruth, que introduz informação adicional sobre a localização do robô no
simulador para efeitos de informação. Para a programação destes sensores como partes auxiliares foi
utilizada a estrutura «sItem», descrita em seguida, implementada na secção [USARBot.Passarola] do
ficheiro USARBot.ini, com a designação de «Camera» para a câmara de vídeo e «Sensors» para o
sensor GroundTruth (ver Tabela B.5 na Secção B.9):
struct sItem
var class<Actor> ItemClass;
var name Parent;
var string ItemName;
var vector Position;
var vector Direction;
var rotator uuDirection;
;
B.3.4 – Passo 3: Optimização do Robô
Finalizados os dois últimos passos o novo robô já se encontra pronto e a funcionar dentro do
simulador, enviando correctamente a informação obtida através dos sensores e obedecendo a
comandos primários de rotação das junções constituintes, cuja acção básica é responsável pela
movimentação tridimensional do robô Passarola.
Adiante, embora o robô já se encontre funcional ele ainda não se encontra concluído. Para que o
comportamento do dirigível Passarola fosse correctamente reproduzido no simulador foi ainda
necessário criar e ajustar comandos de controlo do tipo dos comandos reais, com as velocidades e
123
limitações físicas dos motores reais, realizando aqui a ligação fiel entre a realidade e a simulação. A
definição destes comandos foi feita com base no modelo real e foram escolhidos três comandos
distintos, para controlar cada uma das componentes da locomoção do robô:
− a deslocação linear;
− a deslocação angular;
− e a rotação da barra de suporte dos motores propulsores.
Unidades dos Sinais de Controlo
Outra reflexão afixa à questão dos comandos envolveu a escolha das grandezas a utilizar nos valores
dos mesmos, ponderada pelas suas vantagens de utilização directa no simulador e pela facilidade de
medição das grandezas no robô real, tendo sido escolhidas as grandezas:
− velocidade linear (m/s) para a deslocação linear;
− velocidade angular (rad/s) para a deslocação angular;
− ângulo de ataque (rad) para a rotação da barra de suporte dos motores propulsores, ou
seja, o ângulo que o módulo da velocidade linear faz com o eixo dos xx, tal como
representado na Figura 2.5:
Esta escolha para as unidades dos valores de controlo foram a opção mais acessível no momento da
implementação do modelo, uma vez que a medida destas grandezas no robô real, em função do duty
cycle do sinal PWM aplicado nos motores (unidade final do sinal utilizado para controlo), corresponde
à forma mais directa de obter a relação entre o sinal de controlo e o efeito produzido, ficando a sua
posterior calibração dentro do simulador, simplificada, pois as conversões de velocidade/ângulo para
as Unidades Unreal (uu) já se encontram implementadas no simulador, construídas a partir de tabelas
de experiências realizadas com o motor do Unreal. Foi ainda ponderada a utilização da grandeza
força (N) para a definição dos valores de controlo do robô, por se verificar que esta teria uma
utilização mais conveniente para os cálculos do controlador, mas esta ideia foi colocada de parte por
se verificar que esta solução conduzia à mesma solução adoptada. Nesta ideia estaria envolvida a
construção de uma tabela de experiências com o modelo real – sinal PWM versus Força, com recurso
a um dinamómetro, e esta teria que ser posteriormente passada para o simulador, para simular o
efeito real destas forças no modelo virtual, implicando nesse caso que fosse conhecido com clareza o
efeito das forças em Newton no comportamento do dirigível, para a sua fiel reprodução no simulador.
Por conseguinte, teriam que ser convertidos estes novos valores para Unidades Unreal (uu), com
novas calibrações, e isso traduzir-se-ia basicamente em saber qual a velocidade final do dirigível
depois de aplicada uma força, pois é este o comportamento final visível do dirigível, após atingir o
equilíbrio entre a força aplicada e as forças de atrito. Pois isto é o que acontece quando se diz
directamente ao simulador que se pretende um determinada velocidade para o robô, estando por
conta deste, o cálculo matemático do comportamento físico realista, cujas leis físicas do movimento
são asseguradas pelo motor físico KARMA.
124
Observando a escala de grandezas físicas envolvidas no processo de controlo do dirigível:
verifica-se que a solução encontrada, correspondente à conversão do sinal PWM para Velocidade,
abrange todas as grandezas física intermédias, mas apenas realça as grandeza relevantes para a
caracterização do sistema.
O Novo Comando de Controlo
O comando desenvolvido é apresentado seguidamente e pode ser utilizado com um, dois ou três
argumentos:
DRIVE XZAngle floatThrustPropeller float TailPropeller float
Onde:
XZAngle float ‘float’ é o ângulo de rotação da barra de suporte dos motores de propulsão, que torna possível a mudança de altitude do robô (i.e. cima/baixo).
ThrustPropeller float ‘float’ é o módulo do vector de velocidade a ser aplicado nos motores propulsores para mover o robô no plano X0Z (i.e frente/trás e cima/baixo, de acordo com o valor de XZAngle).
TailPropeller float ‘float’ é o valor da velocidade de rotação do robô (i.e girar para a esquerda/direita).
Exemplo:
DRIVE XZAngle 0.5 irá rodar a barra de suporte do motor 0.5 radianos.
DRIVE ThrustPropeller 1 irá propulsionar o robô a uma velocidade de 1m/s.
DRIVE TailPropeller -0.3 irá girar o robô para a esquerda com uma velocidade de 0.3 rad/s.
Sinal eléctrico PWM (%) Rotação dos hélices (rad/s) Força (N) Aceleração (m/s2) Velocidade (m/s)
125
Por fim, o novo modelo USARSim (Figura 6.9 e Figura B.10) encontra-se concluído e pronto a ser
utilizado em investigação e desenvolvimento de sistemas de decisão e controlo, tendo sido fornecido
à comunidade USARSim online [32], como contribuição para o desenvolvimento do simulador.
Figura 6.9 – Novo robô do simulador USARSim – dirigível Passarola, implementado à semelhança do protótipo.
real Passarola da propriedade do ISR – Lisboa.
Figura B.10 – Pormenor do novo modelo USARSim – Passarola, num cenário de emergência.
126
B.4 – Calibração do Modelo Físico do Passarola
Tal como planeado no início deste projecto, teve-se como objectivo intermédio do projecto Passarola,
avaliar e testar o controlador desenvolvido, na plataforma de simulação 3D realista USARSim. Depois
de realizada a identificação de sistemas no modelo real, surgiu, entre os contributos já abordados, a
oportunidade de ajustar a atitude do modelo de simulação à atitude genuína do Passarola. Por
conseguinte, partindo-se das características de Posição-Tempo e Orientação-Tempo obtidas no
Capítulo 3, foi possível ajustar os parâmetros físicos do modelo USARSim Passarola, de tal forma
que se conseguiu implementar no simulador, a reprodução perfeita do comportamento identificado no
modelo real, com o modelo virtual do Passarola, Figura B.11. Com efeito, dadas as provas de
realismo da simulação, é possível afirmar que o modelo construído neste simulador 3D realista –
USARSim, alcança a cumplicidade almejada entre os mundos virtual e real, tornando esta etapa
intermédia de simulação bastante importante para a validação e calibração do controlador, permitindo
ainda que a transição final para o sistema real seja realizado com bastante segurança e de forma
fiável, tal como foi verificado nos testes finais do projecto, realizados com o robô Passarola.
Figura B.11 – Resultados da afinação do modelo USARSim do Passarola.
Descrição do método
O método de ajuste da física do modelo USARSim do Passarola foi realizado através do Matlab, com
recurso à comunicação por rede com o servidor de jogo UT2004, através de um processo iterativo de
calibração do simulador pela observação da resposta do sistema.
Utilizando a Instrument Control toolbox do Matlab foi possível criar e estabelecer uma ligação TCP/IP
com o servidor UT2004, utilizando o porto de processo do servidor 3000 e o endereço IP da
respectiva máquina com o USARSim. Estando tudo preparado para simulação, em Matlab e para
cada um dos subsistemas, foi iniciado o robô Passarola no mundo de simulação, através do
comando:
«INIT ClassName USARBot.Passarola Location 52,-58,-4»,
127
propondo-se em seguida que fossem repetidas, agora em simulação, as respectivas experiências de
identificação realizadas no Passarola, descritas na Secção 3.2.
Os comandos utilizados para as experiências foram:
Subsistema XZ – Parte X: «DRIVE ThrustPropeller 1.20»
Subsistema Direcção: «DRIVE TailPropeller 0.75»
onde o valor de velocidade linear, dado por ThrustPropeller, é igual a 1,20m/s e o valor de velocidade
angular, dado por TailPropeller, é igual a 0,75rad/s, sendo os comandos de actuação do robô dados
em unidades de velocidade, tal como descrito na Secção B.3.4. Estas velocidades, determinadas pelo
declive da respectiva zona estacionária da curva de identificação, aproximada por uma recta (Figura
3.1), são dadas por:
Subsistema XZ- Parte X: 20,110
0,12
1525
5,115,23 ==−−=XDeclive m/s.
Subsistema Direcção: 75,08
6
614
6,26,8 ==−−=DDeclive rad/s
onde estes resultados são os valores correspondentes à velocidade final atingida pelo dirigível após
aplicação de uma força de valor igual ao escalão utilizado na identificação do sistema real.
Figura B.12 – Ilustração de uma experiência de identificação/ajuste do modelo USARSim do robô Passarola.
Reproduzida a situação de identificação, após a aplicação do respectivo escalão no robô, em t = 0s,
foram lidas e interpretadas as respostas de estado, enviadas pelo servidor de jogo UT2004, do tipo:
«SEN Time 47.8487 Type GroundTruth Name GroundTruth Location 76.65,-58.02,-4.00
Orientation 0.00,0.00,6.28»,
(B.3)
(B.4)
128
representando-se, em tempo real, as sucessivas posições/orientações do robô, num gráfico de
Posição/Orientação-Tempo, para comparação com a característica do robô real (Figura B.12).
Estando finalizada a experiência de identificação do robô virtual Passarola, e realizada a análise
visual da diferença entre a resposta obtida e a resposta modelo, procedeu-se ao reajuste manual dos
parâmetros da física do robô, correspondentes ao factor de amortecimento linear KLinearDamping e
ao factor de amortecimento angular KAngularDamping na classe «Passarola», e aos factores de
conversão de velocidade para unidades de jogo, nas funções convertVelocityToForce() e
convertRotationalToForce(), da classe «BlimpRobot», para que a característica do modelo USARSim
se aproximasse da curva desejada. Efectuado este processo, de forma iterativa, por sucessivas
experiências de calibração e teste dos parâmetros físicos do robô USARSim, foi conseguida a
igualdade de características Posição/Orientação-Tempo entre o modelo virtual e o modelo real do
Passarola, que implica por sua vez, a igualdade de comportamentos entre o modelo virtual e o
modelo real, tal como desejado, assumindo a linearidade do sistema real para baixas velocidades.
Os valores obtidos para os parâmetros físicos do modelo USARSim do Passarola são:
KLinearDamping = 0.1uu KAngularDamping = 0.5uu.
As funções de tradução de unidades reais para unidade do simulador, com os respectivos factores de
conversão ajustados com base neste programa Matlab, são também agora apresentadas:
// Conversão de velocidade linear (m/s) para unidades unreal (uu)
Function float convertVelocityToForce(float VelocityToConvert) return 0.6574 * velocityToConvert;
// Conversão de velocidade angular (rad/s) para unidades unreal (uu) function float convertRotationalToForce(float rotationalToConvert) return 0.8712 * rotationalToConvert;
B.5 – Ambiente de simulação
A simulação do meio ambiente desempenha um papel importante na simulação. Ela providencia o
contexto para a simulação e só com ele a simulação faz sentido. No USARSim, vários ambientes
especializados foram já construídos com vista a várias tarefas de investigação, sendo os utilizadores
livres de alterar ou construir novas áreas de simulação, de acordo com os seus objectivos.
Perante a questão da escolha de uma arena do Unreal Tournament para ambiente de simulação,
sendo poucas as hipóteses de arenas no exterior, estas não correspondiam ao ambiente elegante
129
planeado para os efeitos deste projecto. A arena seleccionada para simulação foi, por conseguinte,
uma arena desenvolvida para investigação no âmbito do “DARPA Urban Challenge”, para teste de
algoritmos de condução, de nome ”Arda”, obtida em [32], e representada na Figura B.13. Esta arena
ao retratar uma simples estrada com linhas longitudinais de orientação torna-se ideal para o
desenvolvimento de algoritmos de seguimento de linhas e ainda seguimento de veículos sendo uma
arena exterior e ampla, perfeita para a utilização de um robô como o dirigível. Uma outra
característica especial desta arena é a simulação da queda de neve durante todo o seu
funcionamento, tornando-se numa característica interessante para a simulação de ruído de imagem
de câmara, quando utilizado controlo baseado em image servoing (realimentação por imagem).
Com o objectivo de aproximar esta arena às tarefas de navegação do dirigível, ao longo da
investigação, algumas alterações foram sendo efectuadas nos objectos da arena, através do editor do
Unreal – UnrealEd, para acompanhar o desenvolvimento do projecto, tais como modificação do
traçado das linhas de marcação das estradas, modificação da altitude da estrada para simular relevo
e ainda modificação dos sinais de transito STOP para simulação de perturbações no seguimento do
robô ATRVJr.
Figura B.13 – Arena utilizada como ambiente de simulação do dirigível, durante o projecto de investigação.
B.6 – Interfaces de Teste de Controlo
USAR_UI
USAR_UI é uma interface de teste de controlo escrita em Visual C++ 6.0 e apenas funciona em
Windows. Esta simples ferramenta de exemplo tem a possibilidade de se conectar ao servidor do
Unreal (por comunicação TCP/IP) e enviar qualquer tipo de comando para o simulador, ao mesmo
tempo que recebe e apresenta todas as mensagens enviadas para o controlador sobre o estado do
robô e dos sensores. Aqui é executado o processo básico e necessário para comunicar com o robô
130
dentro do simulador, tendo-se utilizado esta interface como suporte inicial para comunicação com o
simulador, promovendo a aprendizagem de utilização do simulador e funcionado ainda como prática
aplicação para teste do robô Passarola durante a fase da sua construção.
SimpleUI
SimpleUI é mais uma interface de exemplo para teste de controlo de robôs no USARSim, para
Windows, com a diferença de que se pode obter imagens de vídeo vindas do simulador e apenas tem
disponível para manipulação quatro robôs terrestres, entre os quais o ATRVJr. A principal vantagem
desta interface de exemplo é que possui integrados os comandos da velocidade e de direcção para
estes veículos, simplificados em botões de controlo, que facilitam de forma satisfatória a navegação
destes veículos, propiciando a utilização desta interface como controlador manual prático do ATRVJr,
para teste e desenvolvimento do algoritmo de seguimento de veículos, implementado no dirigível
Passarola, poupando a implementação propositada de um controlador para o robô ATRVJr, apenas
para o efeito de teste do algoritmo de seguimento (Figura B.14).
Figura B.14 – Apresentação do ambiente de simulação com os robôs Passarola e ATRVJr.
131
B.7 - Lançamento do Simulador
Depois de instalado o simulador USARSim, para executar o simulador é necessário inserir o comando
de lançamento do servidor no modo “client only”, na linha de comandos, contendo o nome do mapa
que se pretende lançar, o tipo de jogo a executar e o ficheiro de configuração do simulador, com a
sintaxe descrita no exemplo que se segue:
onde map_name é o nome do mapa.
No caso do Passarola o comando utilizado foi:
De forma a facilitar o lançamento do simulador, aspirando do mesmo modo, poupar tempo na
introdução de linhas de comandos, começou-se deste cedo a utilizar um ficheiro batch
«ArenaPassarola.bat» para este mesmo fim, tendo sido copiadas as linhas de comandos de
lançamento do USARSim para este ficheiro, fazendo com que estes comandos fossem rapidamente
executados com um simples duplo clique no ícone do ficheiro.
B.8 – Debug no USARSim
Durante a construção do modelo do Passarola no UT2004, foi possível a utilização de alguns
comandos de debugging dentro da consola do Unreal, quando introduzido o robô no simulador em
“Client Mode Only”, que permitiram aperfeiçoar e compreender os comportamentos indesejados do
robô na simulação. Com estes comandos foi possível confirmar a localização do centro de massa do
robô, verificar a validade do modelo de colisão das várias partes do robô, e depurar o funcionamento
das ligações das partes constituintes ao chassis do robô, na fase de montagem do robô. Esta
ferramenta sendo tão poderosa, permite inclusive alterar as propriedades físicas do robô em tempo
real, permitindo verificar o seu efeito online, através do comando «editactor class=KRobot», o qual
permitiu afinar com grande facilidade o comportamento do modelo virtual do Passarola. Na Tabela B.
são apresentados e descritos os vários comando utilizados para depuração do modelo.
start ..\..\system\ut2004 Arena_Passarola?game=USARBot.USARDeathMatch?spectatoronly=1?TimeLimit=0?quickstart=true -ini=usarsim.ini
start path_to_bin_dir/ut2004 map_name?game=USARBot.USARDeathMatch?spectatoronly=1?TimeLimit=0?quickstart=true -ini=usarsim.ini
132
Tabela B.2 – Comandos utilizados para depuração do modelo USARSim.
showlog Este comando abre uma janela onde o ficheiro log é aberto em tempo
real. Em modo client mode, este comando permite de visualizar o output
do cliente e do servidor numa janela tipo DOS.
showdebug Comando que permite ao UT imprimir alguma informação de debug
directamente na janela do cliente, tal como a localização da câmara,
permitindo seleccionar novos pontos de iniciação do robô no mapa.
editactor class=<classname> Este comando permite a abertura da janela de propriedades do robô, tal
como no editor de jogo UnrealEd, permitindo ajustar todo o tipo de
parâmetros da simulação, incluindo os parâmetros físicos do modelo, em
tempo real. Exemplo: editactor class=KRobot.
B.9 – Tabelas anexas
Tabela B.3 – Parâmetros físicos do modelo Passarola, em Unidades Unreal (uu).
KActorGravScale 2,58
Multiplicador de gravidade individual, utilizado para melhorar o efeito da simulação visual do objecto KARMA
KMaxAngularSpeed 100 Limite de velocidade angular do robô
KMaxSpeed 25000 Limite da velocidade linear do robô
KLinearDamping 0,1
Quantidade de força aplicada para reduzir o movimento linear aplicado no objecto KARMA causando arraste translacional
KAngularDamping 0,5
Quantidade de força aplicada para reduzir o movimento angular aplicado no objecto KARMA causando arraste rotacional
KCOMOffset (X=0,0,Y=0,0,Z=-0,.63) Posição do centro de massa do objecto
bKNonSphericalInertia True Atribui ao objecto KARMA um tensor de inércia não-esférico
KInertiaTensor(0) 2,5458
Distribuição de massa do objecto – significa o quão difícil é rolar o objecto em torno de x.
KInertiaTensor(3) 5,1618 Significa o quão difícil é rolar o objecto em torno de y.
KInertiaTensor(5) 3,5012 Significa o quão difícil é rolar o objecto em torno de z.
KStartEnabled True Para o robô começar a simulação assim que é iniciado no simulador
bKDoubleTickRate True Para aumentar a precisão da simulação
KBuoyancy 1,00000 Permite que o objecto flutue livremente
KFriction 0,5 Para regular a resistência de fricção do ar na superfície
133
Tabela B.4 – Descrição dos parâmetros da classe Joint part.
PartName Nome da parte
PartClass Nome da classe da parte
DrawScale3D Escala X,Y, Z do objecto.
JointClass Nome da classe da junção (class'KCarWheelJoint' ou class'KDHinge')
bSteeringLocked Para bloquear/desbloquear a direcção da junção car-wheel joint.
bSuspensionLocked Para bloquear/desbloquear a suspensão da junção car-wheel joint.
BrakeTorque O valor do braço de força aplicado para travar a rotação da junção car-wheel joint.
Parent A parte ou chassis onde a junção é conectada
ParentPos Posição de conexão da junção com o parent
ParentAxis Para car-wheel joint é o eixo de direcção relativo ao parent. Para junção hinge é o eixo de rotação
ParentAxis2 Para a junção car-wheel joint é o eixo de rotação relativo ao parent
SelfPos Posição onde a junção é conectada à parte
SelfAxis Para uma junção car-wheel joint isto é o eixo de direcção relativo à parte. Para a junção hinge é o eixo de rotação
SelfAxis2 Para junção car-wheel joint isto é o eixo de rotação relative à parte
Tabela B.5 – Descrição dos parâmetros da classe SItem.
Tabela B.6 – Nome do ficheiro de arquivo dos gráficos 3D do modelo USARSim do Passarola.
Corpo do Passarola USARSim_Vehicles_Meshes.Blimp.BlimpBody
Barra esquerda motores USARSim_VehicleParts_Meshes.Blimp.BlimpLeftBar
Barra direita motores USARSim_VehicleParts_Meshes.Blimp.BlimpRightBar
Hélice do motor de cauda USARSim_Vehicles_Meshes.Blimp.BlimpTailPropeller
Hélice do motor propulsor USARSim_Vehicles_Meshes.Blimp.BlimpThurstPropeller
Corpo da câmara vídeo USARSim_VehicleParts_Meshes.Blimp.BlimpCameraBase
Suporte de rotação da câmara USARSim_VehicleParts_Meshes.Blimp.BlimpCameraTilt
ItemClass Nome da classe usada para crier o item.
Parent Objecto onde o item sera montado.
ItemName Nome do item.
Position Posição de montagem do item relativo ao parent.
Direction Orientação de montagem do item relativo ao parent.
uuDirection Variável reservada para armazenamento do parametro de orientação em uu.
134
B.10 – Ficheiro de configuração do Passarola
Excerto do ficheiro ..\UT2004\System\USARBot.ini com a exposição da secção de configuração do
modelo Passarola do USARSim:
B.11 – Manual USARSim do Robô Passarola
Na página seguinte é apresentado o manual de utilização do robô Passarola para o simulador
USARSim, facultado à comunidade online deste simulador, juntamente com todos os ficheiros
desenvolvidos para a construção do novo modelo. Actualmente o robô Passarola já se encontra
integrado no simulador USARSim e disponível para download para todo o público afecto em [32].
(…)
[USARBot.Passarola]
bDebug=False
Weight=5
Payload=2
ChassisMass=3
bMountByUU=False
JointParts=(PartName="Bar4",PartClass=class'USARMod els.Passarola_Barra_esq',DrawScale3D=(X=1.0,Y=1.0,Z=1.0),Parent="",JointClass=cla ss'KDHinge',ParentPos=(Y=-0.108,X=1.062,Z=1.028),ParentAxis=(Y=1.0),ParentAxi s2=(X=1),SelfPos=(Y=0.5),SelfAxis=(Y=1.0),SelfAxis2=(X=1.0))
JointParts=(PartName="Bar3",PartClass=class'USARMod els.Passarola_Barra_dir',DrawScale3D=(X=1.0,Y=1.0,Z=1.0),Parent="",JointClass=cla ss'KDHinge',ParentPos=(Y=0.108,X=1.062,Z=1.028),ParentAxis=(Y=1.0),ParentAxis2=(X =1),SelfPos=(Y=-0.5),SelfAxis=(Y=1.0),SelfAxis2=(X=1.0))
JointParts=(PartName="Counter_Propeller_1",PartClas s=class'USARModels.PassarolaPropeller_Frente',DrawScale3D=(X=1.0,Y=1.0,Z=1.0),bSu spensionLocked=true,Parent="Bar3",JointClass=class'KCarWheelJoint',ParentPos=(Y=0 .005,X=0.005,Z=-0.005),ParentAxis=(Y=1.0),ParentAxis2=(X=1.0),SelfP os=(X=0.0,Y=0.0,X=0.0),SelfAxis=(Y=1.0),SelfAxis2=(X=1.0))
JointParts=(PartName="Propeller1",PartClass=class'U SARModels.PassarolaPropeller_Frente',DrawScale3D=(X=1.0,Y=1.0,Z=1.0),bSuspensionL ocked=true,Parent="Bar4",JointClass=class'KCarWheelJoint',ParentPos=(Y=-0.005,X=0 .005,Z=-0.005),ParentAxis=(Y=1.0),ParentAxis2=(X=1.0),SelfP os=(X=0.0,Y=0.0,X=0.0),SelfAxis=(Y=1.0),SelfAxis2=(X=1.0))
JointParts=(PartName="Tail_Propeller",PartClass=cla ss'USARModels.PassarolaPropeller_Cauda',DrawScale3D=(X=1.0,Y=1.0,Z=1.0),bSuspensi onLocked=true,Parent="",JointClass=class'KCarWheelJoint',ParentPos=(Y=0.0,X=-1.356,Z=0.484),ParentAxis=(X=1.0),ParentAxis2=(Y=1. 0),SelfPos=(X=0.0,Y=0.0,Z=0.0),SelfAxis=(X=1.0),SelfAxis2=(Y=1.0))
MisPkgs=(PkgName="CameraPanTilt",Location=(Y=0.0,X= 1.05,Z=1.0572),PkgClass=Class'USARMisPkg.PassarolaCameraPanTilt')
Cameras=(ItemClass=class'USARBot.RobotCamera',ItemN ame="Camera",Parent="CameraPanTilt_Link1",Position=(Y=0.008,X=0.024,Z=-0.0007),Di rection=(Y=0.0,Z=0.0,X=0.0))
Sensors=(ItemClass=class'USARBot.GroundTruth',ItemN ame="GroundTruth",Position=(X=0.0,Y=0.0,Z=-0.0),Direction=(Y=0.0,Z=0.0,X=0.0))
(…)
135
PASSAROLA IN USARSIM Autonomous Blimp for Search and Rescue Missions
http://rescue.isr.ist.utl.pt
a) Real Passarola Robot. b) Simulated Passarola Robot.
Introduction
In USARSim, we use classname USARBot.Passarola to represent this robot.
In summary, Passarola has:
• Three propellers (two for the linear movement, vectoring 180 degrees (-90º to 90º),
and one on the tail for angular movements)
• One color camera that can tilt
• Weight: 5 Kg
• Payload: 2 Kg
In USARSim, the Passarola is equipped with
• One “tilt-only” color camera
The Passarola specification is as follows:
• Dimension: Length x Width x Height = 4.0m x 2.0m x 2.0m
• Maximum altitude velocity: 2 m/s
• Maximum linear velocity: 2 m/s
• Maximum rotational velocity: 1 rad/s
Configure it
It’s the same as P2AT.
136
Extended USARSim command for Passarola Robot
DRIVE XZAngle floatThrustPropeller float TailPropeller float
Where:
XZAngle float
‘float’ is the rotation angle of the support thrust motors bars, that make possible change the altitude of the robot (i.e up/down). If we use normalized values, the value range is -100 to 100 and corresponds to the bar’s minimum and maximum rotation angle, respectively. Otherwise, the value is the absolute rotation angle, in radians per second.
ThrustPropeller float
‘float’ is the module of the velocity vector to be applied by the front thrusters, to move the robot in the X0Z plane (i.e forward/backward and up/down as the value of XZAngle). If we use normalized values, the value range is -100 to 100 and corresponds to the robot’s minimum and maximum velocity, respectively. Otherwise, the value is the absolute linear velocity, in meters per second.
TailPropeller float
‘float’ is the rotational velocity (i.e left/right). If we use normalized values, the value range is -100 to 100 and corresponds to the robot’s minimum and maximum rotational velocity, respectively. Otherwise, the value is the absolute rotational velocity, in meters per second.
Normalized bool
Indicates whether we are using normalized values or not. The default value is ‘False’ which means absolute values are used.
Example:
DRIVE XZAngle 0.5 will rotate the support motor bars 0.5rad
DRIVE ThrustPropeller 1 will thrust the robot at a rate of 1m/s.
DRIVE TailPropeller -0.3 will rotate the robot to the left at a rate of 0.3rad/s.
Ricardo Alcácer ([email protected])
Institute for Systems and Robotics
March 2008