RASTREAMENTO DE UM OBJETO EM TRAJETÓRIA PENDULAR POR UM MANIPULADOR ROBÓTICO Mauricio Dias e Silva Projeto de Graduação apresentado ao Curso de Engenharia de Controle e Automação da Escola Politécnica, Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do tı́tulo de Engenheiro em Engenharia de Controle e Automação. Orientador: Fernando Cesar Lizarralde Rio de Janeiro Agosto de 2015 RASTREAMENTO DE UM OBJETO EM TRAJETÓRIA PENDULAR POR UM MANIPULADOR ROBÓTICO Mauricio Dias e Silva PROJETO SUBMETIDO AO CORPO DOCENTE DO CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO DA ESCOLA POLITÉCNICA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE ENGENHEIRO EM ENGENHARIA DE CONTROLE E AUTOMAÇÃO. Examinado por: Prof. Fernando Cesar Lizarralde, D.Sc. Prof. Alessandro Jacoud Peixoto, D.Sc. Prof. Antônio Candela Leite, D.Sc. RIO DE JANEIRO, RJ – BRASIL AGOSTO DE 2015 e Silva, Mauricio Dias Rastreamento de um objeto em trajetória pendular por um manipulador robótico/Mauricio Dias e Silva. – Rio de Janeiro: UFRJ/ Escola Politécnica, 2015. VII, 25 p.: il.; 29, 7cm. Orientador: Fernando Cesar Lizarralde Projeto (graduação) – UFRJ/Escola Politécnica/Curso de Engenharia de Controle e Automação, 2015. Referências Bibliográficas: p. 96 – 102. I. Lizarralde, Fernando Cesar. II. Universidade Federal do Rio de Janeiro, Escola Politécnica, Curso de Engenharia de Controle e Automação. III. Tı́tulo. iii Agradecimentos Agradeço aos meus pais, Mauro e Maria Cristina, pelo apoio e paciência durante o curso. Ao meu orientador, Fernando Cesar Lizarralde que, além de me orientar durante esse projeto me ajudou com diversos problemas. Agradeço aos professores Afonso e Maurı́cio, que tanto me ajudaram durante a graduação. Ao Fernando, ao Alex, ao Matheus e a todos do laboratório pela ajuda técnica e pelo convivio pessoal no ambiente de trabalho. Obrigado. iv Sumário Lista de Figuras vi Lista de Tabelas vii 1 Introdução 1 1.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Predição da trajetória 5 2.1 Identificação do objeto . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Transformada da câmera . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3 Cálculo da trajetória . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 Adaptative Notch Filter . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Descrição do Sistema Robótico 5 14 3.1 Cinemática Direta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2 Controle Cinemático . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2.1 Controle de posição . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2.2 Controle de orientação . . . . . . . . . . . . . . . . . . . . . . 18 4 Resultados 20 5 Conclusão 23 5.1 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 v Lista de Figuras 1.1 Estrutura do futebol de robôs. . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Drible de uma bola de basquete. . . . . . . . . . . . . . . . . . . . . . 2 1.3 Tênis de mesa de um manipulador robótico. . . . . . . . . . . . . . . 3 1.4 Motoman DIA 10 NX100. . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1 Imagem capturada sem tratamento. . . . . . . . . . . . . . . . . . . . 6 2.2 Imagem capturada em escalas de cinza. . . . . . . . . . . . . . . . . . 6 2.3 Imagem em escalas de cinza após a retirada da cor verde. . . . . . . . 7 2.4 Imagem filtrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.5 Imagem binária. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.6 Imagem tratada completamente. . . . . . . . . . . . . . . . . . . . . . 9 2.7 Gráfico posição x tempo. . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.8 Diagrama da configuração entre a câmera e o espaço de trabalho . . . 11 2.9 Equação ajustada do pendulo. . . . . . . . . . . . . . . . . . . . . . . 11 2.10 Equação ajustada do pendulo. . . . . . . . . . . . . . . . . . . . . . . 12 2.11 Resultados do ANF. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1 Transformações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2 Diagrama de blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.1 Sinal de controle e angulos das juntas com controle de posição . . . . 20 4.2 Posição e erro de posição do braço com controle de posição 4.3 Sinal de controle e angulos das juntas com controle de posição e orientação 21 4.4 Posição e erro de posição do braço com controle de posição e orientação 21 4.5 Orientação e erro de orientação do braço com controle de posição e orientação. 22 vi . . . . . 21 Lista de Tabelas 2.1 Tabela de Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii 7 Capı́tulo 1 Introdução Fazer com que manipuladores robóticos atuem de maneira natural em tarefas que são realizadas de maneiras simples por humanos apresenta diversos desafios, como o desenvolvimento de sensoriamento avançado e habilidades motoras. Para tais tarefas, o manipulador tem que agir em um perı́odo de tempo curto, comparável ao de humanos. Uma tarefa que apresenta essas dificuldades é a interação com um objeto em movimento. Para isso, é necessário que se identifique o objeto e que seja feita a predição de seu movimento em tempo real. Uma aplicação da identificação e predição dos movimentos em tempo real é em atividades esportivas realizadas por manipuladores robóticos. Já existem estudos e aplicações em diversos esportes, como futebol (WANG et al., 2011), basquete (METTIN et al., 2010)e tênis de mesa (WANG et al., 2012). Para realizar a tarefa de jogar futebol, é necessário que diversos robos cooperem para realizar a tarefa de conduzir a bola até o gol do adversário. Deve ser feita a identificação da bola e de todos os robôs participantes para definir a trajetória de todos os agentes. Como os robôs do time adversário tem trajetórias que não podem ser previstas, é necessário colher dados e analisar as jogadas em tempo real. No caso do basquete, um dos maiores desafios é fazer com que o robô realize o movimento de drible. Esse movimento apresenta complexidade, já que é necessário prever a trajetória da bola e projetar a bola em direção ao chão para que ela quique e volte para o alcance do manipulador. ‘ O tênis de mesa apresenta desafios similares aos do movimento de drible do basquete. É preciso detectar a bola em tempo real e prever sua trajetória em um 1 Figura 1.1: Estrutura do futebol de robôs. Figura 1.2: Drible de uma bola de basquete. curto perı́odo de tempo, para poder posicionar a raquete e realizar um movimento que projete a bola na direção do mesa adversária. 1.1 Objetivo O objetivo deste trabalho é utilizar um manipulador robótico para acompanhar um objeto em trajetória pendular utilizando servovisão. O manipulador usado será o robô industrial Motoman DIA 10 NX100. Cada um dos seus braços é um manipulador robótico de cadeia aberta com sete juntas de revolução. Nesse trabalho 2 Figura 1.3: Tênis de mesa de um manipulador robótico. será utilizado um dos braços em conjunto com a base, totalizando oito juntas de revolução. Para realizar o objetivo proposto, primeiramente é realizada a identificação do objeto. Essa tarefa já foi bem estudada e pode ser vista em artigos como KIM et al., 2012 e TAKYI et al., 2014. O objeto a ser identificado nesse trabalho será uma bola verde. A escolha de uma bola como objeto é interessante, pois identificar bolas é necessário para a prática de diversos esportes robóticos. Após a identificação do objeto, a etapa seguinte é a modelagem da trajetória descrita. Com um número suficiente de pontos capturados, é possı́vel ajustar uma curva conhecida (como uma senóide) para a trajetória descrita. Com a curva ajustada, é possı́vel prever qual será a trajetória do objeto. A trajetória senoidal será identificada e ajustada com o uso de um Adaptative Notch Filter como proposto em HSU et al., 1999. Com todos os dados da trajetória do objeto, será feito o controle do manipulador por controle cinemático. Com isso, é possivel realizar o movimento sı́ncrono do manipulador com o objeto em trajetória pendular. 1.2 Organização do trabalho No capı́tulo 2, é explicado como é feita a predição da trajetória do objeto. É apresentado o conceito de transformada de uma câmera e a definição e explanação de um Adaptative Notch Filter (ANF). No capı́tulo 3, são apresentados conceitos de cinemática direta referentes ao Motoman DIA10 NX100. 3 Figura 1.4: Motoman DIA 10 NX100. No capı́tulo 4, são apresentados os resultados práticos e simulados. No capı́tulo 5, são feitas as conclusões finais sobre o trabalho e a proposta para projetos futuros. 4 Capı́tulo 2 Predição da trajetória Nesse trabalho será realizada a predição da trajetória de uma bola verde em trajetória pendular planar, perpendicular a câmera que será usada para capturar as imagens. Será feita a identificação da bola usando um tratamento de imagens na ferramenta computacional Matlab. Após a identificação, será feito um ajuste de uma senóide amortecida para os pontos detectados e com isso será realizada a predição do movimento da bola. 2.1 Identificação do objeto O primeiro passo na identificação do objeto é a captura da imagem. Para isso, foi usada a câmera RGB de um Microsoft Kinect. A imagem é salva como uma matriz de dados no Matlab e é realizado um tratamento para identificar apenas a bola. As imagens capturadas podem ser vistas na Figura 2.1 e na Figura 2.2. As variáveis utilizadas no tratamento da imagem podem ser vistas na tabela 2.1. A primeira etapa no tratamento da imagem é extrair o componente verde da imagem. Isso faz com que todos os objetos verdes apareçam mais claros na imagem. O código utilizado pode ser visto abaixo . A imagem resultante pode ser vista na Figura 2.3. 1 imagem = i m s u b t r a c t ( data (max( Xc−L , 1 ) : min ( Xc+L , 4 8 0 ) , . . . 2 max( Yc−L , 1 ) : min ( Yc+L , 6 4 0 ) , c o l o r ) , . . . 3 r g b 2 g r a y ( data (max( Xc−L , 1 ) : min ( Xc+L , 4 8 0 ) , . . . 4 max( Yc−L , 1 ) : min ( Yc+L , 6 4 0 ) , : ) ) ) ; 5 50 100 150 200 250 300 350 400 450 100 200 300 400 500 600 Figura 2.1: Imagem capturada sem tratamento. 50 100 150 200 250 300 350 400 450 100 200 300 400 500 Figura 2.2: Imagem capturada em escalas de cinza. 6 600 Tabela 2.1: Tabela de Variáveis imagem Matriz de imagem Xc Posição no eixo X em pixels. Yc Posição no eixo Y em pixels. L Raio da busca em pixels. Data Matriz de imagem. Color Cor identificada 50 100 150 200 250 300 350 400 450 100 200 300 400 500 600 Figura 2.3: Imagem em escalas de cinza após a retirada da cor verde. Nessa nova imagem é utilizado um filtro de medianas para remover os ruı́dos. A imagem resultante pode ser vista na Figura 2.4. 1 imagem = m e d f i l t 2 ( imagem , [ 4 4 ] ) A imagem é então convertida em uma imagem binária. É atribuido um valor de 1 (branco) a todos os pontos que estiverem acima de um limiar e 0 (preto) a todos os demais. A imagem resultante pode ser vista na Figura 2.5. 1 imagem = im2bw ( imagem , 0 . 0 4 ) 7 50 100 150 200 250 300 350 400 450 100 200 300 400 500 600 500 600 Figura 2.4: Imagem filtrada. 50 100 150 200 250 300 350 400 450 100 200 300 400 Figura 2.5: Imagem binária. 8 São removidos todos os objetos menores que o limite inferior de tamanho desejado. A imagem resultante pode ser vista na Figura 2.6. 1 imagem = bwareaopen ( imagem , 1 4 0 ) 50 100 150 200 250 300 350 400 450 100 200 300 400 500 600 Figura 2.6: Imagem tratada completamente. Da figura resultante, são identificados os objetos em formato de cı́rculo com o uso da função ”imfindcircles” disponı́vel no Toolbox de processamento de imagens. Essa função fornece as coordenadas do centro de todos os circulos encontrados e seus raios. O Como o custo computacional do tratamento da imagem completa é muito grande, depois que o objeto é identificado todo o tratamento subsequente é realizado apenas em uma pequena região em volta do objeto. Essa região é definida com o uso das coordenadas do centro do objeto identificado e seu raio. Para o tempo, foram utilizadas as funções tic e toc do Matlab, o que geral um periodo de amostragem variável de aproximadamente 100 milissegundos. Os dados obtidos da posição do centro da bola em pixels pode ser visto na Figura 2.7 . Como o custo computacional do processamento da imagem completa é alto, após a primeira iteração são alterados os parâmetros Xc, Y c e L para reduzir a área da 9 400 x (pixels) 350 300 250 200 0 1 2 3 4 t(s) 5 6 7 8 Figura 2.7: Gráfico posição x tempo. imagem a ser analizada. Aos parâmetros Xc e Y c são atribuidos os valores das coordenadas do centro do objeto e ao parâmetro L é atribuido um valor igual a 10 vezes o raio do objeto. 1 Yc = round ( c e n t e r s ( 1 )+max( Yc−L , 1 ) −1) ; 2 Xc = round ( c e n t e r s ( 2 )+max( Xc−L , 1 ) −1) ; 3 L = round ( r a d i i ∗10) ; 2.2 Transformada da câmera Considerando uma câmera perpendicular ao ambiente de trabalho em R2 . Com base na Figura 2.8, a transformada entre um objeto no plano de trabalho real e o mesmo objeto no plano de trabalho da imagem pode ser obtida através de conceitos básicos de geometria e rotação, como mostra a equação (2.1). λ po = α RT (~p − p~c ) z (2.1) onde p~ é a posição do objeto no espaço real, p~c é a posição da câmera no espaço real, α é o ganho de transformação de metros para pixels, z é a distância entre a câmera e o espaço de trabalho, λ é a distância focal e R é a matriz de rotação entre o plano xy da imagem e o plano xy real. R= cos(φ) −sen(φ) sen(φ) 10 cos(φ) , (2.2) p ~c λ xy Imagem p ~o xy Imagem yc xc z p ~c p ~o p ~ y p ~ xy Real x xy Real Figura 2.8: Diagrama da configuração entre a câmera e o espaço de trabalho onde φ é o ângulo entre o plano xy da imagem e o plano xy real. 2.3 Cálculo da trajetória A trajetória da bola projetada no eixo horizontal pode ser descrita por uma senóide amortecida, como mostrado na equação 2.3. x = Ae(γ.t) sin(wt + φ) + x0 (2.3) Onde A representa a Amplitude da senóide, γ representa o fator de amortecimento, w representa a frequência do movimento, φ representa a diferença de fase e x0 o deslocamento da senóide em relação a origem. Todas essas variáveis são estimadas no ajuste da curva. A curva ajustada pode ser observada na Figura 2.9 e na Figura 2.10. A parcela vertical do movimento será calculada a partir da horizontal, já que para pendulos de pequena amplitude o movimento vertical é muito pequeno e, por isso, muito afetado por ruı́dos. Através de geometria básica temos que: R2 = (x − x0 )2 + (y − y0 )2 y=± q R2 − (x − x20 ) + y0 11 (2.4) (2.5) 400 x (pixels) 350 300 250 200 0 1 2 3 4 t(s) 5 6 7 8 Figura 2.9: Equação ajustada do pendulo. 450 x(pixels) 400 350 300 250 200 2 4 6 8 10 t(s) 12 14 16 18 Figura 2.10: Equação ajustada do pendulo. Como o movimento do pêndulo se restringe a baixas amplitudes e ficará restrito na parte inferior temos que: y=− q R2 − (x − x20 ) + y0 (2.6) Com isso temos todos os dados que são necessários para rastrear e prever o movimento de um pêndulo. 2.4 Adaptative Notch Filter Para melhor ajustar a trajetória em uma senóide de amplitude variável será utilizado um Adaptative Notch Filter (ANF). Esse filtro tem como saidas o valor da senóide, sua derivada e sua frequência adaptada. Foram utilizados os dados coleta- 12 dos, repetidos para manter a amplitude da senóide em um nivel elevado para que os resultados pudessem ser bem observados. A entrada e as saidas do ANF podem ser vistos na Figura 2.11. As equações do ANF podem ser vistas em (2.7) e (2.8) ẍ + 2ζθẋ + θ2 x = n (2.7) θ̇ = −γx(n − 2ζθẋ) (2.8) onde θ representa a frequência estimada, ζ é o coeficiente de amortecimento e γ determina a velocidade de adaptação. x(m) 1 0 −1 0 2 4 6 8 10 12 14 16 18 20 0 2 4 6 8 10 12 14 16 18 20 0 2 4 6 8 10 12 14 16 18 20 0 2 4 6 8 10 t(s) 12 14 16 18 20 xANF(m) 1 0 2 0 −2 theta(1/s) dxANF(m) −1 4 3 2 Figura 2.11: Resultados do ANF. 13 Capı́tulo 3 Descrição do Sistema Robótico Manipuladores robóticos podem ser representados como uma cadeia cinemática de corpos rı́gidos conectados por meio de juntas. O movimento do manipulador como um todo é uma composição dos movimentos de cada elo. Para interagir com um objeto no espaço é necessário descrever a posição e orientação do efetuador em relação a um sistema de coordenadas de referência. 3.1 Cinemática Direta A cinemática direta de um manipulador determina a posição e orientação do efetuador em função da configuração de suas juntas. A relação entre posição e orientação de dois pontos pode ser representada na forma de uma transformação homogênea, que é uma matriz composta por um vetor de posição p(θ) e uma matriz de rotação R(θ), onde θ é o vetor composto pela posição angular de cada junta. A transformação homogênea é descrita na equação 3.1: T = ‘R(θ) p(θ) 0 1 (3.1) Considere uma cadeia cinemática composta por n+1 elos, sendo o elo 0 a base e o elo n o efetuador. Esses elos são ligados por n juntas e cada uma dessas juntas possui um grau de mobilidade associado ao seu ângulo. Temos que: T0n (θ) = T01 (θ1 ) · T12 (θ2 )...Tn−1,n (θn ) 14 (3.2) Figura 3.1: Transformações Logo, a transformação homogênea que relaciona a posição e orientação do efetuador e sua base é dada por: Tbe (θ) = Tbe · T0n (θ) · Tne (3.3) Nesse projeto, o estudo será restringido a manipuladores com uma única cadeia aberta e que cada par de elos é conectado apenas por juntas de revolução, já que o manipulador utilizado apresenta essas caracterı́sticas. 3.2 Controle Cinemático Considere o problema de controle cinemático para um robô manipulador com n graus de mobilidade. Neste contexto, as seguintes hipóteses são assumidas: (H1) A cinemática do robô é conhecida; (H2) O efeito da dinâmica do robô é desprezı́vel. Essa abordagem é válida para robôs manipuladores que apresentam elevados fatores de redução nas engrenagens ou quando baixas velocidades são utilizadas para realizar a tarefa de interesse. Em geral, a maioria dos robôs industriais disponı́veis comercialmente possui uma malha de controle de velocidade interna para acionamento direto das juntas. A Figura 4.1 apresenta um esquema ilustrativo de uma 15 Figura 3.2: Diagrama de blocos tı́pica malha de controle de velocidade, onde x representa o vetor de posição e orientação do robô, ẋ é o vetor de velocidade de translação e rotação do robõ e τ denota o vetor de torques aplicado nas juntas do robô e Ja (θ) é o Jacobiano analı́tico. O bloco Drive fornece a potência necessária para o acionamento dos atuadores do robô a partir de um sinal de controle v de entrada. O sinal de controle v é gerado pelo controlador proporcional com ganho K que amplifica o sinal do erro e, medido entre o vetor de velocidades das juntas do robô θ̇ e o sinal externo de referência θ̇d . Então, para uma entrada u = θ̇d e uma malha de controle de alto ganho (K elevado), tem-se que e tende a 0 e consequentemente u é aproximadamente θ̇. Portanto, considerando a abordagem de controle cinemático o movimento do manipulador pode ser descrito por θ̇i = ui , i = 1, . . . , n (3.4) onde θ̇i é a velocidade angular da i-ésima junta e ui é um sinal de controle de velocidade aplicado ao drive do motor da i-ésima junta. A partir da modelagem cinemática, as variáveis no espaço das juntas são relacionadas com as variáveis no espaço operacional por meio dos seguintes mapeamentos de cinemática direta e cinemática diferencial: p = k(θ), ṗ = Jp (θ)θ̇ onde k(θ) é uma função m-dimensional, em geral, não-linear, e Jp = (3.5) ∂k ∂θ ∈ Rm×n é o Jacobiano analı́tico de posição. Note que p, ṗ ∈ Rm denotam a posição e a velocidade linear do efetuador do robô, expressos no sistema de coordenadas da base, e θ, θ̇ ∈ Rn denotam a posição e a velocidade angular das juntas do manipulador. Considere que a orientação do sistema de coordenadas do efetuador com respeito ao sistema de coordenadas da base é representada pela matriz de rotação R ∈ SO(3). Neste contexto, a orientação do efetuador do robô pode ser descrita também pela 16 representação de quaternion unitário dada por um vetor de dimensão 4 × 1 q = qs , qv ∈ H1 , onde qs ∈ R é a parte escalar e qv ∈ R3 é a parte vetorial, sujeitas a restrição da norma unitária qs2 + qvT qv = 1. A equação de propagação do quaternion relaciona a derivada temporal do quaternion unitário q̇ ∈ H com a velocidade angular do efetuador do robô ω ∈ R3 como: −qvT 1 q̇ = B(q) = 2 qs I − Q(qv ) (3.6) onde Q()˙ : R3 → SO(3) denota o operador matriz anti-simétrica e Jr (φ) = 2B T (q) ∈ R3×4 é Jacobiano de representação. A equação de cinemática diferencial fornece a relação entre o vetor de velocidades nas juntas e a correspondente velocidade linear e angular do efetuador do robô como: ṗ J (θ) = p θ̇ = J(θ)θ̇ (3.7) ω Jo (θ) ′ onde J(θ) ∈ Rm ×n é o Jacobiano geométrico do manipulador. Então, a partir de 3.7 e considerando a abordagem de controle cinemático 3.4, obtém-se o seguinte sistema de controle: ṗ = J(θ)u ω (3.8) Para o caso onde a matriz Jacobiana é retangular (m ¡ n), o sinal de controle de velocidade u ∈ Rn é dado por u(t) = J † (q)v, vp v= vo (3.9) onde J † = J T (JJ T )−1 é a pseudo-inversa a direita de J e v ∈ Rm é o sinal de controle cartesiano a ser projetado. Note que, vp e vo são os sinais de controle de posição e de orientação, projetados para comandar a configuração do efetuador do robô simultaneamente. O sinal de controle 3.9 minimiza localmente a norma das velocidades das juntas, desde que a cinemática do robô seja conhecida e v(t) não conduza o robô para configurações singulares, onde a matriz Jacobiana possui posto deficiente. 17 3.2.1 Controle de posição Considere que o objetivo do controle para uma determinada tarefa é seguir uma posição desejada variante no tempo pd (t) a partir de uma posição inicial p, isto é: p → pd (t), ep = pd (t) − p → 0 (3.10) onde ep ∈ R3 é o erro de posição. A partir de (3.7) e (3.9) chega-se a ṗ = vp obtendo-se a seguinte equação de erro: ėp = ṗd − vp (3.11) Usando uma lei de controle baseada em uma ação proporcional e um termo feedforward dada por vp = Kp ep + ṗd (3.12) onde Kp = kp I é a matriz de ganho de posição, a dinâmica do erro de posição é governada por: ėp + Kp ep = 0 (3.13) Então, escolhendo kp como uma constante positiva, o sistema de controle em malha fechada é exponencialmente estável e, consequentemente limt→∞ ep (t) = 0. 3.2.2 Controle de orientação Considere que o objetivo de controle para uma determinada tarefa é alcançar uma orientação desejada variante no tempo Rd (t) a partir de uma orientação inicial R, isto é: R → Rd (t), Rq = RT Rd → I (3.14) onde Rq ∈ SO(3) é a matriz de erro de orientação. A representação em quaternion unitário de Rq é dada por eq = [eqs eTqv ]T , com eq = q −1 ∗ qd (t), onde q = (qs , qv ) e qd = (qds , qdv ) são as representações em quaternion unitário de R e Rd respectivamente e ”∗” é o operador produto de quaternion. Note que, eq = [1 0]T se e somente se R e Rd estão alinhados. Portanto, pode-se definir o erro de orientação como: eo = eqv = qs qvd − qsd qv + Q(qvd )qv 18 (3.15) Entretanto, verifica-se que o cálculo explı́cito de qs e qv a partir das variáveis das juntas não é possı́vel, e requer o cálculo da matriz R fornecida pela cinemática direta do manipulador (SICILIANO et al. 2010). A partir de 3.7 e 3.9 chega-se a ω = vo . Então, usando uma lei de controle baseada em uma ação proporcional e um termo feedforward dada por vo = ωd + Ko eqv (3.16) onde Ko ∈ R3×3 é a matriz de ganho de orientação e ωd ∈ R3 é a velocidade angular desejada, obtêm-se a seguinte dinâmica para o erro de orientação: ω̃ + Ko eo = 0 onde ω̃ = ωd − ω ∈ R3 é o erro de velocidade angular do efetuador. 19 (3.17) Capı́tulo 4 Resultados Neste capı́tulo são apresentados resultados de simulação . O sistema robótico original consiste de um robô Motoman DIA10 de dois braços com 15 graus de mobilidade sendo 7 por braço mais 1 na base. Nos experimentos apenas um braço será utilizado e a tarefa de interesse consiste em acompanhar uma trajetória desejada. As referências foram geradas pelo Adaptative Notch Filter descrito no capı́tulo 2, com base nos dados colhidos experimentalmente. Os parâmetros de controle ajustados empiricamente são: Kp = 5Is−1 , Ko = 1Irads−1 Foram simulados dois experimentos, ambos seguindo a mesma trajetória. No primeiro experimento, foi utilizado apenas um controle de posição, e no segundo foi feito um controle de posição e orientação. Os resultados podem ser observados nas figuras abaixo. Sinal de Controle do Braço R1 (Esquerdo) 4 u 1 [rad/s] 2 u 2 u u 3 4 u 5 u u 6 7 u 8 0 −2 −4 0 2 4 6 0 2 4 6 8 10 12 [s] Ângulos das juntas do Braço R1 (Esquerdo) 14 16 18 20 1 [rad] 0 −1 q 1 −2 8 10 [s] q 2 12 q q 3 4 14 q 5 16 q 6 q 7 q 8 18 Figura 4.1: Sinal de controle e angulos das juntas com controle de posição 20 20 Posição do Braço R1 (Esquerdo) 2 x d x yd [m] 1 y z 0 d z −1 0 2 4 6 8 10 12 [s] Erro de Posição do Braço R1 (Esquerdo) 14 16 18 20 0.6 e px 0.4 e py [m] e pz 0.2 0 −0.2 0 2 4 6 8 10 [s] 12 14 16 18 20 Figura 4.2: Posição e erro de posição do braço com controle de posição Sinal de Controle do Braço R1 (Esquerdo) 10 u u [rad/s] 1 u 2 u 3 u 4 u 5 u 6 7 u 8 5 0 −5 0 2 4 6 8 10 12 [s] Ângulos das juntas do Braço R1 (Esquerdo) 14 16 18 20 2 [rad] 0 −2 q 1 −4 0 2 4 6 8 10 [s] q 2 12 q q 3 4 14 q 5 16 q q 6 7 q 8 18 20 Figura 4.3: Sinal de controle e angulos das juntas com controle de posição e orientação Posição do Braço R1 (Esquerdo) 2 x [m] y z 0 −1 d x yd 1 d z 0 2 4 6 8 10 12 [s] Erro de Posição do Braço R1 (Esquerdo) 14 16 18 20 0.6 e px 0.4 e py [m] e pz 0.2 0 −0.2 0 2 4 6 8 10 [s] 12 14 16 18 20 Figura 4.4: Posição e erro de posição do braço com controle de posição e orientação 21 Orientação do Braço R1 (Esquerdo) 1 e xd [rad] 0.5 e x e yd 0 e y e zd −0.5 e z −1 0 2 4 6 0 2 4 6 8 10 12 [s] Erro de Orientação do Braço R1 (Esquerdo) 14 16 18 20 14 16 18 20 0.03 0.02 0.01 0 8 10 [s] 12 Figura 4.5: Orientação e erro de orientação do braço com controle de posição e orientação. 22 Capı́tulo 5 Conclusão Nesse trabalho foi realizado o rastreamento do movimento de um objeto em trajetória pendular planar, realizado por um manipulador robótico. Para chegar no objetivo final, foram realizadas diversas tarefas intermediárias. Foi realizada o tratamento de uma imagem capturada com uma câmera RGB, de modo que se pudesse identificar um objeto especı́fico. Com o objeto identificado, foi feita a previsão de sua trajetória. A trajetória prevista foi então filtrada por um Adaptive Notch Filter para gerar a referência de trajetória. Foi então feito o controle cinemático do manipulador para que ele fosse capaz de seguir a trajetória prevista. 5.1 Trabalhos futuros Como não foi possı́vel realizar o movimento sı́ncrono do pendulo real com o manipulador, uma continuação natural para projetos futuros seria a implementação do trabalho no manipulador real. Outro ponto importante seria o estudo do caso de um movimento de um pêndulo no R3 . Também seria interessante enviar uma trajetória para um dos braços e fazer com que o outro repetisse o movimento através das técnicas utilizadas nesse trabalho. 23 Referências Bibliográficas [1] WANG, Z., LAMPERT, C. H., MULLING, K., etal. “Learning anticipation policies for robot table tennis”. In: Intelligent Robots and Systems (IROS), 2011 IEEE/RSJ International Conference on, pp. 332–337, Sept 2011. doi: 10.1109/ IROS.2011.6094892. [2] METTIN, U., SHIRIAEV, A., BATZ, G., etal. “Ball dribbling with an underactuated continuous-time control phase”. In: Robotics and Automation (ICRA), 2010 IEEE International Conference on, pp. 4669–4674, May 2010. doi: 10.1109/ROBOT.2010.5509901. [3] WANG, Q., ZHANG, X., XU, D. “Human behavior imitation for a robot to play table tennis”. In: Control and Decision Conference (CCDC), 2012 24th Chinese, pp. 1482–1487, May 2012. doi: 10.1109/CCDC.2012.6243007. [4] KIM, K., KIM, J., KANG, S., etal. “Object recognition for cell manufacturing system”. In: Ubiquitous Robots and Ambient Intelligence (URAI), 2012 9th International Conference on, pp. 512–514, Nov 2012. doi: 10.1109/URAI.2012. 6463056. [5] TAKYI, A., DAMOAH, D., ANSONG, E., etal. “The colour-based Autonomous File Extraction Rover”. In: Computer Communication and Systems, 2014 International Conference on, pp. 102–106, Feb 2014. doi: 10.1109/ICCCS.2014. 7068176. [6] HSU, L., ORTEGA, R., DAMM, G. “A globally convergent frequency estimator”, Automatic Control, IEEE Transactions on, v. 44, n. 4, pp. 698–713, Apr 1999. ISSN: 0018-9286. doi: 10.1109/9.754808. 24 [7] SICILIANO, B., SCIAVICCO, L., VILLANI, L., etal. ling, Planning and Control. Robotics: Model- Advanced Textbooks in Control and Signal Processing. Springer London, 2010. ISBN: 9781849966344. <https://books.google.com.br/books?id=vNpdewAACAAJ>. 25 Disponı́vel em: