Calibração dos Acelerômetros de uma Unidade de Medição Inercial

Transcrição

Calibração dos Acelerômetros de uma Unidade de Medição Inercial
Universidade Federal de Minas Gerais
Curso de Graduação em Engenharia de Controle e Automação
Projeto de Fim de Curso
Calibração dos Acelerômetros
de uma Unidade de Medição Inercial
utilizando um Manipulador Robótico
Lucas Emídio Roque da Silva
Orientador: Leonardo Antônio Borges Tôrres
Supervisor: Guilherme Augusto Silva Pereira
Julho de 2010
Monografia
Calibração dos Acelerômetros de uma Unidade de Medição
Inercial utilizando um Manipulador Robótico
Monografia submetida à banca examinadora para avaliação curricular da disciplina PFCII, para obtenção do grau de Engenheiro
de Controle e Automação.
Belo Horizonte, Julho de 2010
i
Resumo
Este trabalho objetiva a especificação e modelagem de um manipulador
robótico visando a calibração dos sensores de uma unidade de medição inercial (IMU). Uma breve discussão a respeito dos requisitos do manipulador
para realização do trabalho aqui proposto permitiu a especificação do robô
R SMART SiX como objeto de estudo. Este manipulador consiste
COMAU
de uma estrutura antropomórfica com seis graus de liberdade e limite de
carga de seis quilos. A partir da escolha do manipulador, desenvolve-se a
modelagem cinemática, que é obtida seguindo o procedimento de DenavitHartenberg. A geometria do robô passa então a ser representada pelo Jacobiano do manipulador e pelas equações de cinemática direta, as quais são
validadas com dados reais do manipulador. Com base nos modelos obtidos, realiza-se a seguir a etapa de calibração dos sensores da unidade de
medição inercial que inclui, neste caso, três acelerômetros acoplados perpendicularmente entre si. Os três acelerômetros são calibrados por meio de uma
metodologia que prevê utilizar o robô para movimentar a IMU em diversas
orientações, de forma lenta o suficiente para que se possa considerar que a
única aceleração atuando sobre os sensores é a da gravidade. Esta, então,
é tomada como medida de referência e algoritmos de otimização são usados
para encontrar os parâmetros de calibração dos acelerômetros, que englobam tanto a sensibilidade e a polarização dos sensores, quanto o ângulo de
alinhamento entre os três acelerômetros. Observa-se, entretanto, que estes
parâmetros só são válidos para a faixa de medições de aceleração entre ±1g.
Abstract
The present work consists on the specification and modeling of a robotic manipulator aiming the calibration of sensors in an inertial measurement
unit (IMU), which includes a triaxial accelerometer and a gyrometer. The
requisites of the adequate manipulator to accomplish the objectives of this
R Smart SiX Industrial Rowork has led to the specification of the COMAU
bot as study object. This robot is an anthropomorphic structure with six
degrees of freedom and a 6 kg payload. From this, a kinematic model is obtained following the Denavit-Hartenberg procedure. The real robot geometry
is, therefore, represented by the Jacobian matrix and the forward kinematic equations, which are validated with real data. Based on the obtained
mathematical models, the accelerometers of the IMU are calibrated through
a methodology where the IMU is mounted to the end effector of the robotic
arm and the robot motion is sufficiently slow that gravity is effectively the
only acceleration acting on the accelerometers. The gravity is taken as the
reference measure and optimization algorithms are used to find calibration
parameters, such as sensitivity and bias. However, it is important to notice
that this calibration parameters are only valid for accelerations limited to
±1g.
Agradecimentos
Sumário
Resumo
i
Abstract
ii
Agradecimentos
iii
Lista de Figuras
x
Lista de Tabelas
xii
1 Introdução
1
1.1
Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Objetivos do Projeto . . . . . . . . . . . . . . . . . . . . . . .
2
1.3
Revisão Bibliográfica . . . . . . . . . . . . . . . . . . . . . . .
3
1.3.1
Estratégias de Controle de Posição . . . . . . . . . . .
5
1.3.2
Calibração de Sensores . . . . . . . . . . . . . . . . . .
9
1.4
Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . 11
2 Descrição do Sistema
12
2.1
Especificação do Manipulador . . . . . . . . . . . . . . . . . . 12
2.2
Descrição Física do Manipulador
3 Modelagem
. . . . . . . . . . . . . . . . 13
17
iv
SUMÁRIO
v
3.1
Modelo de Cinemática Direta . . . . . . . . . . . . . . . . . . 17
3.2
Jacobiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3
Validação do Modelo Cinemático . . . . . . . . . . . . . . . . 25
4 Calibração da Unidade de Medição Inercial
39
4.1
Modelagem para Calibração . . . . . . . . . . . . . . . . . . . 40
4.2
Processo de Aquisição de Dados . . . . . . . . . . . . . . . . . 43
4.3
Estimação dos Parâmetros . . . . . . . . . . . . . . . . . . . . 47
4.3.1
Calibração dos acelerômetros separadamente . . . . . . 48
4.3.2
Calibração dos acelerômetros simultaneamente . . . . . 49
4.3.3
Estimação dos parâmetros com dados simulados . . . . 49
4.3.4
4.3.5
4.3.3.1
Calibração individual dos dados simulados . . 50
4.3.3.2
Calibração simultânea dos dados simulados . 53
Calibração dos acelerômetros
. . . . . . . . . . . . . . 53
4.3.4.1
Calibração individual dos acelerômetros . . . 54
4.3.4.2
Calibração simultânea dos acelerômetros . . . 55
Análise dos resultados . . . . . . . . . . . . . . . . . . 56
5 Conclusão
63
5.1
Visão geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2
Resultados obtidos . . . . . . . . . . . . . . . . . . . . . . . . 64
5.3
Sugestões para trabalhos futuros . . . . . . . . . . . . . . . . . 65
A Modelagem Dinâmica
67
A.1 Modelagem por Formalismo
de Euler-Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.1.1 Princípio de D’Alembert . . . . . . . . . . . . . . . . . 68
A.1.2 Energia Cinética e Potencial . . . . . . . . . . . . . . . 70
A.1.3 Equações de Euler-Lagrange . . . . . . . . . . . . . . . 72
Conteúdo
vi
A.2 Modelagem para Simulação . . . . . . . . . . . . . . . . . . . 74
B Controle e Simulação
76
B.1 Estratégia de Controle . . . . . . . . . . . . . . . . . . . . . . 76
B.2 Resultados da Simulação . . . . . . . . . . . . . . . . . . . . . 78
B.2.1 Teste a Vazio . . . . . . . . . . . . . . . . . . . . . . . 80
B.2.2 Teste com Carga . . . . . . . . . . . . . . . . . . . . . 80
B.2.3 Teste com o Robô na Parede . . . . . . . . . . . . . . . 85
B.3 Análise dos Resultados Parciais . . . . . . . . . . . . . . . . . 85
Referências Bibliográficas
90
Lista de Figuras
2.1
R SMART SiX, (COMAU, 2005), pág. 3-2 . . . . . . 14
COMAU
2.2
R SMART SiX, (COMAU, 2005),
Área de trabalho do COMAU
pág. 4-2, 4-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3
R SMART
Esquema representativo das juntas e eixos do COMAU
o
SiX para sua posição de calibração (eixo 1 = 0 , eixo 2 = 0o ,
eixo 3 = −90o , eixo 4 = 0o , eixo 5 = 0o , eixo 6 = 0o ) . . . . . 16
3.1
R para
Modelo 3D gerado usando o pacote Robot do MATLAB
a representação de Denavit-Hartenberg do robô . . . . . . . . 19
3.2
Validação do modelo cinemático - Trajetória da garra do primeiro movimento. . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3
Validação do modelo cinemático - Primeiro movimento: Ângulos das juntas. . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4
Validação do modelo cinemático - Primeiro movimento: Comparação das posições X, Y e Z do manipulador e do modelo
cinemático. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5
Validação do modelo cinemático - Primeiro movimento: Comparação dos elementos da matriz de rotação do manipulador
e do modelo cinemático. . . . . . . . . . . . . . . . . . . . . . 29
3.6
Validação do modelo cinemático - Primeiro movimento: Erro
na comparação das posições X, Y e Z do manipulador e do
modelo cinemático. . . . . . . . . . . . . . . . . . . . . . . . . 30
3.7
Validação do modelo cinemático - Primeiro movimento: Erro
na comparação dos elementos da matriz de rotação do manipulador e do modelo cinemático. . . . . . . . . . . . . . . . . . 30
vii
LISTA DE FIGURAS
viii
3.8
Validação do modelo cinemático - Trajetória da garra do segundo movimento. . . . . . . . . . . . . . . . . . . . . . . . . 31
3.9
Validação do modelo cinemático - Segundo movimento: Ângulos das juntas. . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.10 Validação do modelo cinemático - Segundo movimento: Comparação das posições X, Y e Z do manipulador e do modelo
cinemático. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.11 Validação do modelo cinemático - Segundo movimento: Comparação dos elementos da matriz de rotação do manipulador
e do modelo cinemático. . . . . . . . . . . . . . . . . . . . . . 33
3.12 Validação do modelo cinemático - Segundo movimento: Erro
na comparação das posições X, Y e Z do manipulador e do
modelo cinemático. . . . . . . . . . . . . . . . . . . . . . . . . 34
3.13 Validação do modelo cinemático - Segundo movimento: Erro
na comparação dos elementos da matriz de rotação do manipulador e do modelo cinemático. . . . . . . . . . . . . . . . . . 34
3.14 Ângulos de Euler para a garra durante o segundo movimento.
35
3.15 Comparação dos valores de posição e orientação do robô manipulador real com o modelo cinemático desenvolvido, realçando
o efeito indesejado . . . . . . . . . . . . . . . . . . . . . . . . 36
3.16 Validação do modelo cinemático - Segundo movimento (com
40% da velocidade anterior): Erro na comparação das posições
X, Y e Z do manipulador e do modelo cinemático . . . . . . . 37
3.17 Validação do modelo cinemático - Segundo movimento (com
40% da velocidade anterior): Erro na comparação dos elementos da matriz de rotação do manipulador e do modelo cinemático 37
4.1
Rotações que definem a direção do eixo de medição dos acelerômetros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2
Rotações que definem a direção aceleração da gravidade. . . . 43
4.3
Representação do movimento executado pela garra do manipulador: O ângulo θ1 viaja de −160◦ a 160◦ , enquanto o ângulo
θ6 varia de −2500◦ a 2500◦ . Durante esse movimento, o ângulo
θ5 vai de −90◦ a 90◦ e de volta a −90◦ um total de 10 vezes. . 44
LISTA DE FIGURAS
ix
4.4
Sincronização dos sinais advindos dos acelerômetros e da transformação da gravidade usando a matriz de rotação do robô. . 46
4.5
Histograma da distribuição da frequência de amostragem praticada pelo robô. . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.6
Unidade de medição inercial CEA-FDASu. . . . . . . . . . . . 47
4.7
Estimação da sensibilidade do acelerômetro 1 para um conjunto crescente de dados simulados com diferentes níveis de
ruído branco. . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.8
Estimação da polarização do acelerômetro 1 para um conjunto
crescente de dados simulados com diferentes níveis de ruído
branco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.9
Erro na estimação dos parâmetros para o acelerômetro 1. . . . 57
4.10 Erro na estimação dos parâmetros para o acelerômetro 2. . . . 58
4.11 Erro na estimação dos parâmetros para o acelerômetro 3. . . . 58
4.12 Histograma do erro na estimação dos parâmetros para o acelerômetro 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.13 Histograma do erro na estimação dos parâmetros para o acelerômetro 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.14 Histograma do erro na estimação dos parâmetros para o acelerômetro 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.15 Validação dos parâmetros estimados para o acelerômetro 1. . . 61
4.16 Validação dos parâmetros estimados para o acelerômetro 2. . . 61
4.17 Validação dos parâmetros estimados para o acelerômetro 3. . . 62
B.1 Esquema de Controle de Posição por Torques Computados . . 78
R
B.2 Esquema MATLAB/Simulink
de Controle de Posição por
Torques Computados . . . . . . . . . . . . . . . . . . . . . . . 79
B.3 Comparação entre a posição real e a posição desejada para a
garra do manipulador (teste a vazio) . . . . . . . . . . . . . . 80
B.4 Comparação entre o ângulo real e o ângulo desejado para as
juntas do manipulador (teste a vazio) . . . . . . . . . . . . . . 81
LISTA DE FIGURAS
x
B.5 Comparação entre a velocidade real e a velocidade desejada
para a garra do manipulador (teste a vazio) . . . . . . . . . . 81
B.6 Comparação entre a velocidade angular real e a velocidade
angular desejada para as juntas do manipulador (teste a vazio) 82
B.7 Torque nas juntas do manipulador (teste a vazio) . . . . . . . 82
B.8 Comparação entre a posição real e a posição desejada para a
garra do manipulador (teste com carga) . . . . . . . . . . . . . 83
B.9 Comparação entre o ângulo real e o ângulo desejado para as
juntas do manipulador (teste com carga) . . . . . . . . . . . . 83
B.10 Comparação entre a velocidade real e a velocidade desejada
para a garra do manipulador (teste com carga) . . . . . . . . . 84
B.11 Comparação entre a velocidade angular real e a velocidade
angular desejada para as juntas do manipulador (teste com
carga) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
B.12 Torque nas juntas do manipulador (teste com carga)
. . . . . 85
B.13 Comparação entre a posição real e a posição desejada para a
garra do manipulador (teste com o robô na parede) . . . . . . 86
B.14 Comparação entre o ângulo real e o ângulo desejado para as
juntas do manipulador (teste com o robô na parede) . . . . . . 86
B.15 Comparação entre a velocidade real e a velocidade desejada
para a garra do manipulador (teste com o robô na parede) . . 87
B.16 Comparação entre a velocidade angular real e a velocidade
angular desejada para as juntas do manipulador (teste com o
robô na parede) . . . . . . . . . . . . . . . . . . . . . . . . . . 87
B.17 Torque nas juntas do manipulador (teste com o robô na parede) 88
Lista de Tabelas
2.1
R SMART
Limitações nos movimentos de cada eixo do COMAU
SiX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1
R
Representação de Denavit-Hartenberg para o robô COMAU
SMART SiX . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2
R SMART
Representação de Denavit-Hartenberg do robô COMAU
R
SiX, modificada para utilização no MATLAB
. . . . . . . . 20
3.3
Comparação dos erros de modelagem para o segundo movimento a 100% e a 40% de velocidade das juntas . . . . . . . . 38
4.1
Parâmetros usados na geração de dados simulados . . . . . . . 50
4.2
Parâmetros iniciais para otimização dos dados simulados sem
ruído (calibração individual) . . . . . . . . . . . . . . . . . . . 52
4.3
Parâmetros estimados para os dados simulados sem ruído (calibração individual) . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4
Parâmetros iniciais para otimização dos dados simulados sem
ruído (calibração simultânea) . . . . . . . . . . . . . . . . . . 53
4.5
Parâmetros estimados para os dados simulados sem ruído (calibração simultânea) . . . . . . . . . . . . . . . . . . . . . . . 53
4.6
Parâmetros iniciais para a calibração dos acelerômetros (calibração individual) . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.7
Parâmetros estimados para a calibração dos acelerômetros (calibração individual) . . . . . . . . . . . . . . . . . . . . . . . . 54
4.8
Parâmetros iniciais para a calibração dos acelerômetros (calibração simultânea) . . . . . . . . . . . . . . . . . . . . . . . . 55
xi
LISTA DE TABELAS
4.9
xii
Parâmetros estimados para a calibração dos acelerômetros (calibração simultânea) . . . . . . . . . . . . . . . . . . . . . . . 55
4.10 Parâmetros estimados para a calibração dos acelerômetros . . 56
4.11 Parâmetros finais estimados para a calibração dos acelerômetros 57
4.12 Ângulo entre os eixos dos três acelerômetros . . . . . . . . . . 60
A.1 Parâmetros físicos do manipulador utilizados para simulação . 75
B.1 Erros no posicionamento da garra para os testes efetuados em
simulação (Modelo Perfeito) . . . . . . . . . . . . . . . . . . . 88
B.2 Erros no posicionamento da garra para os testes efetuados em
simulação (Modelo Imperfeito) . . . . . . . . . . . . . . . . . . 89
Capítulo 1
Introdução
Este trabalho consiste na modelagem de um manipulador robótico real visando a calibração de uma unidade de medição inercial (IMU).
São abordadas questões como:
• Modelagem cinemática do manipulador;
• Validação do modelo no manipulador real e análises;
• Técnicas de calibração dos sensores de uma unidade de medição inercial,
com foco nos acelerômetros.
1.1
Motivação
Navegação Inercial é o processo pelo qual se estabelecem informações sobre
a posição e velocidade de um veículo com relação a um referencial por meio
de informações fornecidas por sensores tais como acelerômetros e girômetros
(Santana, 2005). Os sistemas de navegação inercial medem as acelerações
e velocidades angulares de um corpo e tornam possível o cálculo das mudanças de posição e atitude por meio de sucessivas integrações numéricas.
Uma Unidade de Medição Inercial (IMU) é um instrumento de medição que
possui três acelerômetros, que são montados sobre eixos ortogonais, e três
girômetros, que permitem determinar as componentes da velocidade angular
do corpo onde está presente (Lima, 2005).
A construção de um sistema de navegação inercial é uma tarefa bastante
complexa. Primeiramente porque é difícil alinhar perfeitamente os acelerôme1
1.2
Objetivos
2
tros e girômetros e, em segundo lugar, porque os sinais disponibilizados pelos
sensores sempre estarão contaminados por ruído e por erros dos próprios sensores que se acumulam com o passar do tempo (Santana, 2005). Para tratar
de forma adequada as distorções aleatórias nos sinais, utilizam-se algoritmos
de fusão sensorial, que permitem combinar dados obtidos de diferentes sensores em uma estimativa estatisticamente ótima. Um dos algoritmos de fusão
sensorial mais utilizados é o Filtro de Kalman (Julier and Uhlmann, 1997).
O grupo de Pesquisa e Desenvolvimento de Veículos Autônomos (PDVA)
da Universidade Federal de Minas Gerais (UFMG) tem trabalhado no desenvolvimento de uma Unidade de Medição Inercial. Os testes efetuados
embarcando-se a IMU em uma aeronave, entretanto, consomem tempo e
dinheiro. Testes realizados com a unidade embarcada em um veículo automotivo mostraram que esta não está sujeita às mesmas forças que aparecem
nos testes em aeronaves. Embarcar a IMU na garra de um manipulador robótico e percorrer com esta uma trajetória correspondente ao vôo de uma
aeronave de asa fixa seria uma solução para os problemas de tempo e custo,
além de submeter a IMU às mesmas acelerações observadas na aeronave.
Estes fatos servem de motivação inicial para estudar e aplicar técnicas
de modelagem em manipuladores robóticos com vistas a caracterização e
calibração de IMUs. Além disso, considera-se também o aprimoramento da
capacidade do aluno em aplicar os conhecimentos obtidos durante o curso de
Engenharia de Controle e Automação, nas áreas de modelagem de sistemas
e instrumentação.
A especificação do robô industrial a ser adquirido pela UFMG também
constituiu parte integrante deste trabalho e visa desenvolver no aluno a capacidade crítica de especificar um equipamento para um objetivo específico.
1.2
Objetivos do Projeto
Este trabalho teve como objetivos finais:
1. Especificação para compra de um manipulador robótico industrial com
6 graus de liberdade;
2. Modelagem cinemática do manipulador robótico e validação do modelo;
3. Utilização do manipulador real para calibração dos sensores (foco nos
acelerômetros) de uma Unidade de Medição Inercial;
1.3
Revisão Bibliográfica
3
4. Análise dos resultados.
1.3
Revisão Bibliográfica
Segundo (Spong and Vidyasagar, 1989), qualquer sistema mecânico operando
com determinado grau de autonomia, usualmente sob o controle de um computador, é chamado de "robô".
O controle de robôs manipuladores pode ser visto como a tarefa de se desenvolver leis matemáticas que determinam os torques em cada uma das juntas, necessários para que a garra execute um movimento específico. Existem
muitas estratégias de controle que podem ser aplicadas a robôs manipuladores e a estratégia particular escolhida pode ter um impacto significante no
desempenho do manipulador e conseqüentemente na sua aplicabilidade. Essa
escolha inclui análises do projeto mecânico do robô, dos objetivos do controle
e do desempenho necessário (Spong and Vidyasagar, 1989). Típicos métodos
de controle de robôs industriais envolvem cálculo da cinemática direta, do
planejamento da trajetória, da cinemática inversa, etc., tornando o controle
uma tarefa bastante intensiva computacionalmente (Lin and Kim, 1990).
Para controlar a posição do manipulador em um determinado momento,
deve-se conhecer as propriedades dinâmicas do robô, de forma a entender
quanta força deve-se aplicar sobre as juntas do manipulador para causar o
movimento desejado (Asada and Slotine, 1986). Utilizando-se a terminologia
de controle adequada (Iñigo and Morton, 1991), um robô industrial pode ser
modelado dinamicamente como um sistema acoplado, não-linear, com múltiplas entradas e múltiplas saídas (Multiple Input - Multiple Output - MIMO).
Em um manipulador, o movimento de uma junta é significantemente afetado pelo movimento das outras, visto que a carga inercial imposta a cada
junta varia amplamente dependendo da configuração do braço. Os efeitos de
Coriolis e de torques centrífugos são notáveis quando o braço se move em
altas velocidades. As complexidades cinemáticas e dinâmicas do manipulador são problemas para os quais as técnicas básicas de controle clássico se
mostram inadequadas, tornando o projeto do sistema de controle uma questão crítica em robótica (Asada and Slotine, 1986). Considerando estes fatos,
(An et al., 1989) mostra que a dinâmica completa de um manipulador pode
ser descrita por
n = J(q)q̈ + V (q,q̇) + G(q) + F (q,q̇),
(1.1)
1.3
Revisão Bibliográfica
4
em que n é o vetor de torques nas juntas (para juntas rotacionais), q é o
vetor de ângulos das juntas, J é a matriz de inércias, V é o vetor de termos
centrífugos e de Coriolis, G é o vetor de forças gravitacionais e F é o vetor
de termos de fricção. Esta equação é obtida via formalismo de Lagrange em
vários artigos como (Haklidir and Tasdelen, 2009), (Iñigo and Morton, 1991)
e (Chen and Chien, 1992).
Para muitos manipuladores, a flexibilidade mecânica dos componentes é
relevante, tanto na modelagem quanto no controle. A incorporação destes
efeitos torna o problema de síntese do controlador bastante complexo. Devido
à flexibilidade, o controlador de posição do robô deve ser capaz de controlar
o movimento da parcela rígida do corpo e suprimir os modos vibratórios. Um
manipulador robótico é modelado levando-se em consideração que os eixos
são flexíveis em (Gamarra-Rosado and Yuhara, 1999).
Estratégias de controle de posição são adequadas para tarefas como transferência de materiais e soldagem, casos em que o robô não está interagindo
significantemente com o ambiente (e teoricamente não tem limitações físicas).
Tais estratégias são discutidas na Seção 1.3.1.
O controle de força, por outro lado, é mais adequado para atividades
que envolvem intensivo contato com o ambiente, tais como montagem, desenho ou lixamento de superfície. Nestes casos, a posição do manipulador
é modificada pelas informações medidas de força externa, permitindo regular a força exercida pela garra em um valor desejado. Um algoritmo de
controle de força deve, portanto, aceitar comandos de força e movimento,
medir forças e posições e produzir comandos de movimento para o robô
(Spong and Vidyasagar, 1989). Em (Natale et al., 2000) aborda-se a aplicação de controladores de força em robôs industriais, com o objetivo de prover
uma técnica de projeto para lidar com as típicas limitações de interface de posição de um robô industrial. (Khatib et al., 2008), por sua vez, apresentam o
conceito de transformação "torque-posição", que permite o desenvolvimento
de técnicas de controle de torque em robôs convencionais, que têm juntas
controladas a partir de sinais posição. A transformação é baseada no conhecimento do servo motor que controla a posição e da resposta em freqüência
da malha fechada de uma junta. A técnica é validada no controle do braço do
R da Honda,
R provendo a capacidade de utilizar avançadas
robô ASIMO,
estratégias de controle de torque.
O controle de impedância tem por objetivo regular a relação entre força
e velocidade e visa movimentos limitados. (Carelli and Kelly, 1991) desenvolvem um controlador adaptativo de impedância/força para robôs limitados
com dinâmica incerta. (Bigras et al., 2007) desenvolvem um modelo que será
1.3
Estratégias de Controle de Posição
5
usado para projetar e aplicar um controlador de impedância em um robô industrial.
Um controle híbrido de força e posição exige um projeto de controlador
de força e de posição para cada junta do manipulador. Assim como os dois
últimos tipos de controlador, nessa estratégia visa-se lidar com movimentos
limitados (Spong and Vidyasagar, 1989).
A lei de controle, geralmente, é projetada no domínio do tempo contínuo
e então aplicada digitalmente com altas taxas de amostragem. A discretização pode, entretanto, causar degradação do desempenho e das margens de
estabilidade. Por este motivo, (Lai and Ohkawa, 1997) defendem o desenvolvimento dos modelos e o estudo do controle já no tempo discreto, de forma
que possam ser diretamente desenvolvidos no computador.
R
(Haklidir and Tasdelen, 2009) utilizam o software Dymola,
em conR
junto com o programa de cálculo numérico MATLAB/Simulink
para simulação do sistema de controle projetado.
1.3.1
Estratégias de Controle de Posição
A estratégia de controle de posição mais simples é a chamada "controle das
juntas independentes", na qual cada eixo do robô é controlado como um
sistema "uma entrada - uma saída"(Single Input - Single Output - SISO).
Quaisquer efeitos de acoplamento devidos ao movimento dos outros eixos são
ignorados ou tratados como perturbações. O objetivo do projeto é escolher
o compensador adequado que faça a saída da planta seguir uma trajetória de referência, rejeitando as eventuais perturbações. "Rastreamento de
trajetória"e "rejeição de perturbações"são os objetivos centrais de qualquer
estratégia de controle (Spong and Vidyasagar, 1989).
A forma mais comum de controle de juntas independentes é utilizando um
controlador PD (proporcional-derivativo) (An et al., 1989). Controladores
PD ou PID (proporcional-integral-derivativo) são adequados para aplicações
que não envolvem movimentos muito rápidos, especialmente em robôs com
grandes caixas de redução entre os atuadores e os eixos. Um controlador PD
necessita de ganhos proporcionais altos de forma a rejeitar eficazmente perturbações constantes, reduzindo o erro de estado estacionário. Uma limitação
imediata, portanto, seria a saturação na entrada da planta. O controlador
PID, por sua vez, é capaz de anular os erros de estado estacionário mantendo
o ganho proporcional pequeno (Spong and Vidyasagar, 1989). (Choi, 1999)
aplica o controle de juntas independentes a um manipulador com três graus
1.3
Estratégias de Controle de Posição
6
de liberdade para reduzir o torque de perturbação provocado em uma junta
pelo movimento do braço. Ele desenvolve um método para calcular dinamicamente a trajetória do braço, minimizando o efeito das perturbações
de torque sobre o movimento geral. (Seraji, 1989), por sua vez, controla
cada junta de um PUMA 560 utilizando um PID com compensação direta
de posição-velocidade-aceleração e capacidade de adaptação dos parâmetros.
Ele ressalta algumas vantagens do método de controle das juntas independentes sobre métodos de controle centralizados (como os que serão vistos adiante
neste trabalho), tais como a necessidade de um menor esforço computacional,
a possibilidade de executar os cálculos em paralelo e de forma distribuída e a
confiabilidade, visto que uma falha em um sensor, por exemplo, prejudicaria
somente o controle de uma junta e não de todo o braço. Desde que o controle
centralizado inclui o tratamento dos efeitos de acoplamento entre as juntas,
o desempenho deste em rastrear uma trajetória é relativamente melhor que
o do controlador proposto. (Hsia, 1987) trata cada junta como um sistema
de segunda ordem e obtém um bom desempenho para o sistema, mesmo com
incertezas no valor da carga.
O controle por compensação direta (ou feedforward ) clássico é uma estratégia adequada para o rastreamento assintótico de trajetórias variantes
no tempo, mas não melhora a capacidade do sistema de rejeitar perturbações também variantes no tempo. Adicionando-se um termo que antecipa a
perturbação, desenvolve-se o método chamado de "torque computado", que
compensa diretamente o acoplamento inercial não-linear, as forças centrípetas, gravitacionais e de Coriolis (Spong and Vidyasagar, 1989). A formulação de Newton-Euler é geralmente adotada para o cálculo do torque por
causa de sua eficiência computacional (Lin and Kim, 1990).
A técnica de compensação direta pode ser pensada como um conjunto de
torques nominais que permitem que a dinâmica seja linearizada em torno dos
pontos de operação. A partir daí é possível calcular os termos de realimentação como se o sistema fosse linear. Os termos da compensação direta podem
ser computados off-line, visto que eles só dependem da trajetória desejada
(An et al., 1989). (Caccavale and Chiacchio, 1994) utilizam um controlador
R Smart-3 com seis
por compensação direta em um manipulador COMAU
graus de liberdade. Já (Rattan and Feliu, 1991) utilizam este método para
suprimir as oscilações de um manipulador flexível.
Na técnica de torques computados, por sua vez, calcula-se a dinâmica em
tempo real, usando a posição amostrada da junta e os dados de velocidade.
Se o modelo do robô é exato, cada elo é desacoplado e o erro de rastreamento
da trajetória vai a zero (An et al., 1989). (Becerra et al., 2004) aplicam o
1.3
Estratégias de Controle de Posição
7
método de torques computados em um PUMA 560 utilizando um software
R para geração de trajetória e interimplementado em ambiente MATLAB
R da estratégia de controle.
face com usuário e uma aplicação em SIMULINK
(Khalil and Boyer, 1995) aplicam o controle por torques computados a um
manipulador com características flexíveis. (Looke et al., 1992) desenvolvem
e simulam, via técnica de elementos finitos, um controlador por torques computados aplicado também a um manipulador flexível. (Uebel et al., 1992),
por sua vez, aplica o controle por torques computados a um robô com sete
graus de liberdade e ressalta uma das maiores vantagens deste método: a
habilidade de incorporar as propriedades inerciais da carga ao algoritmo de
controle. Outras estratégias de controle podem ter o desempenho deteriorado na presença de carga. (Middleton and Goodwin, 1986) desenvolvem
uma versão do controlador por torques computados parametrizada linearmente em função de algumas variáveis que são estimadas em tempo real.
(An et al., 1989) mostraram que os resultados do controle feedforward
e do controle por torques computados são bastante parecidos e que ambos
são mais precisos que o controle PD nas juntas independentes. Ele ainda
destacou que, na presença de perturbações externas, o controle de torque se
torna significante para o rastreamento preciso de trajetórias.
A precisão do modelo dinâmico do manipulador exerce grande influência
no desempenho das técnicas de controle por compensação direta e por torque computado. Desde que, na maior parte das vezes, os efeitos da fricção
podem ser desconsiderados, a questão da precisão se resume a quão bem os
parâmetros dos eixos rígidos (massa, centro de massa e momentos de inércia)
são conhecidos (An et al., 1989). (Nguyen-Tuong et al., 2008) comparam diferentes algoritmos de regressão que são utilizados para aproximação da dinâmica do manipulador, de forma a tornar o método de torque computados
mais preciso.
(An et al., 1989) destacam três problemas que prejudicam ou impedem
a redução de erros no rastreamento de trajetórias para os métodos de torque
computado e feedforward : inconsistências nos sensores de velocidade e posição (para altas acelerações, o sinal de velocidade integrado é diferente do sinal
de posição medido), erro na estimação do torque (os motores e amplificadores
de potência não geram torques com a exatidão dos torques comandados) e
baixa freqüência de amostragem.
Em todos estes controladores confia-se no modelo exato da cinemática
inversa para converter uma trajetória especificada pelo usuário em posições
de referência para as juntas. As equações de cinemática inversa são específicas para o robô e não podem ser aplicadas a outros robôs, com estruturas
1.3
Estratégias de Controle de Posição
8
diferentes. Além disso, essas equações são não-lineares, altamente acopladas
e exigem uma considerável capacidade computacional (Nedungadi, 1992).
Controladores baseados em lógica fuzzy substituem as computacionalmente caras equações cinemáticas dos controladores tradicionais por um conjunto de regras de inferência que, em geral, somente descrevem uma parte
do sistema. As entradas e saídas são expressas em termos linguísticos, de
forma que as regras podem ser aplicadas de maneira simples para expressar
um sistema complexo (Haklidir and Tasdelen, 2009).
Um controlador por lógica fuzzy é composto de quatro elementos principais: uma base de regras, uma interface de fuzzificação, um máquina de
inferência e uma interface de defuzzificação (Kasac et al., 2003). As vantagens deste método são o aumento da robustez a ruídos e falhas nos sensores, a relativamente baixa carga computacional e a habilidade de lidar com
não-linearidades sem a degradação do sistema de controle. As principais
desvantagens são a dificuldade de analisar a estabilidade do controlador desenvolvido e a falta de procedimentos formais para descrever as regras do
controlador (Nedungadi, 1992). (Nedungadi, 1992) concluiu que o uso de lógica fuzzy reduz em até 33% o tempo de processamento das regras de controle
em relação aos sistemas baseados em equações de cinemática inversa. Por
outro lado, os experimentos mostraram que controladores fuzzy são menos
precisos, visto que uma regra fuzzy descreve uma área no espaço de estados
ao invés de um único ponto. Controladores baseados em lógica fuzzy também
são utilizados em (Kasac et al., 2003), que utiliza uma função analítica em
lugar da base de regras fuzzy e em (Neo and Er, 1995).
(Martins and d. Alencar, 2005) descrevem a utilização de redes neurais
para a solução do problema de controle nos casos em que são necessários um
alto grau de desempenho e acurácia. Neste trabalho, a estratégia baseada
em redes neurais se mostrou superior à de torques computados no quesito
erro de rastreamento. (Hunmo.Kirrt and Parker, 1993) também utilizam redes neurais artificiais para controlar a posição de um manipulador flexível de
um eixo. Naquele artigo, algoritmos simples e robustos de redes neurais são
responsáveis pela identificação do modelo dinâmico do sistema e pelo rastreamento de uma trajetória. (Yildirim, 1997) compara os resultados simulados
de um controle baseado em redes neurais e um controle PID aplicados a um
manipulador SCARA com dois graus de liberdade. Ele conclui que para o
caso estudado, o controlador por redes neurais provocou rápida redução do
erro, ações de controle mais conservadoras e rejeitou perturbações eficazmente - além de não necessitar do conhecimento a priori da dinâmica do
robô, em oposição ao controle PID.
1.3
Calibração de Sensores
9
Segundo (Chaitanya et al., 2007), controladores adaptativos podem produzir movimentos precisos e exatos quando a dinâmica do manipulador é parcialmente desconhecida. Nesses métodos, algoritmos são usados para estimar
em tempo real os parâmetros do modelo com base nas entradas e saídas do
sistema (Lai and Ohkawa, 1997). É muito utilizado em manipuladores que
executam tarefas repetitivas. Sem a adaptação dos ganhos e de outros parâmetros da lei de controle, os erros de rastreamento serão também repetitivos.
Com adaptação, por outro lado, o desempenho em rastrear uma trajetória
pode ser melhorado em repetições sucessivas (Spong and Vidyasagar, 1989).
(Lai and Ohkawa, 1997) desenvolveram um controlador adaptativo baseado
em um modelo que exige menos parâmetros estimados on-line, reduzindo a
carga computacional necessária. (Yu and Lloyd, 1995) desenvolvem um algoritmo adaptativo em que se considera a dinâmica do motor das juntas,
permitindo lidar com incertezas, tanto nos eixos, quanto nos motores. Já
(Su et al., 1990) trabalham com um método adaptativo para controlar simultaneamente a posição da garra e a força de contato desta com uma superfície. Controladores adaptativos para manipuladores também são discutidos
em (Hung et al., 2002), (Lee and Chung, 1984) e (Meng and Lu, 1993).
1.3.2
Calibração de Sensores
O estudo de calibração de um sensor, no contexto deste trabalho, envolve
descobrir a relação estática entre a variável observada e a variável de entrada,
levantando dados de polarização, sensibilidade, erro quadrático e erro cúbico.
O artigo (Zhou et al., 2009) apresenta a seguinte definição para o modelo de
calibração de sensores genéricos
f (x) = k0 + k1 x + k2 x2 + k3 x3 ,
(1.2)
onde x são as variáveis de entrada, f (x) são as tensões de saída, k0 é o valor do
offset, k1 é o coeficiente de proporcionalidade e k2 e k3 são, respectivamente,
os coeficientes quadrático e cúbico. Na literatura, a calibração de sensores
é normalmente feita aplicando-se métodos de otimização a um conjunto de
dados coletados pelo sensor de forma a definir os parâmetros mais apropriados
para a Equação (1.2), minimizando ruídos e não-linearidades na medição e
no processo de teste. Em alguns sistemas que utilizam, não apenas um,
mas um conjunto de sensores acoplados (tal como a IMU, que utiliza três
acelerômetros e três girômetros), aparecem alguns fatores complicadores do
processo de calibração, tais como a necessidade de um alinhamento perfeito
entre os sensores envolvidos.
1.3
Calibração de Sensores
10
Em (Xiaoxiong et al., 2008), desenvolve-se um método de calibração de
alta precisão de dois acelerômetros ortogonais que elimina o efeito de erros
no posicionamento angular relativo entre os sensores por meio do uso de uma
mesa de calibração de dois eixos, melhorando assim a precisão do modelo dos
acelerômetros. Neste mesmo artigo, analisa-se a correlação entre os coeficientes do modelo obtido e conclui-se que o desvio padrão na identificação de
dois acelerômetros, em conjunto, é menor que o desvio padrão da identificação de um único acelerômetro, melhorando assim a precisão alcançada na
calibração.
Os autores de (Zhou et al., 2009) utilizam uma centrífuga para os testes de um acelerômetro do tipo MEMS (Micro-Electro-Mechanical Systems),
fazendo a aceleração variar de −55g a +55g, com incrementos de 5g. Para
calibração dos dados de teste, eles aplicam, primeiramente, o método de mínimos quadrados e, em seguida, algoritmos genéticos. Esse artigo menciona
que a vantagem de se utilizar mínimos quadrados é a distribuição relativamente uniforme do erro residual e a, no geral, pequena soma dos erros.
Entretanto, concluem que algoritmos genéticos são mais indicados quando
as necessidades de precisão são muito altas, visto que os erros residuais nos
parâmetros se dispersam com maior uniformidade.
(Renk et al., 2005), por sua vez, utilizam um braço robótico de seis juntas para calibrar um conjunto de três acelerômetros e três magnetômetros.
Os testes incluem submeter o equipamento a ser calibrado, que está afixado
à ponta do manipulador, a diversos movimentos de rolamento, arfagem e
guinada (rotações em torno de x, y e z, respectivamente) que sejam suficientemente lentos de forma que a única aceleração considerada nos acelerômetros
possa ser a força da gravidade. A calibração dos grupos de sensores é feita,
então, a partir dos milhares de pontos capturados e de algoritmos de mínimos
quadrados. A metodologia aplicada neste artigo permite efetuar a calibração
mesmo quando não se pode assumir ortogonalidade perfeita entre os grupos
de sensores.
No trabalho aqui desenvolvido, utiliza-se a metodologia de (Renk et al., 2005)
para calibrar um acelerômetro triaxial. O foco deste estudo, entretanto, é
discutir os problemas decorrentes da implementação prática e analisar a viabilidade, as vantagens e a eficácia da técnica de calibração proposta. Abordase aqui diversos temas não tratados pelos autores do artigo, tais como a
obtenção do modelo cinemático do manipulador, a sincronização dos sinais
advindos do robô e dos acelerômetros, os métodos de otimização utilizados,
etc.
1.4
1.4
Organização do Trabalho
11
Organização do Trabalho
O trabalho é dividido em 5 capítulos.
No presente capítulo, são apresentados os objetivos do trabalho proposto,
bem como a motivação para desenvolvê-lo. São apresentados ainda o escopo do trabalho e uma revisão bibliográfica dos assuntos relevantes, com
o objetivo de fazer levantamento e comparação sobre trabalhos semelhantes
realizados por terceiros.
No Capítulo 2 é feita a descrição física do manipulador robótico utilizado (incluindo dimensões, massas, momentos de inércia, etc.). Inclui-se
uma seção dedicada a relatar o processo de especificação para compra do
manipulador.
No Capítulo 3 é descrita a obtenção dos modelos cinemáticos do manipulador, os quais são validados e analisados.
No Capítulo 4 aplica-se uma metodologia de calibração dos sensores da
IMU e discute-se técnicas, testes reais e algoritmos de otimização utilizados.
O Capítulo 5 trata das conclusões do trabalho e das proposições para
futuros estudos.
Este trabalho ainda inclui anexos que descrevem a obtenção do modelo
dinâmico do manipulador, discutem brevemente a estratégia de controle por
Torques Computados e discutem os resultados de simulações computacionais
baseadas nos modelos obtidos para o manipulador real.
Capítulo 2
Descrição do Sistema
Neste capítulo, é feita uma descrição física superficial do manipulador robótico utilizado. Antes disso, entretanto, inclui-se uma seção dedicada a relatar
o processo de especificação para compra do manipulador.
2.1
Especificação do Manipulador
Esta seção visa discutir brevemente alguns aspectos relevantes do processo
de especificação para compra do manipulador robótico.
A especificação começou com o levantamento dos objetivos da aquisição
do manipulador. O objetivo principal, como mencionado anteriormente, é
a aplicação deste manipulador nos testes da unidade de medição inercial.
Os objetivos secundários seriam a utilização do robô para ensino, estudo,
desenvolvimento e testes de estratégias de controle para manipuladores, bem
como para outras aplicações em projetos diversos dentro da UFMG.
Definidos os objetivos, elencou-se uma série de pré-requisitos para escolha
e aquisição do manipulador, os quais podem ser sintetizados em:
• O manipulador deve ser capaz de executar movimentos amplos e variados, suficientes para reproduzir uma trajetória correspondente ao vôo
de uma aeronave de asa fixa (pelo menos seis graus de liberdade);
• O manipulador deve ser o mais preciso possível, visto que a qualidade
da calibração da IMU dependerá da qualidade dos testes efetuados;
12
2.2
Descrição Física do Manipulador
13
• O robô deve ter a capacidade de suportar, no mínimo, o peso da unidade
de medição inercial - estabeleceu-se que uma carga máxima variando
entre 3Kg e 6Kg seria mais que suficiente para este fim;
• O fornecedor do robô deve oferecer curso de treinamento e instalação
in loco do sistema;
• O fornecedor do robô deve oferecer um mínimo de informações a respeito da estrutura do manipulador - incluindo-se aí não apenas parâmetros físicos, mas também características da arquitetura computacional
do sistema;
• O sistema de controle do manipulador deve ser o mais aberto possível, preferencialmente possibilitando, não só o estudo das estretégias
de controle existentes, mas também o desenvolvimento de novas estratégias para o controle do robô;
Com base nestes pré-requisitos, selecionou-se um conjunto de fabricantes
de robôs manipuladores industriais capazes de nos fornecer o equipamento
desejado. Dentre os diversos robôs de diversos fabricantes, o SMART SiX, da
R foi o que melhor atendeu às expectativas. A empresa COMAU,
R
COMAU,
em uma parceria com a UFMG, ainda se comprometeu a fornecer a abertura
necessária do sistema e os parâmetros físicos do manipulador. A compra do
manipulador foi efetuada com recursos fornecidos pela Fundação de Amparo
à Pesquisa do Estado de Minas Gerais (FAPEMIG)
Na próxima seção, iniciar-se-á a descrição física do sistema que será estudado durante todo o decorrer deste trabalho. Este sistema é o robô menR
cionado acima: o SMART SiX, da COMAU.
2.2
Descrição Física do Manipulador
O manipulador robótico em torno do qual todo este projeto se desenvolverá
R
é o SMART SiX, da COMAU.
Este robô suporta uma carga de até 6Kg,
possui um alcance horizontal máximo de 1,4 metros, uma repetibilidade de
0,05 milímetros e é tipicamente utilizado na indústria para manipulação de
cargas leves e soldagem a arco (COMAU, 2005). O robô consiste de uma
estrutura antropomórfica com seis graus de liberdade, conforme pode ser
visto nas Figuras 2.1 e 2.2.
2.2
Descrição Física do Manipulador
14
R SMART SiX, (COMAU, 2005), pág. 3-2
Figura 2.1: COMAU
Conforme pode ser visto na Figura 2.2, o robô possui uma base fixa sobre a qual a coluna com o eixo 2 gira, em torno de um eixo vertical (eixo 1).
Um braço conecta o eixo 2 ao antebraço e inclui as engrenagens redutoras
dos eixos 3-4-5-6. A garra é localizada ao final deste antebraço. Sistemas
de software e hardware determinam o limite dos movimentos, evitando colisões mecânicas. Dessa forma, estabelecem-se as amplitudes de movimento
para cada eixo, conforme pode ser visto na Tabela 2.1, que também inclui a
velocidade máxima de execução do movimento (COMAU, 2005).
R SMART
Tabela 2.1: Limitações nos movimentos de cada eixo do COMAU
SiX
Eixo Amplitude do Movimento Velocidade Máx.
1
+170o / − 170◦
140◦ /s
2
+155o / − 85◦
160◦ /s
o
◦
3
0 / − 170
170◦ /s
4
+210o / − 210◦
450◦ /s
5
+130o / − 130◦
375◦ /s
o
◦
6
+2.700 / − 2.700
550◦ /s
Analisando-se a Figura 2.2, pode-se determinar os comprimentos dos
eixos e a direção do movimento que elas executam. Foram observadas, entretanto, algumas diferenças na amplitude dos movimentos entre o robô real
e aquele mostrado nas folhas de dados. Um esquema que resume todas as
informações, adquiridas, tanto dos documentos, quanto da planta real, é mos-
2.2
Descrição Física do Manipulador
15
R SMART SiX, (COMAU, 2005),
Figura 2.2: Área de trabalho do COMAU
pág. 4-2, 4-3
2.2
Descrição Física do Manipulador
16
trado na Figura 2.3, onde se observa que todas as juntas são de revolução.
Observa-se também que para a configuração de ângulos das juntas mostrada
nessa figura (eixo 1 = 0o , eixo 2 = 0o , eixo 3 = −90o , eixo 4 = 0o , eixo 5 =
0o , eixo 6 = 0o ), a garra se encontra na coordenada (892,07 mm; 0 mm; 1170
mm) em relação ao eixo de coordenadas da base (também chamado de eixo
de coordenadas zero ou eixo de coordenadas global).
R SMART
Figura 2.3: Esquema representativo das juntas e eixos do COMAU
o
o
SiX para sua posição de calibração (eixo 1 = 0 , eixo 2 = 0 , eixo 3 = −90o ,
eixo 4 = 0o , eixo 5 = 0o , eixo 6 = 0o )
Na Seção 3.1, a Figura 2.3 será utilizada como ponto de partida para o
desenvolvimento da notação de Denavit-Hartenberg. A partir dessa notação,
pode-se resolver problemas de cinemática direta e inversa, o que é bastante
relevante para todos os propósitos deste trabalho.
Para o sistema de controle, define-se que a variável manipulada será o
torque fornecido para o motor, enquanto a variável controlada é o ângulo
que aparece na junta e suas derivadas primeira e segunda. Os sensores são
encoders e os atuadores são os motores das juntas, sobre os quais serão aplicadas correntes que são, em tese, proporcionais aos torques calculados pela
lei de controle e levam em consideração a razão de engrenagens de cada acionamento.
Capítulo 3
Modelagem
Segundo (Asada and Slotine, 1986), cinemática de manipuladores é o estudo
da geometria dos movimentos de um braço robótico. Desde que o desempenho
de tarefas específicas é atingido por meio dos movimentos do manipulador,
a cinemática se torna uma ferramenta fundamental, tanto para controle,
quanto para projeto. As equações de cinemática direta relacionam a posição
das juntas às coordenadas da garra, enquanto as equações de cinemática
inversa, relacionam uma determina posição da garra às configurações das
juntas.
Neste capítulo serão desenvolvidas e validadas as principais equações de
R SMART
cinemática direta que governam o movimento do robô COMAU
SiX. Para maiores detalhes a respeito da modelagem do manipulador, podese consultar o Anexo A, que mostra a obtenção do modelo dinâmico do robô.
O Anexo B, por sua vez, detalha a simulação de um sistema de controle em
malha fechada baseado em Torques Computados.
3.1
Modelo de Cinemática Direta
A partir da Figura 2.3 - que representa a posição de calibração do manipulador - e utilizando-se algumas regras simples, pode-se encontrar a reR SMART SiX
presentação de Denavit-Hartenberg para o robô COMAU
(Spong and Vidyasagar, 1989). Essa representação, bastante utilizada na
literatura, consiste de um procedimento sistemático para definição dos sistemas de coordenadas dos elos de uma cadeia de elos rígidos, de forma que
possibilita a caracterização da cinemática de um manipulador com base em
17
3.1
Modelo de Cinemática Direta
18
apenas quatro parâmetros para cada eixo. A representação pode ser vista
na Tabela 3.1, onde αi , ai , θi e di são os parâmetros do eixo i, respectivamente chamados de torção, deslocamento, ângulo e comprimento. O comprimento e a torção descrevem o eixo, enquanto o ângulo e o deslocamento
descrevem a conexão do eixo com os eixos adjacentes. Três destes quatro
parâmetros são constantes para um determinado eixo, enquanto o quarto
parâmetro, θi para uma junta de revolução e di para uma junta prismática, é a variável da junta. A Tabela 3.2, por sua vez, mostra a notação
de Denavit-Hartenberg modificada para utilização através da biblioteca RoR (Corke, 1996). Percebe-se, nessa tabela, a inclusão de
bot, do MATLAB
um quinto parâmetro, chamado Ajuste, responsável pela definição correta
do ângulo zero de cada eixo. Percebe-se também a presença de uma sétima
linha, que foi o único recurso encontrado para se ajustar apropriadamente o
modelo cinemático ao manipulador real. Observa-se que a variável de junta
θi do sétimo eixo é mantida constante e igual a zero. Essa representação
(com sete linhas), entretanto, não é utilizada no desenvolvimento teórico
aqui formulado, servindo apenas para visalização, mas afirma-se que ambas
as representações de D-H geram a mesma matriz de transformação.
A Figura 3.1 mostra um esquema gerado usando o pacote Robot do
R para a representação de Denavit-Hartenberg da Tabela 3.2.
MATLAB
R
Tabela 3.1: Representação de Denavit-Hartenberg para o robô COMAU
SMART SiX
Eixo i αi (◦ ) ai (mm) θi (◦ ) di (mm)
1
180
0
∗
−450
2
90
150
∗
0
3
180
590
∗
0
4
−90
130
∗
−647,07
5
−90
0
∗
0
6
90
0
∗
−95
Na convenção de Denavit-Hartenberg, cada transformação homogênea Ai
é representada como o produto de quatro transformações básicas
3.1
Modelo de Cinemática Direta
19
R para
Figura 3.1: Modelo 3D gerado usando o pacote Robot do MATLAB
a representação de Denavit-Hartenberg do robô
3.1
Modelo de Cinemática Direta
20
R
Tabela 3.2: Representação de Denavit-Hartenberg do robô COMAU
R
SMART SiX, modificada para utilização no MATLAB
Eixo i αi (◦ ) ai (mm) θi (◦ ) di (mm) Ajustei
1
180
0
∗
−450
0
2
90
150
∗
0
−90
3
180
590
∗
0
90
4
−90
130
∗
−647,07
0
5
−90
0
∗
0
0
6
90
0
∗
−95
0
o
7
180
0
0
0
180
Ai = Rotzi θi T ranszi di T ransxi ai Rotxi αi ,


