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.