cos(θi ) − sin(θi ) 0 0
1 0 0 0
 sin(θi ) cos(θi ) 0 0   0 1 0 0 


Ai = 

0
0
1 0   0 0 1 di 
0
0
0 1
0 0 0 1



1 0 0 ai
1
0
0
0
 0 1 0 0   0 cos(αi ) − sin(αi ) 0 


×
 0 0 1 0   0 sin(αi ) cos(αi ) 0  ,
0 0 0 1
0
0
0
1

cos(θi ) − sin(θi ) cos(αi ) sin(θi ) sin(αi ) ai cos(θi )
sin(θi ) cos(θi ) cos(αi ) − cos(θi ) sin(αi ) ai sin(θi ) 
.

0
sin(αi )
cos(αi )
di
0
0
0
1



Ai = 

(3.1)
Com base em cada uma das linhas da convenção de Denavit-Hartenberg
e com base nas equações acima, obtém-se as matrizes A1 , A2 , ... A6 , nas
quais θi , ai , di e αi são os mesmos parâmetros listados na Tabela 3.1. Como
registrado anteriormente, três destes quatro parâmetros são constantes para
um determinado eixo, de forma que Ai se torna uma função de variável única.
A matriz de transformação do sistema de coordenadas da garra para
o sistema de coordenadas da base será chamada de T0n . Observa-se nesta
notação que o superscrito representa o sistema de coordenadas de origem,
enquanto o subscrito representa o sistema de coordenadas de destino. Essa
notação será utilizada mais vezes adiante.
Tem-se que
3.2
Jacobiano
21


r11 r12 r13 dx
 r21 r22 r23 dy 

T0n = A1 ...An = 
 r31 r32 r33 dz  ,
0
0
0 1
onde n é o número de eixos. Para o caso sob estudo, n = 6 e denomina-se a
submatriz formada por r11 , r12 ... r23 , r33 de R06 e a submatriz formada por
dx , dy e dz de d60 . Como consequência
T06
=
R06 d60
0 1
.
Dessa forma, pode-se transformar o sistema de coordenadas da garra
no sistema de coordenadas da base. Isto será especialmente importante no
momento de analisar as medições efetuadas pela IMU - que estará afixada à
garra do manipulador.
3.2
Jacobiano
Matematicamente, as equações de cinemática direta definem uma função
entre o espaço de posições e orientações cartesianas e o espaço de posições das
juntas. A matriz que relaciona as velocidades nos dois espaços é determinado
pelo jacobiano, que pode ser pensado como a versão vetorial da derivada de
uma função escalar.
Para um manipulador de n eixos, o Jacobiano representará a transformação instantânea entre o vetor de n velocidades das juntas e o vetor de 6
posições que contém as três velocidades lineares e as três velocidades angulares da garra. O Jacobiano, portanto, será uma matriz 6×n.
Acompanhando a metodologia apresentada em (Paul et al., 1981), sabese que uma variação infinitesimal dT em qualquer matriz de transformação T
pode ser expressa em termos de uma translação infinitesimal dx~i + dy~j + dz~k
e de uma rotação infinitesimal δx~i + δy~j + δz~k com relação a T . Pode-se
representar isso através de
T + dT = T (I + ∆T ) ,
onde
3.2
Jacobiano
22


dnx dox dax dpx
 dny doy day dpy 

dT = 
 dnz doz daz dpz 
0
0
0
0
e


0 −δz δy dx
 δz
0 −δx dy 
.
∆T = 
 −δy δx
0 dz 
0
0
0
0
Resolvendo-se a equação anterior
dT = T ∆T .
A notação T6 descreverá a matriz homogênea de transformação de coordenadas para o referencial da ponta do manipulador e ∆T 6 será avaliado
como uma função das variações nas coordenadas das juntas. Se uma variação
∆n for realizada com relação ao eixo n − 1, obtém-se
dT 6 = T6 ∆T 6 = A1 A2 . . .An−1 ∆n An . . .A6 ,
ou simplificando-se,
∆T 6 = (An . . .A6 )−1 ∆n (An . . .A6 ).
No caso sob estudo, o elo n sempre seguirá uma junta de revolução, de
forma que uma variação da coordenada da junta dθn corresponderá a uma
rotação em torno do eixo z do sistema de coordenadas do elo n − 1. Em
outras palavras:

∆revolucao

0 −dθ 0 0
 dθ
0 0 0 
.
=
 0
0 0 0 
0
0 0 0
Define-se Un = (An An+1 . . .A6 ), cujos elementos serão
3.2
Jacobiano
23


nx ox ax px
 ny oy ay py 

Un = 
 nz oz az pz .
0 0 0 1
Dessa forma:
∆T 6 = Un −1 ∆revolucao Un .
e

∆T 6

0
ox ny − oy nx ax ny − ay nx px ny − py nx
 nx oy − ny ox
0
ax oy − ay ox px oy − py ox 
dθ .
=
 nx ay − ny ax ox ay − oy ax
0
p x ay − p y ax  n
0
0
0
0
Tratando n, o e a como vetores, pode-se reescrever

∆T 6

0
(o×n)z (a×n)z (p×n)z
 (n×o)z
0
(a×o)z (p×o)z 
dθ .
=
 (n×a)z (o×a)z
0
(p×a)z  n
0
0
0
0
O produto cruzado de vetores unitários ortogonais é igual ao outro vetor
unitário. Dessa forma

0 −az oz (p×n)z
 az
0 −nz (p×o)z 
dθ .
=
 −oz nz
0
(p×a)z  n
0
0
0
0

∆T 6
Pode-se, então, escrever ∆T 6 na forma de um vetor coluna representando
uma translação e uma rotação infinitesimais








T6 dx
T6 dy
T6 dz
T6 δx
T6 δy
T6 δz






 
= J 






dq 1
dq 2
dq 3
dq 4
dq 5
dq 6




,



3.2
Jacobiano
24
onde dq i = dθi . Dessa forma, a matriz Jacobiano, J, consistirá de seis
colunas, da forma:
(p×n)z
(p×o)z
(p×a)z
,
nz
oz
az
onde n, o, a e p são as colunas de U . Visto que Un = (An An+1 . . .A6 ), sabe-se
que U1 = A1 . . .A6 = T6 e U6 = A6 . O Jacobiano terá a forma
J=
Jv
Jω
,
em que Jv relacionará as derivadas primeiras das variáveis das juntas à velocidade translacional da garra e Jω relacionará as derivadas primeiras das
variáveis das juntas à velocidade rotacional da garra. Essas matrizes terão a
forma

jv11 jv12 jv13 jv14 jv15 jv16
Jv =  jv21 jv22 jv23 jv24 jv25 jv26 ,
jv31 jv32 jv33 jv34 jv35 jv36



jω11 jω12 jω13 jω14 jω15 jω16
Jω =  jω21 jω22 jω23 jω24 jω25 jω26 .
jω31 jω32 jω33 jω34 jω35 jω36
Os cálculos são então realizados a partir da notação de Denavit-Hartenberg.
Pode-se mostrar que, para a posição de calibração, o Jacobiano é dado por

0
L4 + L3
−L4
0
0
0



 −L6 − L5 − L2
0
0
0
0
0 




0
−L6 − L5 L6 + L5 0 −L6 0 


,
J =

0
0
0
−1
0
−1






0
1
−1
0
1
0


−1
0
0
0
0
0
3.3
Validação do Modelo Cinemático
25
onde L1 = 450mm, L2 = 150mm, L3 = 590mm, L4 = 130mm, L5 =
647.07mm e L6 = 95mm.
3.3
Validação do Modelo Cinemático
Essa seção trata da validação dos modelos cinemáticos obtidos durante este
subcapítulo. Atenção especial será dada à matriz de transformação do sistema, visto que ela se relaciona diretamente aos objetivos finais deste trabalho. A validação do Jacobiano, do qual não depende o processo de calibração,
será deixada como objeto de estudo para trabalhos futuros.
Para a validação das equações de cinemática direta, foram coletadas informações do manipulador para diversas configurações diferentes. Tais informações dizem respeito a valores intantâneos de ângulos das juntas e posições
e orientações da garra para uma trajetória pré-programada do manipulador.
Os ângulos das juntas, como afirmado anteriormente, serão as entradas das
equações de cinemática direta, enquanto a saída será a matriz de transformação do sistema de coordenadas da garra para o sistema de coordenadas da
base. Tal matriz inclui os valores de posição e orientação da garra, os quais
serão comparados com os valores coletados do manipulador real.
Dois movimentos diferentes foram efetuados para validação do modelo cinemático. Para o primeiro movimento (mostrado na Figura 3.2), as entradas
(ângulos das juntas) são mostradas na Figura 3.3. Nota-se que estes valores
correspondem a medições efetuadas por meio do próprio programa de controle do manipulador. As saídas do manipulador real e do modelo (posições
X, Y e Z e elementos da matriz de rotação da garra em relação à base) são
comparadas nas Figuras 3.4 e 3.5. O erro da comparação é mostrado nas
Figuras 3.6 e 3.7. Para o segundo movimento (mostrado na Figura 3.8), os
ângulos das juntas são mostrados na Figura 3.9. As posições X, Y e Z e os
elementos da matriz de rotação da garra em relação à base são comparados
nas Figuras 3.10 e 3.11. O erro de comparação para o segundo movimento é
mostrado nas Figuras 3.12 e 3.13.
Observa-se que como forma de validação, escolheu-se comparar as matrizes de rotação resultantes do modelo desenvolvido e do manipulador real, ao
invés de comparar os ângulos de Euler (A, E e R) da garra. Essa decisão foi
tomada em virtude de não existirem modos fáceis de decompor uma rotação
arbitrária como uma série de três rotações A, E e R em torno dos eixos coordenados. Além disso, os ângulos de Euler introduzem o problema chamado
"gimbal lock "(Malvezzi and Celes, 2004). Outro motivo reside no fato de que
3.3
Validação do Modelo Cinemático
26
o robô não efetua medidas suaves de ângulos de orientação da garra. A Figura 3.14 mostra a evolução dos três ângulos de Euler (A, E e R) da garra
para o segundo movimento, através da qual pode-se observar que existem
vários pontos de descontinuidade. De modo a evitar problemas e a garantir a
validação completa do modelo, faz-se, portanto, a comparação individual de
cada elemento das matrizes de rotação. Para tanto, transforma-se os ângulos
de Euler coletados do manipulador em uma matriz de rotação e compara-se
essa matriz com a matriz de transformação obtida pelo modelo desenvolvido.
Figura 3.2: Validação do modelo cinemático - Trajetória da garra do primeiro
movimento.
Observa-se, primeiramente, que para os dois movimentos, existem picos
de erro em regiões localizadas (e aparentemente aleatórias) das variáveis de
saída (posições e orientações da garra). A primeira coluna da Figura 3.15
mostra a ampliação de duas dessas regiões - nas variáveis de posição X e
Z da garra. Observa-se nessa Figura um fenômeno que se repete em vários
momentos durante a captura de dados: a saída informada pelo manipulador
apresenta "saltos"que a tornam descontínua. Quatro hipóteses principais que
justificariam tal comportamento foram formuladas e discutidas:
1. Há um erro na leitura dos dados dentro de cada período de amostragem: Essa hipótese não pode ser responsável pelo comportamento de
saltos observado porque todos os dados são lidos do robô dentro do
3.3
Validação do Modelo Cinemático
27
Figura 3.3: Validação do modelo cinemático - Primeiro movimento: Ângulos
das juntas.
mesmo instante de amostragem. Enquanto uma variável se mantém
estacionária (quando não deveria estar), outras variáveis (tais como os
ângulos das juntas) mudam de valor, provando que os saltos não são
um efeito da amostragem dos dados;
2. Falha na especificação do período de amostragem: Prova-se que o período de amostragem é, de fato, adequado, quando se observa que em
outras regiões do movimento, os valores de posição e orientação variam suavemente, sem apresentar os saltos observados (conforme pode
ser visto na segunda coluna da Figura 3.15). Além disso, a captura
dos dados mostrados nas Figuras 3.2 a 3.13 foram feitos a 50Hz, mas
efeitos indesejados semelhantes (nas mesmas regiões) também foram
observados para captura dos dados a 20Hz;
3. O robô não atualiza suas variáveis de posição/orientação com frequência constante e igual à frequência de atualização das variáveis das juntas: A documentação da linguagem de programação, encontrada em
(COMAU, 2008), afirma que a taxa de atualização default das variáveis de posição/orientação é igual a dois milissegundos. Entretanto,
percebe-se que os saltos são mais evidentes conforme se aumenta a
velocidade do movimento. O primeiro movimento, mostrado anteriormente, é executado com maior velocidade das juntas que o segundo
3.3
Validação do Modelo Cinemático
28
Figura 3.4: Validação do modelo cinemático - Primeiro movimento: Comparação das posições X, Y e Z do manipulador e do modelo cinemático.
3.3
Validação do Modelo Cinemático
29
Figura 3.5: Validação do modelo cinemático - Primeiro movimento: Comparação dos elementos da matriz de rotação do manipulador e do modelo
cinemático.
3.3
Validação do Modelo Cinemático
30
Figura 3.6: Validação do modelo cinemático - Primeiro movimento: Erro na
comparação das posições X, Y e Z do manipulador e do modelo cinemático.
Figura 3.7: Validação do modelo cinemático - Primeiro movimento: Erro na
comparação dos elementos da matriz de rotação do manipulador e do modelo
cinemático.
3.3
Validação do Modelo Cinemático
31
Figura 3.8: Validação do modelo cinemático - Trajetória da garra do segundo
movimento.
Figura 3.9: Validação do modelo cinemático - Segundo movimento: Ângulos
das juntas.
3.3
Validação do Modelo Cinemático
32
Figura 3.10: Validação do modelo cinemático - Segundo movimento: Comparação das posições X, Y e Z do manipulador e do modelo cinemático.
3.3
Validação do Modelo Cinemático
33
Figura 3.11: Validação do modelo cinemático - Segundo movimento: Comparação dos elementos da matriz de rotação do manipulador e do modelo
cinemático.
3.3
Validação do Modelo Cinemático
34
Figura 3.12: Validação do modelo cinemático - Segundo movimento: Erro na
comparação das posições X, Y e Z do manipulador e do modelo cinemático.
Figura 3.13: Validação do modelo cinemático - Segundo movimento: Erro na
comparação dos elementos da matriz de rotação do manipulador e do modelo
cinemático.
3.3
Validação do Modelo Cinemático
35
Figura 3.14: Ângulos de Euler para a garra durante o segundo movimento.
movimento (conforme pode ser visto pelo número total de amostras
- visto que ambos os movimentos tem a mesma frequência de amostragem). Como provável resultado disso, os erros da modelagem do
primeiro movimento são maiores (em porcentagem do valor final) que
os erros da modelagem do segundo movimento. Conclui-se, portanto,
que os saltos observados provavelmente advém de um atraso do robô
para disponibilização de novos valores de posição e orientação. Tal
atraso pode estar relacionado ao tempo do cálculo das equações de cinemática direta do robô, visto que quando se aumenta a velocidade do
movimento, essas equações, em teoria, devem ser calculadas dentro de
um período menor de tempo.
4. Falta de precisão numérica do modelo de cinemática direta do próprio
robô: Essa hipótese também pode ser descartada pela simples observação da segunda coluna da Figura 3.15.
O motivo exato dos saltos na saída do manipulador não é conhecido, mas
como comentado, os saltos se tornam menos evidentes conforme se reduz a
velocidade de execução do movimento. Como será visto no Capítulo 4, a
metodologia de calibração da Unidade de Medição Inercial exige a execução
de movimentos com velocidades muito baixas, o que reduzirá ainda mais os
erros de modelagem. Os erros para o segundo tipo de movimento efetuado
com 40% da velocidade anterior são mostrados nas Figuras 3.16 e 3.17. A
Tabela 3.3 compara a razão entre a variância e média dos erros de modelagem
do segundo movimento e da sua versão com 40% da velocidade, indicando
3.3
Validação do Modelo Cinemático
36
que quanto menor a velocidade, mais desprezíveis se tornam os erros da
modelagem cinemática.
Outros erros de modelagem advém, naturalmente, das incertezas quanto
aos tamanhos dos eixos e quanto à medição dos ângulos das juntas, bem
como advém de erros matemáticos na elaboração do modelo, etc. O modelo
de cinemática direta encontrado, entretanto, foi considerado válido por representar relativamente bem a geometria dos movimentos do manipulador real,
especialmente quando este está executando movimentos de baixa velocidade.
Figura 3.15: Comparação dos valores de posição e orientação do robô manipulador real com o modelo cinemático desenvolvido, realçando o efeito
indesejado
3.3
Validação do Modelo Cinemático
37
Figura 3.16: Validação do modelo cinemático - Segundo movimento (com
40% da velocidade anterior): Erro na comparação das posições X, Y e Z do
manipulador e do modelo cinemático
Figura 3.17: Validação do modelo cinemático - Segundo movimento (com
40% da velocidade anterior): Erro na comparação dos elementos da matriz
de rotação do manipulador e do modelo cinemático
3.3
Validação do Modelo Cinemático
38
Tabela 3.3: Comparação dos erros de modelagem para o segundo movimento
a 100% e a 40% de velocidade das juntas
Variância/Média
100% de velocidade 40% de velocidade
X(mm)
455,4
92,7
Y (mm)
336,6
39,3
Z(mm)
227,5
241,8
R11
15,8
4,4
R12
16,8
4,6
R13
1,9
28,9
R21
20,0
5,7
R22
302,4
13,1
R23
9,5
0,3
R31
36,7
31,1
R32
19,4
11,4
R33
2,4
2,5
Capítulo 4
Calibração da Unidade de
Medição Inercial
A metodologia aqui descrita para calibração da unidade de medição inercial
utiliza um robô manipulador para reorientação dos sensores durante o processo de captura de dados. O estudo desenvolvido será guiado por aquele
proposto em (Renk et al., 2005), mas, ao contrário deste artigo, aqui tem-se
o objetivo de discutir detalhes práticos da obtenção dos dados do manipulador e dos modelos cinemáticos, da sincronização dos sinais e de outras dificuldades que se apresentam na hora da aplicação da metodologia proposta.
Esse trabalho será focado na calibração dos três acelerômetros da IMU. A
calibração dos girômetros, por sua vez, será deixada a cargo de trabalhos
futuros.
Em (Renk et al., 2005), o equipamento de medição (que contém três acelerômetros e três magnetômetros e está afixado à garra do robô) executa movimentos de rolamento, arfagem e guinada enquanto o braço movimenta três,
de suas seis juntas. Os movimentos são efetuados de forma lenta o bastante
para que a gravidade possa ser considerada como a única aceleração atuando
sobre os acelerômetros.
Uma vez que um conjunto de milhares de pontos tenha sido obtido nos
testes, modela-se a tensão de saída dos sensores como a variável real multiplicada pela sensibilidade do sensor e adicionada de um offset (também
conhecido como polarização). Embora seja ideal que os três acelerômetros e
três magnetômetros estejam alinhados ortogonalmente, a metodologia proposta não assume que isso seja verdade. Em seguida, com base nas leituras
dos sensores, algoritmos de otimização são usados para estimar a sensibili-
39
4.1
Modelagem para Calibração
40
dade, o offset e a orientação relativa entre cada acelerômetro/magnetômetro.
4.1
Modelagem para Calibração
Seja o subscrito b indicativo do sistema de coordenadas da base do robô,
o subscrito e indicativo do sistema de coordenadas da garra (ou ponta) e o
subscrito i indicativo do sistema de coordenadas associado a determinado elo
i. Os vetores unitários que descreverão cada um destes sistemas de coordenadas serão

 
 

îe
îb
îi
 ĵe  ,  ĵb  ,  ĵi  ;
k̂e
k̂b
k̂i
onde i varia de 1 a n, sendo n o total de elos do robô utilizado (neste caso, n =
6). Assume-se, então, que o sistema de coordenadas da base está localizado
na origem de um sistema de coordenadas inercial e que todos os movimentos
serão, como já dito, suficientemente lentos, de forma que a única aceleração
medida pelos acelerômetros é a gravidade. Os movimentos são executados,
na maior parte do tempo, com velocidade constante, o que garante em teoria
aceleração nula. Seja ~g o vetor gravitacional, que, na base do robô, é definido
como


gx
~gb =  gy  .
gz
A direção do vetor gravitacional ~g afeta a estimação de outros parâmetros
de interesse, de forma que estimar a sua direção em relação à base se torna
parte do problema de calibração.
Cada acelerômetro mede um componente escalar do vetor gravitacional
na direção do seu eixo (referido por um vetor de orientação em relação ao
sistema de coordenadas da garra). Deve-se, portanto, transformar o vetor de
orientação de cada acelerômetro, do sistema de coordenadas da garra, para
o sistema de coordenadas da base do robô.
Seja o subscrito k = 1,2,3 indicativo de um acelerômetro. Rotacionar o
vetor unitário îe de um ângulo β em torno do eixo ĵe e de um ângulo γ em
torno do eixo k̂e produz o vetor de orientação P̂k do k-ésimo acelerômetro
4.1
Modelagem para Calibração
41
em relação ao sistema de coordenadas da garra. A rotação de um ângulo βk
em torno do eixo ĵe é dada por


cos βk 0 sin βk
0
1
0 .
Rĵ (βk ) = 
− sin βk 0 cos βk
Já rotação de um ângulo γk em torno do eixo k̂e , para o acelerômetro k, é
dada por


cos γk − sin γk 0
Rk̂ (γk ) =  sin γk cos γk 0  .
0
0
1
De forma que o vetor de orientação de um acelerômetro P̂k no sistema de
coordenadas da garra é dado por
P̂ke = Rk̂ (γk )Rĵ (βk )îe .
(4.1)
onde a notação Rx (θ) indica uma rotação de θ graus em torno de um eixo
arbitrário x. Pode-se observar melhor as rotações definidas na figura 4.1.
Para representar P̂ke no sistema de coordenadas da base, deve-se conhecer
a matriz de rotação do sistema de coordenadas da garra para o sistema de
coordenadas da base. A representação de Denavit-Hartenberg, desenvolvida
na Seção 3.1, pode ser usada para encontrar a matriz de rotação desejada.
A matriz de rotação do sistema de coordenadas da junta i para a junta
i − 1 pode ser definida a partir da matriz Ai , mostrada na Equação (3.1),
como

i
Ri−1

cos(θi ) − sin(θi ) cos(αi ) sin(θi ) sin(αi )
=  sin(θi ) cos(θi ) cos(αi ) − cos(θi ) sin(αi )  .
0
sin(αi )
cos(αi )
Logo, o vetor de orientação P̂ke pode ser expresso no sistema de coordenadas da base através de
P̂kb = Rb1 R12 R23 R34 R45 R56 P̂ke .
A leitura efetuada pelo acelerômetro k, Vk , é definida como
(4.2)
4.1
Modelagem para Calibração
42
Figura 4.1: Rotações que definem a direção do eixo de medição dos acelerômetros.
Vk = Sk ak + δk ,
onde Sk é a sensibilidade, δk é o offset e ak é a componente da aceleração
na direção do eixo do k-ésimo acelerômetro. Desde que, em teoria, a única
aceleração medida pelos acelerômetros é devido a gravidade, a componente
da gravidade medida por k será
ak = |~g ||P̂k | cos φk = ~gbT P̂kb ,
(4.3)
onde φk é o ângulo entre ~gb e P̂kb . A magnitude da gravidade, |~g |, é conhecida
e constante e sejam φ e ψ, respectivamente, as rotações em torno do eixo ĵb e
k̂b . Pode-se observar melhor tais rotações na figura 4.2. Tem-se, então, que a
direção da gravidade relativa ao acelerômetro k com relação à base do robô
será
ĝkb = Rk̂ (ψk )Rĵ (φk )îb .
(4.4)
Logo, a tensão medida pelo acelerômetro k será dada por
Vk = Sk~gkTb P̂kb + δk = |~g |Sk ĝkTb P̂kb + δk .
(4.5)
4.2
Processo de Aquisição de Dados
43
Figura 4.2: Rotações que definem a direção aceleração da gravidade.
Substituindo a Equação (4.1), (4.2) e (4.4) em (4.5), obtém-se
i
iT h
h
Rb1 R12 R23 R34 R45 R56 Rk̂ (γk )Rĵ (βk )îe + δk . (4.6)
Vk = |~g |Sk Rk̂ (ψk )Rĵ (φk )îb
Na Equação (4.6), os parâmetros Rb1 , R12 , R23 , R34 , R45 e R56 dependem
apenas da geometria do robô e das configurações das juntas e |~g | será aproximadamente 9,8 m/s2 . Dessa forma, restam seis parâmetros para serem estimados para cada acelerômetro k: a sensibilidade Sk , o offset δk , os ângulos
de ajuste do vetor gravidade φk e ψk e os ângulos de ajuste do acelerômetro
γk e βk .
4.2
Processo de Aquisição de Dados
De forma a obter os dados para calibração, o acelerômetro de três eixos, afixado à garra do manipulador, deve ser rotacionado em rolamento, arfagem e
guinada. No experimento realizado, a junta 1 gira θ1 graus em torno do eixo
k̂b executando um movimento de guinada. Enquanto isso, a junta 5 é rotacionada θ5 graus em arfagem e a junta 6 gira θ6 graus em rolamento. Todas
as rotações mencionadas são efetuadas em torno do eixo de coordenadas da
4.2
Processo de Aquisição de Dados
44
própria junta. As médias de velocidade para as juntas 1, 5 e 6 são respectivamente 0,34◦ /s, 1,92◦ /s e 5,51◦ /s. A Figura 4.3 detalha o movimento, que
durou cerca de 30 minutos.
Figura 4.3: Representação do movimento executado pela garra do manipulador: O ângulo θ1 viaja de −160◦ a 160◦ , enquanto o ângulo θ6 varia de
−2500◦ a 2500◦ . Durante esse movimento, o ângulo θ5 vai de −90◦ a 90◦ e
de volta a −90◦ um total de 10 vezes.
Enquanto o movimento ocorria, dados de cerca de 35 mil orientações das
juntas foram coletados pelo manipulador a uma frequência de amostragem de
20Hz. Ao mesmo tempo, um sistema era responsável por armazenar as leituras da IMU, também na frequência de 20Hz. Os dados coletados de ambas as
fontes estavam dessincronizados entre si, visto que cada leitura foi efetuada
independentemente. De forma a sincronizar as duas medidas, relacionando
as posições das juntas às medidas dos acelerômetros em cada instante de
amostragem, efetuou-se o seguinte procedimento: com o manipulador parado, iniciou-se a coleta de dados no robô e no acelerômetro. Comandou-se,
antes de mais nada, uma mudança rápida na atitude do manipulador e, em
seguida, esse iniciou seu movimento lento. No final da trajetória programada,
executou-se outra mudança rápida na atitude do manipulador e concluiu-se
a coleta de dados. Posteriormente, no computador, transformou-se um vetor
ideal da gravidade (que aponta no sentido de −kb e tem módulo 9,8m/s2 ) da
base para a garra do robô em cada configuração de junta coletada. O sinal
obtido foi em seguida comparado às saídas dos acelerômetros, procurando sincronizar os movimentos rápidos que iniciaram e terminaram o movimento.
4.2
Processo de Aquisição de Dados
45
Naturalmente, tais sinais diferiam em polarização e sensibilidade, além de
que o sinal da gravidade transformado da base para a garra não levava em
consideração o eventual desalinhamento entre os três acelerômetros e entre
a gravidade e o sistema de coordenadas da base do robô. Tais sinais, entretanto, foram suficientes para se efetuar o sincronismo de início do movimento.
Concluída essa etapa, remove-se as faixas de dados que incluem os movimentos rápidos, deixando somente a trajetória lenta, que é necessária para essa
metodologia.
Os sinais sincronizados via "tentativa e erro", no entanto, apresentaram pequenos descompassos, conforme pode ser visto na Figura 4.4. Esse
fato realçou a desconfiança de que a frequência de amostragem não pode ser
considerada como perfeita para os dois sistemas de coletas de dados. Foi
estimado que a média e a variância da frequência de amostragem do robô
são, respectivamente, 19,9 e 0,2 Hz. O histograma da distribuição dos tempos de amostragem dentro de cada segundo é mostrado na Figura 4.5. Tais
informações foram obtidas ao se efetuar a leitura do tempo absoluto do robô
(que tinha a precisão de segundos, apenas) e compará-la como número aproximado de amostras que aconteciam dentro de cada segundo. Observa-se, de
forma qualitativa apenas, que o sistema do robô não consegue definir com
grande precisão a taxa de amostragem requisitada. Isso provavelmente se
deve às prioridades dos programas do usuário quando são executados no sistema operacional, à política de escalonamento de tarefas, etc. Infelizmente,
entretanto, a arquitetura computacional do robô não permite um controle
avançado das prioridades do sistema operacional. Tais características poderiam ser melhor exploradas com o uso do software Open C4G, também
R
oferecido pela COMAU.
No entanto, não houve tempo para explorar as
funcionalidades de tal software.
Da mesma forma, não se pode afirmar que os dados da IMU foram coletados a 20Hz. Uma observação detalhada dos dados que geraram a Figura
4.4 revela inclusive que o sinal da IMU está, hora atrasado, hora adiantado
em relação ao sinal obtido do robô. De forma a reduzir os efeitos indesejados
de tal descompasso, optou-se por reamostrar o sinal que tem o maior número
de amostras. No caso, o sinal do acelerômetro teve seu tempo de amostragem
R
aumentado em cerca de 1% por meio da função resample do MATLAB,
que utiliza um filtro não-causal anti-falseamento (passa-baixas) de ordem 10
antes de decimar ou interpolar os dados.
Foi então contruído um problema de otimização via método de QuasiNewton que objetivava reduzir o erro quadrático entre os sinais a serem
sincronizados, modificando o tempo de início de um dos sinais, sua taxa de
4.2
Processo de Aquisição de Dados
46
Figura 4.4: Sincronização dos sinais advindos dos acelerômetros e da transformação da gravidade usando a matriz de rotação do robô.
Figura 4.5: Histograma da distribuição da frequência de amostragem praticada pelo robô.
4.3
Estimação dos Parâmetros
47
amostragem, seu offset e sua sensibilidade, de forma a sobrepor da melhor
forma possível os sinais envolvidos. Esse procedimento, entretanto, não encontrou valores muito melhores que o procedimento de "tentativa e erro",
além de frequentemente ficar preso a mínimos locais.
A unidade de medição inercial utilizada nos ensaios é chamada de CEAFDASu (ver Figura 4.6) e possui um acelerômetro triaxial, um girômetro e
um GPS. Segundo (CEA, 2009), ela é alimentada por uma bateria de 12 volts
e armazena os dados coletados (a uma taxa de 20Hz) em formato binário (10
bits), correspondente à faixa decimal de 0 a 1024. Não foram encontradas
maiores informações sobre esse equipamento. O acelerômetro triaxial, por
sua vez, possui faixa de medição de ±3,6g e é capaz de medir a aceleração
da gravidade, bem como a aceleração resultante de movimento, choque ou
vibração. A alimentação é feita com tensão de 3 volts e corrente 350 micro
ampéres e a saída varia entre 0 a 5 volts. O acelerômetro possui sensibilidade
axial cruzada (definida como o acoplamento entre quaisquer dois eixos) de
±1% e não-linearidade de ±0,3% do fundo de escala (medida como a razão
entre o desvio máximo da curva ideal e a entrada máxima).
Figura 4.6: Unidade de medição inercial CEA-FDASu.
4.3
Estimação dos Parâmetros
Para calibrar o acelerômetro triaxial a partir dos dados coletados, formulase um problema de otimização de mínimos quadrados utilizando a Equa-
4.3
Calibração dos acelerômetros separadamente
48
ção (4.6). A minimização é realizada com base na função fmincon, do
R que tenta encontrar o mínimo de uma função escalar multivaMATLAB,
riável com restrições, a partir de uma condição inicial. Essa função emprega o
método de Quasi-Newton, que atualiza a aproximação da matriz Hessiana ao
invés de recalculá-la, aumentando a eficiência computacional e melhorando
a convergência da solução (Rassaian and Lee, 1998).
A estimação inicial dos parâmetros é obtida por meio de algoritmos genéR com tamanho da população de 20 indivíduos
ticos (função ga do MATLAB,
e limite de 10 mil gerações) por estes serem capazes de encontrar um mínimo
global para a função. No caso sob estudo, entretanto, os algoritmos genéticos
convergem mais lentamente e apresentam maior erro de estimação se comparados à função fmincon. O artigo (Renk et al., 2005), entretanto, utiliza
apenas um método de otimização não limitado, sem especificar claramente
como obteve os parâmetros iniciais.
Seguindo a metodologia de (Renk et al., 2005), dois problemas de estimação de parâmetros são formulados. Primeiramente, cada um dos acelerômetros é calibrado individualmente, determinando se os sensores apresentam
problemas ou se o modelo é inadequado. Em especial, visa comparar e verificar a consistência da estimação na direção da gravidade para cada acelerômetro. Em seguida, os três acelerômetros são calibrados simultaneamente,
tornando possível a validação dos parâmetros já encontrados.
Antes de mais nada, entretanto, de forma a verificar a validade da abordagem de otimização aqui proposta, calibra-se os sensores (em separado e
simultaneamente) utilizando parâmetros simulados. Para isso, especificam-se
valores arbitrários de sensibilidade, polarização e orientação de cada acelerômetro, bem como de orientação da gravidade, gerando dados simulados para
as 30 mil posições de juntas previamente coletadas. Os parâmetros estimados
resultantes são, então, comparados aos parâmetros conhecidos.
Detalhes e resultados dos procedimentos aqui descritos são vistos nas
seções seguintes.
4.3.1
Calibração dos acelerômetros separadamente
Primeiramente, cada um dos acelerômetros é calibrado em separado, assumindose que a direção da gravidade com relação ao sistema de coordenadas da base
é desconhecida. Também considera-se, conforme descrito na Seção 4.1, que
o módulo da gravidade é igual a 9,8m/s2 . A leitura em tensão do k-ésimo
acelerômetro é dada pela Equação (4.6) e, por conseguinte, a função a ser
4.3
Calibração dos acelerômetros simultaneamente
49
otimizada será
n X
Jk (Sk , δk , γk , βk , φk , ψk ) ≡
2
T (4.7)
6
− |~g |Sk Rk̂ (ψk )Rĵ (φk )îb
Rb Rk̂ (γk )Rĵ (βk )îe + δk
,
Vk,j
j=1
onde Rb6 é a matriz de rotação da garra do robô para a base, |~g | é o módulo
da aceleração da gravidade e Vk,j é a j-ésima leitura do acelerômetro k.
Os parâmetros a serem estimados são, então, a sensibilidade Sk , o offset (ou
polarização) δk , os ângulos de ajuste do vetor gravidade, φk e ψk , e os ângulos
de ajuste do acelerômetro k, γk e βk .
4.3.2
Calibração dos acelerômetros simultaneamente
A calibração simultânea dos acelerômetros, por sua vez, utiliza somente um
vetor da gravidade desconhecido, visto que a estimação da gravidade para
cada acelerômetro é a mesma. O modelo da leitura do acelerômetro é descrita
em (4.6), enquanto a função a ser otimizada será
J(S1 , S2 , S3 , δ1 , δ2 , δ3 , γ1 , γ2 , γ3 , β1 , β2 , β3 , φ, ψ) ≡
3
X
Jk (Sk , δk , γk , βk , φ, ψ)
k=1
2
3 X
n T X
6
=
Vk,j − |~g |Sk Rk̂ (ψ)Rĵ (φ)îb
Rb Rk̂ (γk )Rĵ (βk )îe + δk
,
k=1 j=1
(4.8)
4.3.3
Estimação dos parâmetros com dados simulados
Para a geração dos dados simulados, assume-se que a gravidade aponta no
sentido de −k̂b , de forma que, para os três acelerômetros, os parâmetros φk e
ψk valem respectivamente 90◦ e 0◦ . Os outros parâmetros são mostrados na
Tabela 4.1. Utilizando-se, por fim, os valores reais, coletados das juntas, e a
Equação (4.6), são gerados dados que simulam os acelerômetros 1, 2 e 3.
Para todos os experimentos descritos a seguir, o seguinte procedimento foi
adotado para otimização dos parâmetros: determina-se, primeiramente, através de
R os valores iniciais dos parâmetros
algoritmos genéticos, (função ga do MATLAB)
4.3
Calibração individual dos dados simulados
50
Tabela 4.1: Parâmetros usados na geração de dados simulados
Acelerômetro Sk (Vs2 /m) δk (V) βk (◦ ) γk (◦ ) φk (◦ ) ψk (◦ )
1
0,1
2,45
−89
2
90
0
2
0,15
2,55
1 93,5
90
0
3
0,095
2,3 −3,75
−2
90
0
a serem otimizados. Em seguida, utiliza-se o método de Quasi-Newton (função
R para a estimação ótima dos parâmetros.
fmincon do MATLAB)
Como forma de análise, nas seções a seguir, transforma-se a saída real da IMU
(ou a aproximação obtida através dos parâmetros otimizados) em um valor de
aceleração (m/s2 ). Para tanto, utiliza-se a fórmula
L−δ
,
(4.9)
S
onde S e δ são os parâmetros de sensibilidade e polarização obtidos, L é a leitura
(um valor digital) e A é a aceleração correspondente, em m/s2 . Dessa forma,
converte-se os valores digitais em valores de aceleração, facilitando a análise.
A=
4.3.3.1
Calibração individual dos dados simulados
Utilizando os parâmetros do acelerômetro 1 (Tabela 4.1) e assumindo-se que não
existe nenhum tipo de ruído nos dados simulados, efetua-se o procedimento de otimização para um conjunto crescente de pontos, utilizando-se a Equação (4.7). Em
um segundo momento, ainda utilizando os parâmetros do acelerômetro 1, inclui-se,
nos dados simulados, um ruído branco com média zero e variância equivalente a
10% da amplitude do sinal simulado. Os procedimentos são repetidos para um
conjunto crescente de pontos. Em um terceiro experimento, soma-se ao sinal simulado um ruído branco com média zero e variância igual a 50% da amplitude desse
sinal. O valor estimado dos parâmetros sensibilidade (S) e polarização (δ) para o
acelerômetro 1 com o aumento do número de pontos é mostrado nas Figuras 4.7 e
4.8.
Observa-se, nas Figuras 4.7 e 4.8, que o aumento do número de pontos simulados ajuda na redução do erro de estimação dos parâmetros. Por outro lado, o
aumento da variância do ruído presente reduz a velocidade de convergência na estimação. Para calibrar os acelerômetros reais, portanto, deve-se ter um número tão
grande quanto possível de dados amostrados. Um limitante para esse número foi a
capacidade computacional disponível. Em um computador Intel Core 2 Duo com
1 GB de memória RAM, a otimização, via algoritmos genéticos, de 30 mil pontos
coletados, leva cerca de quatro horas para se completar.
4.3
Calibração individual dos dados simulados
51
Figura 4.7: Estimação da sensibilidade do acelerômetro 1 para um conjunto
crescente de dados simulados com diferentes níveis de ruído branco.
Figura 4.8: Estimação da polarização do acelerômetro 1 para um conjunto
crescente de dados simulados com diferentes níveis de ruído branco.
4.3
Calibração individual dos dados simulados
52
Utilizando-se, então, os parâmetros simulados, gerou-se dados para os três acelerômetros. A Tabela 4.2 mostra os parâmetros iniciais dos acelerômetros simulados
1, 2 e 3, bem como a raiz quadrada do erro quadrático médio (ErroRM S , em m/s2 )
de estimação para cada acelerômetro. Tais parâmetros, como informado, foram
encontrados através de algoritmos genéticos. A Tabela 4.3, por sua vez, mostra
os parâmetros ótimos e o erro de otimização dos acelerômetros simulados 1, 2 e 3,
encontrados via método de Quasi-Newton.
Tabela 4.2: Parâmetros iniciais para otimização dos dados
ruído (calibração individual)
Acel. k Sk (Vs2 /m) δk (V)
βk (◦ )
γk (◦ )
φk (◦ )
1
0,0842 2,4805 48,6398
1,1484 89,2938
2
0,1395 2,5605 0,4624 36,1482 89,8986
3
0,0197 2,3019 9,8044 −6,1927 17,8088
simulados sem
ψk (◦ ) ErroRM S
−0,6704
14,4552
−0,6116
0,3815
−2,4397
22,6893
Tabela 4.3: Parâmetros estimados para os dados simulados sem ruído (calibração individual)
Acel. k Sk (Vs2 /m) δk (V)
βk (◦ )
γk (◦ )
φk (◦ )
ψk (◦ ) ErroRM S
1
0,1000 2,4500 −89,0000
2,0001 90,0001 −0,0002 2,2 × 10−5
2
0,1500 2,5500
1,0000 93,5000 90,0000
0,0000
0,0000
3
0,0950 2,3000 −3,7500 −2,0000 90,0000
0,0000
0,0000
Observa-se, pela comparação das Tabelas 4.2 e 4.3, que o erro decresce consideravelmente, assim como os parâmetros se aproximam de seus valores reais, ao
se utilizar o método de Quasi-Newton. Sem utilizar os algoritmos genéticos, entretanto, a otimização fica presa em mínimos locais, não encontrando os valores
reais dos parâmetros simulados. Observa-se também que os valores de φk e ψk ,
que determinam a direção da gravidade, são relativamente próximos para os três
acelerômetros, indicando uma consistência nos cálculos realizados, visto que a gravidade é estimada em relação à base do robô.
Os ensaios mostraram, portanto, que os algoritmos de otimização e a metodologia utilizada, de fato, conseguem estimar um conjunto de parâmetros desconhecidos, convergindo para seus valores reais. Os erros foram desprezíveis e os
resultados gerados foram consistentes com o esperado, apesar de, nesse teste, os
dados simulados não conterem ruído, visto que o objetivo aqui era testar a validade
da técnica de otimização proposta. As Figuras 4.7 e 4.8, entretanto, mostram que
com um ruído branco de variância igual 10% da amplitude do sinal, os parâmetros
convergem para valores muito próximos dos reais.
4.3
Calibração simultânea dos dados simulados
4.3.3.2
53
Calibração simultânea dos dados simulados
Utilizando os parâmetros mostrados na Tabela 4.1 e assumindo-se que não existe
nenhum tipo de ruído, são gerados dados para os acelerômetros 1, 2 e 3. Efetuase o procedimento de otimização simultânea, descrito anteriormente, com base
na Equação (4.8). Os parâmetros iniciais, obtidos via algoritmos genéticos, são
mostrados na Tabela 4.4, enquanto os parâmetros finais, obtidos via Quasi-Newton,
são mostrados na Tabela 4.5.
Tabela 4.4: Parâmetros iniciais para otimização dos dados simulados sem
ruído (calibração simultânea)
Acel. k Sk (s2 /m)
δk
βk ( ◦ )
γk (◦ )
φ(◦ )
ψ(◦ )
1
0,1364 2,4889 −101,0668 2,5593
2
0,1581 2,4177
2,7056 70,6638 87,0000 −0,6719
3
−0,0357 2,1236
12,6918 61,1811
Tabela 4.5: Parâmetros estimados para os dados simulados sem ruído (calibração simultânea)
Acel. k Sk (s2 /m)
δk
βk (◦ )
γk (◦ )
φ(◦ )
ψ(◦ )
1
0,1000 2,4500 −89,0000
2,0000
2
0,1500 2,5500
1,0000 93,5000 90,0000 −0,0000
3
0,0950 2,3000 −3,7500 −2,0000
Primeiramente, observa-se nas Tabelas 4.4 e 4.5, que os valores de φk e ψk são
iguais, conforme foi descrito pela Equação (4.8). Pode-se também ver a importância
da utilização do método de Quasi-Newton na eficaz estimação dos parâmetros.
Os algoritmos genéticos conseguiram reduzir a raiz quadrada do erro quadrático
médio de estimação até apenas 10,7270m/s2 , enquanto o método de Quasi-Newton
conseguiu reduzir tais erros na estimação para 0.0000m/s2 .
Portanto, a calibração conjunta dos acelerômetros é bastante consistente com
a calibração individual, visto que os parâmetros finais são atingidos e que o erro
total de ambos os procedimentos é muito próximo de zero. O modelo de otimização,
portanto, se mostra adequado aos caso proposto.
4.3.4
Calibração dos acelerômetros
Finalmente, calibra-se cada acelerômetro utilizando os dados experimentais. As
seções seguintes discorrem sobre a calibração individual e simultânea dos acelerômetros com base nos dados das juntas do manipulador e nas leituras dos acelerômetros, sinais estes que foram sincronizados, conforme descrito na Seção 4.2.
4.3
Calibração individual dos acelerômetros
54
Observa-se que a saída da IMU, como mencionado anteriormente, não possui
unidade e varia entre 0 e 1024. Por esse motivo, para analisar os valores obtidos,
nas seções a seguir, transforma-se a saída real da IMU (ou a aproximação obtida
através dos parâmetros otimizados) em um valor de aceleração (m/s2 ). Para tanto,
utiliza-se a Equação (4.9).
4.3.4.1
Calibração individual dos acelerômetros
Com a utilização de algoritmos genéticos, chegou-se aos valores mostrados na Tabela 4.6. Estes parâmetros, que estão relativamente bem localizados próximo a um
mínimo global, serão utilizados como valores iniciais. Utiliza-se, então, o método
de Quasi-Newton para calcular os valores finais, mostrados na Tabela 4.7. O valor
de erro presente nessas tabelas equivale à raiz quadrada do erro quadrático médio,
em m/s2 .
Tabela 4.6: Parâmetros iniciais para a calibração dos acelerômetros (calibração individual)
Acel. k Sk (s2 /m)
δk
βk ( ◦ )
γk (◦ )
φk (◦ ) ψk (◦ ) ErroRM S
1
−10,0443 378,0278 48,4305 89,9170 89,5000 0,0380
0,1921
2
11,6429 504,5238 41,2791 272,0817 87,6875 1,2484
0,3809
3
−11,7563 517,9936 89,4760
0,8407 90,6289 0,4148
0,1499
Tabela 4.7: Parâmetros estimados para a calibração dos acelerômetros (calibração individual)
Acel. k Sk (s2 /m)
δk
βk ( ◦ )
γk (◦ )
φk (◦ )
ψk (◦ ) ErroRM S
1
−10,0611 378,0783 47,8944 90,5743 89,9938 −0,2088
0,1751
2
12,0632 505,7450 42,2072 270,7826 89,9754 −0,1590
0,1751
3
−11,7458 516,8527 90,4054
0,8079 89,9725
0,0398
0,0911
Observa-se, primeiramente, que algumas restrições foram impostas aos valores
possíveis dos parâmetros dos acelerômetros, tanto para a aplicação dos algoritmos genéticos, quanto para a aplicação do método de Quasi-Newton. Sabe-se, por
exemplo, que a gravidade tem direção próxima de −k̂b , o que gerou a restrição
(relaxada) para os parâmetros φk e ψk de 80◦ a 100◦ e de −10◦ a 10◦ , respectivamente. Os ângulos βk e γk , por sua vez, só podiam variar de 0◦ a 360◦ , visto que
quaisquer outros valores de ângulos são redundantes. A princípio, os parâmetros Sk
e δk foram deixados livres, para assumir quaisquer valores, negativos ou positivos.
R se mostra especialmente útil,
Nesse contexto, a função fmincon do MATLAB
visto que ela possibilita definir restrições de validade para os parâmetros estimados. Ainda sim, com todas as restrições, existem diferentes valores dos parâmetros
4.3
Calibração simultânea dos acelerômetros
55
que geram as mesmas curvas de calibração. Deve-se observar atentamente esses
valores durante a otimização, de forma que se possa afirmar que duas curvas são
equivalentes.
Uma outra observação diz respeito à orientação do acelerômetro em relação
ao sistema de coordenadas da garra, o que definirá, não somente os valores dos
parâmetros βk e γk , como também o sinal do parâmetro de sensibilidade. Todos
os testes, entretanto, foram feitos com o acelerômetro em uma única orientação
relativa, o que não influenciará nas conclusões do trabalho.
Uma importante conclusão a respeito dos dados mostrados nas Tabelas 4.6 e
4.7 é que os valores representativos da direção da gravidade (βk e γk ) são, conforme esperado, relativamente próximos para acelerômetros diferentes. Conclui-se
também que o erro geral diminui ao se aplicar o método de Quasi-Newton.
4.3.4.2
Calibração simultânea dos acelerômetros
Com base na Equação (4.8), projeta-se um problema de otimização que visa encontrar os parâmetros de calibração dos três acelerômetros simultaneamente. A
Tabela 4.8 mostra os parâmetros iniciais desse problema, obtidos através de algoritmos genéticos. A Tabela 4.9, por sua vez, mostra os parâmetros de calibração
ótimos, obtidos via método de Quasi-Newton.
Tabela 4.8: Parâmetros iniciais para a calibração dos acelerômetros (calibração simultânea)
Acel. k Sk (s2 /m)
δk
βk ( ◦ )
γk (◦ )
φ(◦ )
ψ(◦ )
1
−11,5674 393,3344 51,8747 100,7123
2
10,8535 509,1909 25,1892 303,9624 84,0000 2,1832
3
−8,3273 517,1746 100,8133
8,7258
Tabela 4.9: Parâmetros estimados para a calibração dos acelerômetros (calibração simultânea)
Acel. k Sk (s2 /m)
δk
βk (◦ )
γk (◦ )
φ(◦ )
ψ(◦ )
1
−10,0612 378,0768 47,9410 89,4385
2
12,0630 505,7460 42,1860 270,7834 89,9633 −0,1100
3
−11,7457 516,8144 89,5959
0,8106
Observa-se que os dados das Tabelas 4.8 e 4.9 se sujeitam às mesmas restrições discutidas na Seção 4.3.4.1. A raiz quadrada do erro quadrático médio total
obtido pelos algoritmos genéticos equivale a 1,7033 m/s2 , enquanto o erro obtido
via Quasi-Newton é de 0,1682 m/s2 , o que mostra que os algoritmos genéticos,
4.3
Análise dos resultados
56
conforme mencionado anteriormente, não convergem para o valor ótimo dos parâmetros.
4.3.5
Análise dos resultados
Primeiramente, observa-se que os valores estimados através dos problemas de calibração individual e de calibração simultânea são bastante próximos. Isso evidencia,
conforme discutido na Seção 4.3.3, que o modelo de otimização proposto é consistente. A Tabela 4.10 facilita a comparação dos parâmetros estimados.
Tabela 4.10: Parâmetros estimados para a calibração dos acelerômetros
Calibração individual Calibração simultânea
S1 (s2 /m)
−10,0611
−10,0612
2
S2 (s /m)
12,0632
12,0630
2
S3 (s /m)
−11,7458
−11,7457
δ1
378,0783
378,0768
δ2
505,7450
505,7460
δ3
516,8527
516,8144
◦
β1 ( )
47,8944
47,9410
β2 (◦ )
42,2072
42,1860
◦
β3 ( )
90,4054
89,5959
◦
γ1 ( )
90,5743
89,4385
◦
γ2 ( )
270,7826
270,7834
γ3 (◦ )
0,8079
0,8106
◦
φ1 ( )
89,9938
◦
φ2 ( )
89,9754
89,9633
φ3 (◦ )
89,9725
ψ1 (◦ )
−0,2088
◦
ψ2 ( )
−0,1590
−0,1100
ψ3 (◦ )
0,0398
As Figuras 4.9, 4.10 e 4.11 mostram o erro do modelo gerado pelos parâmetros
da Tabela 4.10 em relação à saída dos acelerômetros. Mostra-se também, nessas figuras, a média e a variância do erro para cada conjunto de parâmetros. O
histograma dos mesmos valores de erro é mostrado nas Figuras 4.12, 4.13 e 4.14.
Assume-se que o erro mostrado advém, principalmente, de sinais de ruído na saída
do acelerômetro, de pequenas oscilações mecânicas do manipulador, de incertezas
na taxa de amostragem e de imprecisão no sincronismo entre os sinais (conforme
discutido na Seção 4.2), de erros de modelagem e quantização nas variáveis do
manipulador (conforme observado na Seção 3.3), além de erros na especificação e
4.3
Análise dos resultados
57
otimização dos parâmetros, etc.
Figura 4.9: Erro na estimação dos parâmetros para o acelerômetro 1.
Com base na comparação da variância do erro das Figuras 4.9, 4.10 e 4.11,
define-se que os parâmetros de calibração utilizados serão aqueles obtidos no processo de calibração individual dos acelerômetros. Os parâmetros relacionados à
gravidade serão aqueles obtidos na calibração simultânea, visto que estes levam em
consideração os dados dos três acelerômetros. O conjunto final de parâmetros é
mostrado na Tabela 4.11.
Tabela 4.11: Parâmetros finais estimados para a calibração dos acelerômetros
Acel. k Sk (s2 /m)
δk
βk (◦ )
γk (◦ )
φ(◦ )
ψ(◦ )
1
−10,0611 378,0783 47,8944 90,5743
2
12,0632 505,7450 42,2072 270,7826 89,9633 −0,1100
3
−11,7458 516,8527 90,4054
0,8079
A partir dos parâmetros βk e γk da Tabela 4.11, estima-se os ângulos entre os
eixos dos três acelerômetros, os quais são mostrados na Tabela 4.12. A exatidão
dos ângulos era esperada, visto que trata-se de um acelerômetro triaxial comercial.
Também como esperado, o produto vetorial do eixo unitário dos acelerômetros 1 e
2 resulta no eixo do acelerômetro 3.
Finalmente, como forma de validar os parâmetros de calibração otimizados,
utiliza-se um segundo conjunto de dados de juntas. Esse conjunto representa um
4.3
Análise dos resultados
Figura 4.10: Erro na estimação dos parâmetros para o acelerômetro 2.
Figura 4.11: Erro na estimação dos parâmetros para o acelerômetro 3.
58
4.3
Análise dos resultados
59
Figura 4.12: Histograma do erro na estimação dos parâmetros para o acelerômetro 1.
Figura 4.13: Histograma do erro na estimação dos parâmetros para o acelerômetro 2.
4.3
Análise dos resultados
60
Figura 4.14: Histograma do erro na estimação dos parâmetros para o acelerômetro 3.
Tabela 4.12: Ângulo entre os eixos dos três acelerômetros
Acelerômetros Angulo entre (◦ )
1e2
90,1014
1e3
90,0985
2e3
90,3173
movimento idêntico ao anterior (inclusive, a IMU está com a mesma orientação),
exceto que esse segundo conjunto foi realizado em velocidades cerca de vinte vezes
maiores, de forma que, nesse caso, as acelerações do movimento começam a fazer
diferença. As Figuras 4.15, 4.16 e 4.17 mostram o sinal dos acelerômetros e o sinal
gerado pelos parâmetros da Tabela 4.11 aplicados na Equação (4.6). A raiz quadrada do erro quadrático médio dos sinais das Figuras 4.15, 4.16 e 4.17 é 1,7123
m/s2 , 1,6831 m/s2 e 0,8461 m/s2 , respectivamente. Observa-se, nesse caso, uma
grande falta de sincronismo entre os sinais das juntas e os sinais dos acelerômetros,
o que aumenta muito o erro. Pode-se, entretanto, notar a similaridade dos sinais,
que diferem basicamente por atrasos de tempo. Conclue-se, portanto, que os parâmetros estimados calibram os acelerômetros para outros tipos de movimentos, mas
que um fator decisivo no processo é a correta sincronização dos sinais de juntas do
robô com os sinais dos acelerômetros. Em movimentos rápidos, especialmente, em
que os dados mudam muito de amostra para amostra, uma pequena diferença nos
tempos de amostragem pode provocar grandes erros na estimação da aceleração.
4.3
Análise dos resultados
61
Figura 4.15: Validação dos parâmetros estimados para o acelerômetro 1.
Figura 4.16: Validação dos parâmetros estimados para o acelerômetro 2.
4.3
Análise dos resultados
62
Figura 4.17: Validação dos parâmetros estimados para o acelerômetro 3.
Capítulo 5
Conclusão
O objetivo final desse trabalho foi alcançado. Efetuou-se, procurando ser bastante
criterioso, a calibração dos acelerômetros de uma unidade de medição inercial utilizando um manipulador robótico. Antes disso, entretanto, foi feito um estudo
aprofundado em várias áreas correlatas.
5.1
Visão geral
Este trabalho consistiu da especificação e modelagem de um manipulador robótico visando a calibração dos sensores de uma unidade de medição inercial. Uma
revisão bibliográfica das áreas envolvidas nesse estudo foi mostrada no Capítulo
1. No Capítulo 2, uma breve discussão a respeito dos requisitos do manipulador para realização do trabalho aqui proposto permitiu a especificação do robô
R SMART SiX como objeto de estudo. A partir disso, no Capítulo 3,
COMAU
desenvolveu-se uma modelagem cinemática, obtida seguindo o procedimento de
Denavit-Hartenberg. A geometria do robô passou, então, a ser representada pelo
Jacobiano do manipulador e pelas equações de cinemática direta, as quais foram
validadas com dados reais. Com base nos modelos cinemáticos obtidos, realizou-se,
no Capítulo 4, a etapa de calibração dos acelerômetros de uma unidade de medição
inercial. Para tanto, lançou-se mão de uma metodologia que prevê utilizar o robô
para movimentar a IMU em diversas orientações, de forma lenta o suficiente para
que se possa considerar que a única aceleração atuando sobre os sensores é a da
gravidade. Algoritmos de otimização foram usados para encontrar os parâmetros
de calibração dos acelerômetros, que englobam tanto a sensibilidade e a polarização
dos sensores, quanto o ângulo de alinhamento entre os três acelerômetros.
Como extensão dos estudos desenvolvidos, mostra-se, no Anexo A, a obtenção do modelo dinâmico do manipulador a partir da física do processo, com base
63
5.2
Resultados obtidos
64
no formalismo de Euler-Lagrange. De posse dos modelos cinemático e dinâmico,
efetuou-se, no Anexo B, uma simulação computacional da estratégia de controle de
Torques Computados, aplicada ao manipulador robótico especificado. A simulação
em malha fechada é efetuada para três situações distintas: O robô a vazio (sem
carga na garra), o robô com carga na garra e o robô afixado à parede.
5.2
Resultados obtidos
Como forma de avaliar o grau de cumprimento da proposta apresentada e de analisar o conhecimento adquirido, relaciona-se, a seguir, os resultados obtidos com os
objetivos do trabalho.
1. Especificação para compra de um manipulador robótico industrial com 6 graus
de liberdade:
Especificou-se o manipulador necessário aos fins desse trabalho, tratando
particularidades como volume de trabalho, precisão, carga máxima, etc. O
robô adquirido, com fundos da Fundação de Amparo à Pesquisa do Estado
R
de Minas Gerais (FAPEMIG) e através de uma parceria COMAU/UFMG,
R SMART SiX, uma estrutura antropomórfica com seis graus
foi o COMAU
de liberdade e limite de carga de seis quilos.
2. Modelagem cinemática do manipulador robótico:
Toda a geometria dos movimentos do manipulador foi descrita através dos
modelos cinemáticos, os quais foram obtidos a partir do procedimento de
Denavit-Hartenberg. Tais modelos são representados pelo Jacobiano do manipulador e pelas equações de cinemática direta, que foram base para encontrar a matriz de rotação do sistema de coordenadas da garra para o sistema
de coordenadas da base - matriz essa que utilizada posteriormente na aplicação da metodologia de calibração. Através da validação das equações de
cinemática direta, percebeu-se erros de quantização nas variáveis de posição
e orientação da garra lidas do manipulador real, as quais deverão ser tratadas
com atenção especial em trabalhos futuros.
3. Utilização do manipulador real para calibração dos sensores (foco nos acelerômetros) de uma Unidade de Medição Inercial:
Através da aplicação da metolodogia de calibração de acelerômetros vista
em (Renk et al., 2005), determinou-se os parâmetros de sensibilidade e polarização, bem como de alinhamento relativo, para os três acelerômetros pertencentes a uma unidade de medição inercial. Para chegar a tal resultado,
utilizou-se o manipulador robótico para movimentar a IMU em roll, pitch e
yaw, de forma lenta o bastante para que a única aceleração lida pelos acelerômetros fosse a da gravidade. Enquanto o robô se movimentava, dados eram
5.3
Sugestões para trabalhos futuros
65
lidos, tanto pela IMU, quanto pelas juntas do robô. A partir desses dados,
uma vez sincronizados, desenvolveu-se dois problemas de otimização: um
que visava a calibração individual dos acelerômetros e um que visava a calibração dos três acelerômetros simultaneamente. Os modelos de otimização
foram primeiramente testados e analisados usando parâmetros de calibração
simulados. Observou-se que estes modelos ficavam frequentemente presos em
mínimos locais, o que definiu a utilização de algoritmos genéticos para determinar os valores iniciais da otimização de Quasi-Newton. Tal procedimento
permitiu atingir convergência para os mínimos globais, com valores baixos
de erro. Em seguida, tal procedimento foi aplicado aos dados reais, lidos dos
acelerômetros, resultando em um conjunto de parâmetros que foram posteriormente validados em outro conjunto de dados. Observou-se principalmente
a importância do sincronismo entre os sinais de saída dos acelerômetros e
de ângulos das juntas, mas uma vez bem sincronizados, as medidas dos acelerômetros calibrados apresentam erro de cerca de 0.03m/s2 . Tal valor de
erro tende, ainda, a se tornar menor se equipamentos de coletas de dados
mais confiáveis forem utilizados, o que permitiria uma sincronização dos sinais mais eficiente. Observa-se também que os parâmetros de calibração
obtidos só são garantidos na faixa ±1g, mas um acelerômetro com baixa
não-linearidade permite, em tese, extrapolar as estimações além dessa faixa.
Conclui-se que a metodologia de calibração de acelerômetros utilizando um
manipulador robótico gerou resultados consistentes e dentro do esperado.
Uma das vantagens dessa metodologia consiste na independência das medições de posição e orientação da garra, sinais estes que, como visto, apresentam elevado nível de ruído e deformação. A principal desvantagem é a
dificuldade de sincronizar os sinais advindos da IMU e do robô.
5.3
Sugestões para trabalhos futuros
Sugere-se para melhoramentos dos resultados obtidos e desenvolvimento de novos
trabalhos:
1. Aplicação da metodologia aqui vista (com as devidas modificações) na calibração de outros tipos de sensores, tais como magnetômetros;
2. Utilização de mecanismos mais eficientes e confiáveis de coletas de dados,
que garantam maior precisão na especificação do tempo de amostragem;
3. Comparação dos parâmetros obtidos seguindo outras metodologias de calibração de acelerômetros;
4. Validação do modelo dinâmico no manipulador real;
5.3
Sugestões para trabalhos futuros
66
5. Desenvolvimento da estratégia de controle por torques computados no manipulador real.
Apêndice A
Modelagem Dinâmica
No Capítulo 3 foi discutida a modelagem cinemática do manipulador. Nesta seção,
seguindo os princípios repassados na revisão bibliográfica (1.3), modelar-se-á o
R SMART SiX dinamicamente.
manipulador robótico COMAU
Dois modelos dinâmicos serão desenvolvidos nas subseções seguintes: Um deles,
baseado no formalismo de Euler-Lagrange, é importante para o conhecimento da
planta e para a sintonia de controladores. O segundo modelo é utilizado para
simulação computacional no Anexo B.
A.1
Modelagem por Formalismo
de Euler-Lagrange
As equações de Euler-Lagrange são responsáveis por descrever a evolução de um
sistema mecânico sujeito a restrições holonômicas quando as forças de restrição
satisfazem ao princípio do trabalho virtual. Antes de desenvolver tais equações,
entretanto, definir-se-á cada um destes termos.
Segundo a metodologia vista em (Spong and Vidyasagar, 1989), uma restrição
holonômica é uma igualdade da forma
gi (r1 ,. . .,rk ) = 0,
(A.1)
onde i = 1,. . .,l, sendo l o número total de restrições sobre as quais o sistema
está sujeito. O sistema, no caso, é composto por k partículas, cujos vetores de
posição são r1 ,. . .,rk . Um sistema sujeito a l limitações holonômicas pode ser visto
como um sistema que perdeu l graus de liberdade. Neste caso, pode ser possível
expressar as coordenadas das k partículas em termos de n coordenadas generali-
67
A.1
Princípio de D’Alembert
68
zadas q1 ,. . .,qn independentes entre si. Coordenadas generalizadas, comumente,
são ângulos e posições e podem ser usadas para sistemas com números infinitos
de partículas. Restrições são ditas não-holonômicas se estas não tem a forma de
igualdade mostrada acima.
Ainda segundo (Spong and Vidyasagar, 1989), Deslocamentos virtuais, são um
conjunto de deslocamentos infinitesimais δr1 , . . . ,δrk consistentes com as restrições
impostas. Um corpo rígido pode ser pensado como se a distância entre quaisquer
duas partículas do corpo se mantém constante durante o movimento. Para essa
condição, o princípio do trabalho virtual afirma que o trabalho efetuado por forças externas sobre quaisquer conjuntos de deslocamentos virtuais é zero. Pode-se
considerar, portanto, que todas as restrições do manipulador sob estudo, um corpo
rígido, são holonômicas e que o único limitante do seu movimento é a sua própria rigidez, de forma que todas as forças de restrição satisfaçam ao princípio do trabalho
virtual. Deve-se, entretanto, mencionar que existem outras restrições ao movimento do manipulador e que estas podem ser classificadas como não-holômicas.
Na prática, os ângulos das juntas (que são, no caso, as coordenadas generalizadas),
por exemplo, são limitadas a um certo intervalo, de forma a garantir segurança
e confiabilidade ao equipamento (as limitações dos ângulos das juntas podem ser
vistas na Tabela 2.1).
A.1.1
Princípio de D’Alembert
Para sistemas que não estão em equilíbrio, o princípio de D’Alembert afirma que
se uma força imaginária adicional −ṗi for aplicada a cada partícula i, que possui
momento pi , todas as partículas estarão em equilíbrio. Dessa forma
k
X
k
k
X
X
FiT − ṗTi δri =
FiT δri −
ṗTi δri = 0.
i=1
i=1
(A.2)
i=1
Pelo princípio do trabalho virtual,
k
X
fiT δri −
i=1
k
X
ṗTi δri = 0.
(A.3)
i=1
Expressando-se cada deslocamento virtual δri pelo deslocamento virtual em
coordenada generalizada correspondente, tem-se que o trabalho virtual executado
pelas forças fi é
k
X
i=1
fiT δri =
k X
n
X
i=1 j=1
n
fiT
X
∂ri
δqj =
ψj δqj ,
∂qj
j=1
(A.4)
A.1
Princípio de D’Alembert
69
onde
ψj =
k
X
fiT
i=1
∂ri
∂qj
(A.5)
é chamada de j-ésima força generalizada.
Desde que pi = mi ṙi , segue-se que
k
X
ṗTi δri
=
i=1
k
X
mi r̈iT δri
=
i=1
k X
n
X
mi r̈iT
i=1 j=1
∂ri
δqj .
∂qj
(A.6)
Pode-se mostrar que
k
X
mi r̈iT
i=1
k X
∂ri
∂vi
∂vi
d
mi viT
=
− mi viT
,
∂qj
dt
∂ q̇j
∂qj
(A.7)
i=1
onde
n
X
∂ri
q̇j .
vi = ṙi =
∂qj
(A.8)
j=1
Define-se a energia cinética K como
k
X
1
mi viT vi .
(A.9)
∂ri
d ∂K
∂K
=
−
.
∂qj
dt ∂ q̇j
∂qj
(A.10)
n X
d ∂K
∂K
−
δqj .
=
dt ∂ q̇j
∂qj
(A.11)
K=
i=1
2
Dessa forma,
k
X
mi r̈iT
i=1
Tem-se, portanto,
k
X
i=1
Finalmente
ṗTi δri
j=1
A.1
Energia Cinética e Potencial
70
k
X
fiT δri
−
i=1
k
X
ṗTi δri
i=1
n X
∂K
d ∂K
−
− ψj δqj = 0.
=
dt ∂ q̇j
∂qj
(A.12)
j=1
Desde que todos os deslocamentos virtuais δqj são independentes, pode-se concluir que cada coeficiente dessa equação é zero. Assim
d ∂K
∂K
−
= ψj ,
dt ∂ q̇j
∂qj
(A.13)
com j = 1,. . .,n. Se a força generalizada é a soma de uma força generalizada
aplicada externamente τj e uma outra força devido ao campo potencial P (q), temse que
ψj = −
∂P
+ τj .
∂qj
(A.14)
Dessa forma,
d ∂K
∂K
∂P
−
+
= τj .
dt ∂ q̇j
∂qj
∂qj
(A.15)
Fazendo-se, por fim, L = K − P , obtém-se
d ∂L
∂L
−
= τj ,
dt ∂ q̇j
∂qj
(A.16)
com j = 1,. . .,n. A esse grupo de equações dá-se o nome de Equações de EulerLagrange de Movimento e à variável L dá-se o nome de lagrangiano.
Conclui-se, portanto, que para se obter as equações de Euler-Lagrange, deve-se
conhecer as expressões para energia cinética e potencial de cada um dos n elos do
manipulador sob estudo.
A.1.2
Energia Cinética e Potencial
Como visto ao longo desta seção, as equações de Euler-Lagrange são capazes de
expressar as energias cinética e potencial em termos de um conjunto de coordenadas generalizadas, de modo que essas equações podem ser usadas para representar a dinâmica do manipulador. A seguir, utilizando a metologia vista em
A.1
Energia Cinética e Potencial
71
(Spong and Vidyasagar, 1989), desenvolvem-se as fórmulas para as energias cinética e potencial de um robô de elos rígidos utilizando-se como coordenadas generalizadas, as variáveis das juntas obtidas na representação de Denavit-Hartenberg.
A energia cinética de um corpo rígido pode ser vista como a soma de uma
energia cinética de translação - obtida ao se concentrar toda a massa do corpo no
seu centro de massa - e uma energia cinética de rotação. Dessa forma, a energia
cinética total de um corpo rígido é dada por
1
1
K = mv T v + ω T Iω,
(A.17)
2
2
onde m é a massa total do corpo, v e ω são os vetores de velocidades lineares e
angulares, respectivamente, e I é uma matriz 3×3 chamada de Tensor de Inércia.
Naturalmente, v e ω são expressos em relação a um sistema de coordenadas inercial.
Por conseguinte, I também deverá estar expresso no mesmo sistema de coordenadas
inercial. Se I representa o tensor de inércia em relação ao sistema de coordenadas
do próprio corpo, I será
I = RIRT ,
(A.18)
onde R é a matriz de rotação do sistema de coordenadas do corpo para o sistema
de coordenadas inercial. Pode-se ver que I é uma matriz de termos constantes e
independente do movimento do corpo.
Para um manipulador de n elos, tem-se que os vetores de velocidades lineares
e angulares do elo i são dados por
vi = Jvi (q)q̇,
(A.19)
ωi = Jωi (q)q̇.
(A.20)
Supondo que o elo i tem massa mi e matriz de inércias Ii , a energia cinética
total do manipulador será
" n
#
1 T X
1
T
T
T i
i
mi Jvi (q) Jvi (q) + Jωi (q) R0 (q)Ii R0 (q) Jωi (q) q̇ = q̇ T D(q)q̇,
K = q̇
2
2
i=1
(A.21)
onde
D(q) =
n X
i=1
T
mi Jvi (q)T Jvi (q) + Jωi (q)T R0i (q)Ii R0i (q) Jωi (q)
(A.22)
A.1
Equações de Euler-Lagrange
72
é uma matriz n×n (no caso sob estudo, 6×6), simétrica e definida positiva, chamada
de matriz de inércia. Desde que J foi calculado na Seção 3.2 e as matrizes de rotação
podem ser facilmente obtidas pelo descrito na Seção 3.1, o cálculo de D(q) se torna
bastante direto.
Para o cálculo da energia potencial, por sua vez, considera-se que o robô é
rígido e que, portanto, a única fonte de energia potencial é a gravidade. A energia
potencial total pode ser calculada assumindo-se que toda a massa do eixo i está
localizada em seu centro de massa, de forma que
P =
n
X
Pi =
i=1
n
X
mi g T rci ,
(A.23)
i=1
onde g é o vetor indicando a direção da gravidade em relação ao sistema de coordenadas inercial e o vetor rci recebe as coordenadas do centro de massa do eixo
i.
A.1.3
Equações de Euler-Lagrange
De forma a determinar as equações de Euler-Lagrange para o caso específico sob
estudo, deve-se encontrar, antes de mais nada, o Lagrangiano L do sistema, que é
definido, como mostrado anteriormente, pela diferença entre as energias cinética e
potencial
L = K − P.
(A.24)
A metodologia de desenvolvimento das equações de Euler-Lagrange obtido de
(Spong and Vidyasagar, 1989) se baseia, primeiramente, no fato de que as forças de
restrição atuando sobre o sistema a ser modelado satisfazem o princípio do trabalho
virtual. Em segundo lugar, se baseia na independência da energia potencial P =
P (q) das velocidades das juntas e no fato de que a energia cinética é uma função
quadrática do vetor q̇, como mostrado por
1
1X
K = q̇ T D(q)q̇ =
dij (q)q̇i q̇j ,
2
2
(A.25)
i,j
onde dij são os itens da matriz de inércias D(q). A partir disso, pode-se escrever o
Lagrangiano como
L=K −P =
1X
dij (q)q̇i q̇j − P (q).
2
i,j
(A.26)
A.1
Equações de Euler-Lagrange
73
A derivada parcial do lagrangiano em relação à velocidade da junta k será dada
por
X
∂L
=
dkj q̇j .
∂ q̇k
(A.27)
j
De forma que
X
X d
X
X ∂dkj
d ∂L
q̇i q̇j .
=
dkj q̈j +
dkj q̇j =
dkj q̈j +
dt ∂ q̇k
dt
∂qi
j
j
j
(A.28)
i,j
Similarmente, a derivada parcial do jacobiano em relação à posição da junta k
será
∂L
1 X ∂dij
∂P
=
q̇i q̇j −
.
∂qk
2
∂qk
∂qk
(A.29)
i,j
Então, para cada eixo k = 1, . . . ,n, as equações de Euler-Lagrange serão
X
X ∂dkj
d ∂L
∂L
1 ∂dij
∂P
−
=
−
q̇i q̇j +
= τk .
dkj q̈j +
dt ∂ q̇k
∂qk
∂qi
2 ∂qk
∂qk
j
(A.30)
i,j
Pode-se mostrar que
1 X ∂dkj
∂dki
q̇i q̇j =
+
q̇i q̇j .
∂qi
2
∂qi
∂qj
X ∂dkj
i,j
(A.31)
i,j
Então
X ∂dkj
i,j
X 1 ∂dkj
X
1 ∂dij
∂dki ∂dij
−
q̇i q̇j =
+
−
q̇i q̇j =
cijk q̇i q̇j ,
∂qi
2 ∂qk
2 ∂qi
∂qj
∂qk
i,j
i,j
(A.32)
onde se define cijk , chamado de símbolo de Christoffel, por
cijk
Define-se também
1 ∂dkj
∂dki ∂dij
=
+
−
.
2 ∂qi
∂qj
∂qk
(A.33)
A.2
Modelagem para Simulação
74
gk =
∂P
.
∂qk
(A.34)
De forma que as equações de Euler-Lagrange possam ser escritas como
n
X
dkj (q)q̈j +
j
n X
n
X
i
cijk (q)q̇i q̇j + gk (q) = τk ,
(A.35)
j
com k = 1, . . . ,n. No termo central da Equação A.35, os termos do tipo q̇i2 são
chamados de centrífugos, enquanto os do tipo q̇i q̇j são chamados de termos de
Coriolis. É também comum escrever a Equação A.35 na forma
D(q)q̈ + C(q,q̇)q̇ + g(q) = τ,
(A.36)
em que o elemento (k,j) da matriz C(q,q̇) é definido como
ckj =
n
X
cijk (q)q̇i =
i=1
n
X
1 ∂dkj
i=1
2
∂dki ∂dij
+
−
q̇i ,
∂qi
∂qj
∂qk
(A.37)
e o vetor gravidade g(q) é dado por
g(q) = [g1 (q), . . . ,gn (q)]T .
A.2
(A.38)
Modelagem para Simulação
Para simulação, será utilizado o toolbox Robot, parte do software de simulação maR - cuja documentação pode ser encontrada em (Corke, 1996).
temática MATLAB
Essa subseção visa discorrer sobre a utilização do toolbox para a modelagem do
manipulador. Isso se justifica porque o mesmo modelo será utilizado a seguir para
simulação e aplicação de estratégias de controle.
Para a modelagem computacional, baseou-se nas informações já obtidas a respeito do robô real e cuidadosamente se escolheu os parâmetros físicos restantes
mais importantes. As massas de cada elo, por exemplo, foram calculadas com base
no peso total do robô e no comprimento de cada elo. Supôs-se que os centros de
massa ficavam no centro de cada eixo e que estes poderiam ser imaginados como
cilindros perfeitos, possibilitando estimar os momentos de inércia. Alguns parâmetros, dos quais não se tinha informação e que eram difíceis de se estimar, foram
desconsiderados nesse momento, tal como a razão de engrenagens dos motores das
juntas.
A.2
Modelagem para Simulação
75
Os parâmetros finais definidos para este momento do estudo são mostrados
na Tabela A.2. Tais parâmetros serão usados nas seções seguintes para simulação
R
do manipulador via toolbox Robot e MATLAB/Simulink.
Na Tabela A.2, os
parâmetros Ixx , Iyy e Izz são as diagonais da chamada Matriz de Inércias, M é a
massa do elo e rx , ry e rz são as coordenadas do centro de massa em relação ao
eixo de coordenadas do próprio elo.
Tabela A.1: Parâmetros físicos do manipulador utilizados para simulação
Eixo
1
2
3
4
5
6
Ixx (Kg.m2 )
175
0
625
3,14
0
0
Iyy (Kg.m2 )
175
6,42
625
8,55
316,9
1,63
Izz (Kg.m2 )
0
6,42
0
5,31
316,9
1,63
M (Kg)
34
11,5
53
13
42
7,5
rx (m)
0
0,075
0
0,050
0,275
0,047
ry (m)
0
0
0
0
0
0
rz (m)
0,225
0
0,345
0,065
0
0
Apêndice B
Controle e Simulação
B.1
Estratégia de Controle
Uma das mais famosas estratégias de controle de posição é a técnica de "Torques
Computados", discutida na Seção 1.3. Ela é utilizada como meio de compensar
as complexas forças de interação não-lineares entre os eixos de um manipulador
(Spong and Vidyasagar, 1989). Essa técnica se baseia na adição de um termo que
antecipa os efeitos da perturbação d(t). A perturbação d(t) tem unidade de torque,
o que justifica o nome desta técnica.
Seguindo a metodologia vista em (Asada and Slotine, 1986), a dinâmica de um
manipulador pode ser escrita como
H q̈ + h = τ,
(B.1)
onde q é o vetor de ângulo das juntas, τ é o vetor de torques nas juntas, H = H(q)
é a matriz de inércias do manipulador e h = h(q,q̇; t) inclui as forças centrífugas, de
Coriolis e gravitacionais. Observa-se que essa equação é a própria Equação A.36,
exceto que, para este desenvolvimento, D(q) foi substituído por H(q) e o termo
h(q,q̇; t) desta equação agrupa os termos C(q,q̇)q̇ e g(q).
O cálculo da dinâmica requer, em geral, o uso de sofisticados e complexos
esquemas computacionais, conforme foi discutido no capítulo de Revisão Bibliográfica - 1.3. A idéia da técnica de Torques Computados é definir uma estrutura
semelhante àquela apresentada acima para dinâmica: τ = Hu + h de forma que
substituindo essa equação na anterior, obtém-se q̈ = u desde que a matriz de inércias H é definida positiva e é invertível, como foi discutido no Anexo A.1. Essa
equação simplesmente representa um conjunto de n termos desacoplados, os quais
podem ser controlados independentemente utilizando-se um controlador PD
76
B.1
Estratégia de Controle
77
uj = q̈dj − kjD q̃˙j − kjP q̃j
(B.2)
ou PID
uj = q̈dj − kjD q̃˙j − kjP q̃j − kjI
Z
t
q̃j dT,
(B.3)
0
onde q̈dj é a aceleração da trajetória desejada da junta j, q̃j = qj − qd j é o erro
de posição, os coeficientes kjP , kjD e kjI são positivos e j = 1,...,n. O torque
τ da equação de torques computados pode, então, ser calculado a partir de u
(Asada and Slotine, 1986).
A maior limitação dessa técnica, entretanto, é que somente os valores estimados
de H e h, Ĥ e ĥ, estão disponíveis na prática. Tal incerteza nos parâmetros é devido
a imprecisões nas propriedades mássicas do manipulador ou nos torques constantes
dos atuadores, a falta de bons modelos de fricção, cargas desconhecidas, capacidade
de cálculo limitada, etc. (Asada and Slotine, 1986). Fazendo-se τ = Ĥu+ ĥ obtémse
q̈ = H −1 Ĥ u + H −1 ĥ − h ,
(B.4)
que não é uma equação tão simples quanto a obtida anteriormente. Uma questão
importante a ser discutida, portanto, é a sensibilidade do desempenho do sistema
de controle às incertezas de modelagem, incluindo-se aí as incertezas paramétricas
e as dinâmicas não-modeladas de alta-frequência - tais como modos ressonantes,
taxas de amostragem e atrasos de tempo (Asada and Slotine, 1986).
Um esquema do controle por torques computados é mostrado na Figura B.1.
Na Figura B.1, Cj (s) é o "controlador das juntas independentes"discutido na
Seção 1.3, Gj (s) é a junta j, Ĝj (s) é o modelo da junta j e Dj (s) é a perturbação
atuando sobre essa junta. Deve-se observar que o bloco contendo 1/Ĝj (s), o inverso
do modelo dinâmico da planta, é o termo de compensação direta, que garante o
rastreamento assintótico da trajetória, mas não é capaz de rejeitar perturbações,
motivo pelo qual se adiciona o termo de Torque Computado indicado.
Com a ajuda do toolbox Robot (documentado em (Corke, 1996)), montou-se
R o diagrama de blocos da Figura B.2, que foi
no módulo Simulink do MATLAB
inspirado em um exemplo encontrado em
http : //petercorke.com/RoboticsT oolbox.html (acesso em outubro de 2009).
No diagrama de blocos mostrado na Figura B.2, o bloco intitulado planta
representa o manipulador robótico completo, incluindo o modelo cinemático, discutido na Seção 3, e o modelo dinâmico, discutido no Anexo A; o bloco modelo
representa o inverso da dinâmica da planta, funcionando, ao mesmo tempo, como
B.2
Resultados da Simulação
78
Figura B.1: Esquema de Controle de Posição por Torques Computados
o controlador feedforward e o termo de torques computados. Os blocos "jtraj posição1"e "jtraj velocidade1"são responsáveis pela geração da trajetória desejada.
O bloco "saturação do motor"limita o torque aplicado pelos motores das juntas.
Estabeleceu-se, neste momento, que os motores saturam em torques aleatoriamente
definidos iguais a 2000N.m.
Os ganhos do controlador (indicados no diagrama da Figura B.2 como Kv = 12
e Kp = 36) foram calculados de forma a tornar o erro de posicionamento criticamente amortecido. Para isso, faz-se ζ = 1 e ωn = 6 (considera-se o tempo de
acomodação em 95% igual a 3/ζωn = 0,5 segundos) em E(s2 + Kv s + Kp ) =
E(s2 + 2ζωn s + ωn 2 ), sendo E o erro. Encontra-se, assim, Kv = 12 e Kp = 36.
Os resultados da simulação são mostrados na seção seguinte.
B.2
Resultados da Simulação
Utilizando-se o modelo do manipulador descrito na Seção A.2 e a estratégia de
controle discutida na Seção B.1, efetuou-se uma série de simulações no módulo
R através do Toolbox Robot. Nestas simulações, o manipuSimulink do MATLAB,
R SMART SiX simulado foi comandado a executar um movimento
lador COMAU
definido arbitrariamente. Três tipos de testes foram efetuados: Um teste a vazio,
um teste com carga e um teste com o robô afixado a parede.
R
Figura B.2: Esquema MATLAB/Simulink
de Controle de Posição por Torques Computados
B.2
Resultados da Simulação
79
B.2
Teste a Vazio
B.2.1
80
Teste a Vazio
No teste a vazio, simulou-se o manipulador sem nenhuma carga anexada à garra.
As Figuras B.3 e B.4 mostram uma comparação entre a referência e a saída do
sistema de controle, respectivamente, para a posição final da garra e o ângulo nas
juntas. As Figuras B.5 e B.6 mostram as derivadas das posições e ângulos das
juntas, enquanto a Figura B.7 mostra os torques comandados para as juntas na
execução dos movimentos.
Figura B.3: Comparação entre a posição real e a posição desejada para a
garra do manipulador (teste a vazio)
B.2.2
Teste com Carga
No teste com carga, escolheu-se determinada massa, com determinado momento
de inércia e anexou-a ao último eixo do manipulador. Nesse caso, a massa foi
escolhida arbitrariamente igual a 6Kg e os momentos de inércia foram calculados
a partir disso. As Figuras B.8 e B.9 mostram uma comparação entre a referência
e a saída do sistema de controle, respectivamente, para a posição final da garra e
o ângulo nas juntas. As Figuras B.10 e B.11 mostram as derivadas das posições
e ângulos das juntas, enquanto a Figura B.12 mostra os torques comandados para
as juntas na execução dos movimentos.
B.2
Teste com Carga
81
Figura B.4: Comparação entre o ângulo real e o ângulo desejado para as
juntas do manipulador (teste a vazio)
Figura B.5: Comparação entre a velocidade real e a velocidade desejada para
a garra do manipulador (teste a vazio)
B.2
Teste com Carga
82
Figura B.6: Comparação entre a velocidade angular real e a velocidade angular desejada para as juntas do manipulador (teste a vazio)
Figura B.7: Torque nas juntas do manipulador (teste a vazio)
B.2
Teste com Carga
83
Figura B.8: Comparação entre a posição real e a posição desejada para a
garra do manipulador (teste com carga)
Figura B.9: Comparação entre o ângulo real e o ângulo desejado para as
juntas do manipulador (teste com carga)
B.2
Teste com Carga
84
Figura B.10: Comparação entre a velocidade real e a velocidade desejada
para a garra do manipulador (teste com carga)
Figura B.11: Comparação entre a velocidade angular real e a velocidade
angular desejada para as juntas do manipulador (teste com carga)
B.2
Teste com o Robô na Parede
85
Figura B.12: Torque nas juntas do manipulador (teste com carga)
B.2.3
Teste com o Robô na Parede
No teste com o robô na parede, modificou-se a força da gravidade atuando sobre o
manipulador, de forma a simular-se que ele tivesse sido construído sobre a parede
(verticalmente), ao invés de sobre o piso (horizontalmente). As Figuras B.13 e B.14
mostram uma comparação entre a referência e a saída do sistema de controle, respectivamente, para a posição final da garra e o ângulo nas juntas. As Figuras B.15
e B.16 mostram as derivadas das posições e ângulos das juntas, enquanto a Figura
B.17 mostra os torques comandados para as juntas na execução dos movimentos.
B.3
Análise dos Resultados Parciais
A primeira observação a ser feita acerca das simulações efetuadas é com relação à
saturação do atuador. Assim como a maior parte dos outros parâmetros, o valor
de saturação dos motores das juntas ainda não nos foi passada. O valor utilizado
em simulação (2000N.m) é absolutamente aleatório e deve ser substituído em um
segundo momento.
Os erros de rastreamento de trajetória pela garra para os três testes são mostrados na Tabela B.1. Utiliza-se, para comparação, os índices ITAE (integral do
erro multiplicado pelo tempo) e ISE (integral do erro ao quadrado). Pode-se ver
que a adição da carga não influenciou os erros significantemente e o desempenho
não foi um deteriorado. O teste de fixação do robô na parede mostrou diferenças,
B.3
Análise dos Resultados Parciais
86
Figura B.13: Comparação entre a posição real e a posição desejada para a
garra do manipulador (teste com o robô na parede)
Figura B.14: Comparação entre o ângulo real e o ângulo desejado para as
juntas do manipulador (teste com o robô na parede)
B.3
Análise dos Resultados Parciais
87
Figura B.15: Comparação entre a velocidade real e a velocidade desejada
para a garra do manipulador (teste com o robô na parede)
Figura B.16: Comparação entre a velocidade angular real e a velocidade
angular desejada para as juntas do manipulador (teste com o robô na parede)
B.3
Análise dos Resultados Parciais
88
Figura B.17: Torque nas juntas do manipulador (teste com o robô na parede)
como esperado, visto que os esforços mudaram.
Observa-se que nessas simulações (Figuras B.3 a B.17 e Tabela B.1), o modelo
e a planta são idênticos, de forma que pode-se falar que o modelo é perfeito. A
Tabela B.2 mostra os mesmos testes para um modelo com os parâmetros de massa
e momento de inércia aleatoriamente modificados em até 10% (para cima ou para
baixo). Pode-se concluir, pela comparação das Tabelas B.1 e B.2 que os erros
variam quando o modelo difere da planta, ressaltando que a precisão do modelo é
um fator importante no método de Torques Computados, conforme foi comentado
anteriormente.
Tabela B.1: Erros no posicionamento da garra para os testes efetuados em
simulação (Modelo Perfeito)
- Teste a Vazio Teste com Carga Robô na Parede
X (ITAE)
2,2013
1,9432
2,3513
Y (ITAE)
2,3857
2,1115
1,8550
Z (ITAE)
3,0060
3,0429
1,9300
X (ISE)
1,0479
0,8197
1,4936
Y (ISE)
1,3528
0,9854
0,8977
Z (ISE)
3,4870
3,7693
1,8020
B.3
Análise dos Resultados Parciais
89
Tabela B.2: Erros no posicionamento da garra para os testes efetuados em
simulação (Modelo Imperfeito)
- Teste a Vazio Teste com Carga Robô na Parede
X (ITAE)
1,8610
1,7928
2,4354
Y (ITAE)
2,2264
2,1030
1,9316
Z (ITAE)
3,2119
2,7790
1,9110
X (ISE)
0,7900
0,7405
1,5867
Y (ISE)
1,1647
1,0587
0,9563
Z (ISE)
3,8117
3,3964
1,7987
Referências Bibliográficas
An et al., 1989 An, C. H., Atkeson, C. G., Griffiths, J. D., and Hollerbach, J. M.
(1989). Experimental evaluation of feedforward and computed torque control.
IEEE, pages 368–373.
Asada and Slotine, 1986 Asada, H. and Slotine, J.-J. E. (1986). Robot Analysis
and Control. John Wiley and Sons.
Becerra et al., 2004 Becerra, V. M., Cage, C. N. J., Harwin, W. S., and Sharkey,
P. M. (2004). Hardware retrofit and computed torque control of a puma 560
robot. IEEE Control Systems Magazine, pages 212–217.
Bigras et al., 2007 Bigras, P., Lambert, M., and Perron, C. (2007).
New formulation for an industrial robot impedance controller: Real-time
implementation on a kuka robot. IEEE, pages 2782–2787.
Caccavale and Chiacchio, 1994 Caccavale, F. and Chiacchio, P. (1994).
Experiments of feedforward control on a conventional industrial manipulator.
Proceedings of the American Control Conference, pages 1001–1002.
Carelli and Kelly, 1991 Carelli, R. and Kelly, R. (1991). An adaptive
impedance/force controller for robot manipulators. IEEE Transactions On
Automatic Control, 36:97–101.
CEA, 2009 CEA (2009). CEA-FDASu - Descrição das conexões, Diagrama
esquemático e Disposição dos componentes. CEA.
Chaitanya et al., 2007 Chaitanya, V. S., Patro, P. D., and Sarkar, P. K. (2007).
Delay dependent stability in the real time control of a mobile robot using
neural networks. Proceedings of the 2007 IEEE International Symposium on
Computational Intelligence in Robotics and Automation, pages 95–100.
Chen and Chien, 1992 Chen, Y. and Chien, Y.-P. S. (1992). General structure
of time-optimal control of robotic manipulators moving along prescribed paths.
ACC/TA6, pages 1510–1514.
90
REFERÊNCIAS BIBLIOGRÁFICAS
91
Choi, 1999 Choi, M. H. (1999). Redundancy resolution by minimization of joint
disturbance torque for independent joint controlled manipulators. Proceedings of
the 1999 IEEWASME, pages 392–397.
COMAU, 2005 COMAU (2005). Instruction Handbook - SMART SiX - Technical
Specifications. COMAU.
COMAU, 2008 COMAU (2008). Instruction Handbook - PDL2 Programming
Language Manual - System Software Rel. 3.2x. COMAU.
Corke, 1996 Corke, P. (1996). A robotics toolbox for MATLAB. IEEE Robotics
and Automation Magazine, 3(1):24–32.
Gamarra-Rosado and Yuhara, 1999 Gamarra-Rosado, V. O. and Yuhara, E. A.
(1999). Dynamic modeling and simulation of a flexible robotic manipulator.
Robotica, pages 523–528.
Haklidir and Tasdelen, 2009 Haklidir, M. and Tasdelen, I. (2009). Modeling,
simulation and fuzzy control of an anthropomorphic robot arm by using dymola.
J Intell Manuf, pages 177–186.
Hsia, 1987 Hsia, T. C. (1987). On a simplified joint controller design for robot
manipulators. IEEE, pages 1025–1026.
Hung et al., 2002 Hung, N. V. Q., Tuan, H. D., Narikiyo, T., and Apkarian, P.
(2002). Adaptive controls for nonlinearly parameterized uncertainties in robot
manipulators. Proceedings of the 41st IEEE Conference on Decision and Control,
pages 1727–1732.
Hunmo.Kirrt and Parker, 1993 Hunmo.Kirrt and Parker, J. K. (1993). Artificial
neural network for identification and tracking control of a flexible joint single-link
robot. IEEE, pages 234–238.
Iñigo and Morton, 1991 Iñigo, R. M. and Morton, J. S. (1991). Simulation of the
dynamics of an industrial robot. IEEE Transactions On Education, 41:89–99.
Julier and Uhlmann, 1997 Julier, S. J. and Uhlmann, J. K. (1997). A new
extension of the kalman filter to nonlinear systems. Oxford: The Robotics Research
Group, Department of Engineering Science, The University of Oxford.
Kasac et al., 2003 Kasac, J., Novakovic, B., Majetic, D., and Brezak, D. (2003).
Stability analysis of fuzzy robot control without fuzzy rule base. IEEE, pages
310–315.
Khalil and Boyer, 1995 Khalil, W. and Boyer, F. (1995). An efficient calculation
of computed torque control of flexible manipulators. IEEE lnternatlonal
Conference on Robotics and Automation, pages 609–613.
REFERÊNCIAS BIBLIOGRÁFICAS
92
Khatib et al., 2008 Khatib, O., Thaulad, P., Yoshikawa, T., and Park, J. (2008).
Torque-position transformer for task control of position controlled robots. IEEE
International Conference on Robotics and Automation, pages 1729–1734.
Lai and Ohkawa, 1997 Lai, R. and Ohkawa, F. (1997). A simple discrete-time
robot model and its control application. Department of Control Engineering and
Science, Kyushu Institute of Technology, pages 1448–1453.
Lee and Chung, 1984 Lee, C. S. G. and Chung, M. J. (1984). An adaptive
control strategy for mechanical manipulators. IEEE Transactions On Automatic
Control, VOL. AC-29, NO. 9, 29:837–840.
Lima, 2005 Lima, S. R. (2005). Integração gps-ins utilizando sensores inerciais
baseados em sistemas microeletromecânicos.
Lin and Kim, 1990 Lin, C.-S. and Kim, H. (1990). Manipulator control with
torque interpolation. pages 625–627.
Looke et al., 1992 Looke, T. D., Bayoumi, M. M., and Farooq, M. (1992).
Simulation of computed torque controllers for flexible manipulators. IEEE, pages
505–508.
Malvezzi and Celes, 2004 Malvezzi, M. C. and Celes, W. F. (2004). Animação
em tempo real com keyframe. Rio de Janeiro, Brasil.
Martins and d. Alencar, 2005 Martins, N. A. and d. Alencar, M. (2005). An
adaptive neural controller and direct adaptive controllers for robot manipulators
in the joint space. Proceedings 2005 IEEE International Symposium on
Computational Intelligence in Robotics and Automation, pages 187–192.
Meng and Lu, 1993 Meng, Q.-H. M. and Lu, W.-S. (1993). An adaptive control
scheme for robot manipulators with flexible joints. IEEE, pages 394–397.
Middleton and Goodwin, 1986 Middleton, R. H. and Goodwin, G. C. (1986).
Adaptive computed torque control for rigid link manipulators. Proceeding of 25th
Conference on Decision and Control, pages 70–75.
Natale et al., 2000 Natale, C., Koeppe, R., and Hirzinger, G. (2000).
A systematic design procedure of force controllers for industrial robots.
IEEE/ASME Transactions On Mechatronics, 5:122–131.
Nedungadi, 1992 Nedungadi, A. (1992). A fuzzy robot controller - hardware
implementation. IEEE, pages 1325–1331.
Neo and Er, 1995 Neo, S. S. and Er, M. J. (1995). Adaptive fuzzy control of
robot manipulators. IEEE, pages 724–729.
REFERÊNCIAS BIBLIOGRÁFICAS
93
Nguyen-Tuong et al., 2008 Nguyen-Tuong, D., Seeger, M., and Peters, J. (2008).
Computed torque control with nonparametric regression models. American
Control Conference, pages 212–217.
Paul et al., 1981 Paul, R. P., Shimano, B., and Mayer, G. E. (1981). Differential
kinematic control equations for simple manipulators. IEEE Transactions on
Systems, Man, and Cybernetics, SMC-11(6):456–460.
Rassaian and Lee, 1998 Rassaian, M. and Lee, J.-C. (1998). Thermomechanical
multi-domain stress modeling for fatigue analysis of electrode packaging. Boeing
Information, Space and Defense Systems, pages 399–408.
Rattan and Feliu, 1991 Rattan, K. S. and Feliu, V. (1991). Feedforward control
of flexible manipulators. IEEE, pages 1084–1089.
Renk et al., 2005 Renk, E. L., Collins, W., Rizzo, M., Lee, F., and Bernstein,
D. S. (2005). Calibrating a triaxial accelerometer-magnetometer. IEEE Control
Systems Magazine, pages 86–95.
Santana, 2005 Santana, D. D. (2005). Estimação de trajetórias terrestres
utilizando unidades de medição inercial de baixo custo e fusão sensorial.
Seraji, 1989 Seraji, H. (1989). Decentralized adaptive control of manipulators:
Theory, simulation, and experimentation. IEEE Transactions On Robotics and
Automation, 5:392–397.
Spong and Vidyasagar, 1989 Spong, M. W. and Vidyasagar, M. (1989). Robot
Dynamics and Control. John Wiley and Sons.
Su et al., 1990 Su, C.-Y., Leung, T. P., and Zhou, Q.-J. (1990). Adaptive control
of robot manipulators under constrained motion. IEEE, pages 2650–2655.
Uebel et al., 1992 Uebel, M., Minis, I., and Cleary, K. (1992). Improved
computed torque control for industrial robots. Proceeding of the 1992 IEEE
International Conference on Robotics and Automation, pages 528–533.
Xiaoxiong et al., 2008 Xiaoxiong, J., Yu, L., Baoku, S., and Ming, L. (2008).
Experimental investigation on calibrating high precision accelerometer on two-axis
table. Space Control and Inertial Technology Research Center, Harbin Institute of
Technology, Harbin, Heilongjiang, China.
Yildirim, 1997 Yildirim, S. (1997). New neural networks for adaptive control of
robot manipulators. IEEE, pages 1727–1731.
Yu and Lloyd, 1995 Yu, H. and Lloyd, S. (1995). Adaptive control of robot
manipulators including motor dynamics. Proceedings of the America Control
Conference, pages 3803–3807.
REFERÊNCIAS BIBLIOGRÁFICAS
94
Zhou et al., 2009 Zhou, W., Li, B., He, X., Su, W., and Zhang, F. (2009).
Calibration study of force-balanced micro accelerometer based on least squared
method and genetic algorithm. Proceedings of the 2009 IEEE International
Conference on Mechatronics and Automation, pages 1357–1361.

Documentos relacionados