26
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO ESPÍRITO SANTO CAMPUS SERRA MATHEUS GRIJÓ LIMA TRANSFROMAÇÕES HOMOGÊNEAS E CINEMÁTICA DE MANIPULADORES SERRA 2012

Trabalho 1 Robotica Matheus Grijo

Embed Size (px)

Citation preview

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO

ESPÍRITO SANTO – CAMPUS SERRA

MATHEUS GRIJÓ LIMA

TRANSFROMAÇÕES HOMOGÊNEAS E

CINEMÁTICA DE MANIPULADORES

SERRA

2012

MATHEUS GRIJÓ LIMA

TRANSFORMAÇÕES HOMOGÊNEAS E

CINEMÁTICA DE MANIPULADORES

Relatório apresentado à disciplina de

Robótica Industrial, do curso de Engenharia

de Controle e Automação, do Instituto

Federal de Educação, Ciência e Tecnologia

do Espírito Santo, como requisito parcial

para avaliação na referida disciplina.

Orientador: Prof. Felipe Martins

SERRA

2012

RESUMO

Este relatório consiste na apresentação dos conteúdos aprendidos até aqui na

disciplina de Robótica Industrial. Os tópicos abrangem a teoria das Transformadas

Homogêneas e a Cinemática de Manipuladores Industriais, além de conter exercícios

teóricos e simulações computacionais, visando à fixação dos conteúdos.

SUMÁRIO

1 Introdução ............................................................................................................................. 5

1.1 O que é um Robô? ............................................................................................................. 5

1.2 Classificação dos Robôs .................................................................................................... 6 1.2.1 Robôs Industriais (Manipuladores) ............................................................................... 6

1.2.2 Robôs móveis.................................................................................................................. 9 1.2.3 Robôs de serviço............................................................................................................. 9

2 Cinemática direta e Inversa ............................................................................................. 11

2.1 Introdução ........................................................................................................................ 11

2.2 Cinemática Direta ........................................................................................................... 11

2.3 Cinemática Inversa ......................................................................................................... 14

2.4 Velocidade e Singularidades .......................................................................................... 15

3 Exercícios ............................................................................................................................ 17

3.1 Robô planar RR (tipo Elbow) ........................................................................................ 17

3.2 PUMA 560 ........................................................................................................................ 18

3.3 Robô SCARA AdeptOne ................................................................................................ 20

3.4 Robô SCARA AdeptOne (toolbox Matlab) ................................................................. 21

Referências ................................................................................................................................. 26

5

1 INTRODUÇÃO

A seguir serão introduzidas algumas definições a respeito de robótica, como o que é um robô, suas aplicações, tipos de robôs e alguns robôs comerciais.

1.1 O que é um Robô?

Robôs são maquinas que têm despertado o interesse da população durante a

história. Em geral, são maquinas ou dispositivos que operam automaticamente ou via

controle remoto (Kurfess, 2005, p. 3). A palavra robô vem do tcheco robota, que pode ser

traduzida como servidão ou trabalho forçado e foi cunhada pelo tcheco Karel Čapek em sua peça de teatro “R.U.R.” (Rossum’s Universal Robots) em 1921.

Karel Čapek (1890 – 1938)

Não há uma definição única de um robô. Joseph Engelberger (referido como

“pai da robótica”) disse certa vez, “Eu não consigo definir o que é um robô, mas eu sei o

que é um quando eu vejo um”. Alan Mackworth, diretor do University of British Columbia

Laboratory of Computational Intelligence, disse: “É uma maquina capas de sentir e agir e

reagir no mundo e possivelmente envolve algum raciocínio para realizar essas ações, e faz

isso de forma autônoma”.

6

1.2 Classificação dos Robôs

Assim como a definição de robôs, a classificação dos mesmos não é única.

Porém, algumas classes são bem conhecidas como os robôs industriais (manipuladores), robôs móveis e robôs de serviço.

1.2.1 Robôs Industriais (Manipuladores)

A ISO 8373 define um robô manipulador industrial como: “Um

manipulador controlado automaticamente, reprogramável, multifuncional, programável em

três ou mais eixos, que pode ser tanto fixo quanto móvel para uso em aplicações de automação industrial”.

Kuka omniRob: exemplo de manipulador industrial móvel

Um robô industrial, usualmente é composto de um braço articulado e um efetuador (o que irá realmente interagir com o ambiente).

7

Efetuador do tipo garra

Manipulador fixo em uma indústria siderúrgica

A ISO 8373 ainda divide os robôs manipuladores em algumas classes

(referente ao tipo de junta e área de trabalho), de acordo com a tabela a seguir.

8

9

1.2.2 Robôs móveis

Os robôs moveis tem a capacidade de se locomover pelo ambiente e não

estão presos a um local fixo. Os robôs moveis podem ser classificados de acordo com o

ambiente em quer eles navegam (terra, ar, água, neve) e o tipo de dispositivo que eles usam

para se locomover (pernas, rodas, esteiras).

Exemplos de robôs moveis de diferentes tipos

1.2.3 Robôs de serviço

Os robôs de serviço auxiliam os humanos em tarefas que são sujas,

maçantes, distantes, perigosas e/ou repetitivas, incluindo tarefas domesticas. Eles são

tipicamente autônomos e/ou operados por sistemas de controle internos, mas possuem

também controle manual.

10

Roomba da iRobot é um dos mais populares robôs de serviço doméstico, sua função é de aspirador de pó

11

2 CINEMÁTICA DIRETA E INVERSA

2.1 Introdução

Cinemática é o estudo do movimento dos corpos sem considerar a força ou

o momento que causam o movimento. A cinemática de robôs se refere ao estudo analítico do movimento dos robôs manipuladores (Cubero, 2007, p. 117).

A cinemática dos robôs pode ser dividida em cinemática direta e cinemática

inversa. As equações da cinemática direta são diretas e não há grande complexidade em

encontra-las, além disso, há sempre uma solução para a cinemática direta de um

manipulador. Já a cinemática inversa é muito mais complicada, computacionalmente

grande e geralmente demanda muito tempo no controle em tempo real dos manipuladores. A relação entre cinemática direta e inversa pode ser descrita pela figura abaixo:

Relação entre cinemática (kinematics) direta (Forward) e inversa (Inverse)

Na cinemática direta as entradas são as coordenadas generalizadas das

posições das juntas e tem como saída posição do efetuador e orientação do sistema de

coordenadas do efetuador. Na cinemática inversa é o contrário.

2.2 Cinemática Direta

O manipulador é composto por elos em série fixados um ao outro por juntas (prismáticas ou rotacionais) a partir da base até o efetuador.

12

Figura que ilustra todas as partes de um manipulador

O cálculo da posição e orientação do efetuador em termos de variáveis de juntas é chamado de cinemática direta.

Existem alguns métodos para se obter a cinemática direta de um

manipulador. O método de Denvit-Hartenberg (DH) que usa quatro parâmetros é o mais

comumente usado para descrever a cinemática do robô (Cubero, 2007, p.119). Os

parâmetros utilizados são ai-1, αi-1, di e θi que são o comprimento do elo, ângulo de torção

do elo, deslocamento da junta e ângulo de junta, respectivamente. Um sistema de coordenadas é fixado a cada junta para se determinar os parâmetros de DH.

Figura que exemplifica as coordenadas de um manipulador

13

A matriz de transformação geral ii-1

T para um elo pode ser obtida da

seguinte maneira:

Onde Rx e Rz representam rotação, Dx e Qi representam translação e cθi e sθi

são abreviações de cosseno(θi) e seno(θi), respectivamente. A cinemática direta do

efetuador (end-effector) em relação à base do robô é determinada pela multiplicação de as

matrizes ii-1

T.

Uma representação alternativa é dada por:

14

Onde os termos rkj representam os elementos de rotação da matriz de

transformação e px, py e pz representam os elementos de posição.

2.3 Cinemática Inversa

A conversão da posição e orientação do efetuador do um manipulador do

espaço cartesiano para o espaço das juntas é chamada de cinemática inversa. Não há um

algoritmo pronto (como no caso da cinemática direta), já que em certos casos não há uma

solução para a cinemática inversa ou há infinitas soluções. A cinemática inversa é

necessária para a geração de trajetórias.

Existem dois métodos analíticos para encontrar a cinemática inversa, o método algébrico e o método geométrico.

O método geométrico consiste na decomposição a geometria espacial do

manipulador em diversos problemas de geometria plana. É aplicado a estruturas robóticas

simples. Segue o exemplo do manipulador de 2 DOF decomposto:

Decomposição das componentes do robô de 2DOF planar

Fazendo as devidas manipulações, encontram-se os ângulos:

15

Para manipuladores com mais elos e que seu braço se movimenta em três

dimensões, o método geométrico se torna muito tedioso. Então, nesses casos o método

algébrico é mais aplicado. Nesse método utilizam-se as transformações homogêneas

obtidas na cinemática direta para se obter as soluções da cinemática inversa.

2.4 Velocidade e Singularidades

As velocidades angular e linear de um manipulador podem ser obtidas a

partir do cálculo do Jacobiano de sua matriz de transformação homogênea.

16

Toda e qualquer configuração para a qual J diminui os valores do range do

manipulador é dita que é uma singularidade cinemática. A singularidade representa

configurações em que há uma perda de mobilidade da estrutura. Quando a estrutura estiver

em uma configuração singular, pode haver infinitas soluções para o problema cinemático

inverso. Em torno de uma singularidade, pequenas velocidades no espaço de trabalho podem resultar em altas velocidades no espaço das juntas.

17

3 EXERCÍCIOS

3.1 Robô planar RR (tipo Elbow)

Temos que as expressões da cinemática direta do robô serão:

Calculando o Jacobiano direto teremos:

Calculando o Jacobiano inverso teremos:

Logo podemos observar que o Jacobiano direto é singular. Já o Jacobiano

inverso é indefinido para valores de θ2 iguais a 0º e 180º (denominador será igual a zero), logo está configuração do manipulador é uma singularidade.

O ponto P(0.9, 0.2) pertence ao espaço de trabalho do robô. O espaço de

trabalho do manipulador será uma circunferência de raio 1 m, porém excluindo a

extremidade da circunferência, porque neste caso o ângulo θ2 seria igual a 0º e como vimos este caso é uma singularidade. Portanto o espaço de trabalho do robô será:

18

Espaço de trabalho do robô RR planar

3.2 PUMA 560

De acordo com a figura, o robô não está representado na sua posição zero.

Para isso, os elos deveriam estar orientados de tal forma que todos os eixos xi fossem

paralelos. Devemos então adicionar termos constantes (+90º) a θ1 e θ3. As matrizes de transformação serão:

19

A matriz de transformação homogênea que relaciona a base com o efetuador (T) será dada pelo código em Matlab a seguir:

syms teta1 teta2 teta3 teta4 teta5 teta6;

d = [0 149.09 0 433.07 0 56.25];

alfa = [-pi/2 0 pi/2 -pi/2 pi/2 0];

a = [0 431.8 -20.32 0 0 0];

A1 = [cos(teta1) -sin(teta1)*cos(alfa(1)) sin(teta1)*sin(alfa(1))

a(1)*cos(teta1); sin(teta1) cos(teta1)*cos(alfa(1)) -cos(teta1)*sin(alfa(1))

a(1)*sin(teta1); 0 sin(alfa(1)) cos(alfa(1)) d(1); 0 0 0 1;]

A2 = [cos(teta2) -sin(teta2)*cos(alfa(2)) sin(teta2)*sin(alfa(2))

a(2)*cos(teta2); sin(teta2) cos(teta2)*cos(alfa(2)) -cos(teta2)*sin(alfa(2))

a(2)*sin(teta2); 0 sin(alfa(2)) cos(alfa(2)) d(2); 0 0 0 1;]

A3 = [cos(teta3) -sin(teta3)*cos(alfa(3)) sin(teta3)*sin(alfa(3))

a(3)*cos(teta3); sin(teta3) cos(teta3)*cos(alfa(3)) -cos(teta3)*sin(alfa(3))

a(3)*sin(teta3); 0 sin(alfa(3)) cos(alfa(3)) d(3); 0 0 0 1;] A4 = [cos(teta4) -sin(teta4)*cos(alfa(4)) sin(teta4)*sin(alfa(4))

a(4)*cos(teta4); sin(teta4) cos(teta4)*cos(alfa(4)) -cos(teta4)*sin(alfa(4))

a(4)*sin(teta4); 0 sin(alfa(4)) cos(alfa(4)) d(4); 0 0 0 1;] A5 = [cos(teta5) -sin(teta5)*cos(alfa(5)) sin(teta5)*sin(alfa(5))

a(5)*cos(teta5);

20

sin(teta5) cos(teta5)*cos(alfa(5)) -cos(teta5)*sin(alfa(5))

a(5)*sin(teta5); 0 sin(alfa(5)) cos(alfa(5)) d(5); 0 0 0 1;] A6 = [cos(teta6) -sin(teta6)*cos(alfa(6)) sin(teta6)*sin(alfa(6))

a(6)*cos(teta6); sin(teta6) cos(teta6)*cos(alfa(6)) -cos(teta6)*sin(alfa(6))

a(6)*sin(teta6); 0 sin(alfa(6)) cos(alfa(6)) d(6); 0 0 0 1;]

T = A1*A2*A3*A4*A5*A6

3.3 Robô SCARA AdeptOne

Os parâmetros de Denavit-Hartenberg serão:

Elo θ d α a

1 θ1 d1 0 a1

2 θ2 0 π a2

3 0 d3 0 0

4 θ4 d4 0 0

O modelo cinemático do manipulador (T) será dado pelo seguinte algoritmo

de Matlab:

syms teta1 teta2 teta4 d1 d3 d4 a1 a2;

A1 = [cos(teta1) -sin(teta1) 0 a1*cos(teta1); sin(teta1) cos(teta1) 0 a1*sin(teta1); 0 0 1 d1; 0 0 0 1;]

A2 = [cos(teta2) sin(teta2) 0 a2*cos(teta2); sin(teta2) -cos(teta2) 0 a2*sin(teta2); 0 0 -1 0; 0 0 0 1;]

A3 = [1 0 0 0; 0 1 0 0; 0 0 1 d3; 0 0 0 1;] A4 = [cos(teta4) -sin(teta4) 0 0; sin(teta4) cos(teta4) 0 0; 0 0 1 d4; 0 0 0 1;]

T = A1*A2*A3*A4

21

3.4 Robô SCARA AdeptOne (toolbox Matlab)

Substituindo os valores na tabela do exercício anterior teremos os seguintes parâmetros:

Elo θ d α a

1 θ1 1060 0 425

2 θ2 0 π 375

3 0 d3 0 0

4 θ4 183 0 0

a) O modelo do manipulador SCARA (AdeptOne) será dado pelo seguinte código Matlab:

clear all close all clc

L(1)=Link([0,1060,425,0]); L(2)=Link([0,0,375,pi]); L(3)=Link([0,0,0,0,1]); L(4)=Link([0,183,0,0]); adeptone = SerialLink(L,'name','AdeptOne')

Que resulta em:

22

b) Plotando o robô na posição home teremos:

Plot do Robô do item 7.b do trabalho

Obtendo a cinemática direta do manipulador teremos:

23

Obtendo o Jacobiano:

c) Repetindo o item b para a posição θ1=π/2, θ2=π/4, d3=100 mm e θ4 = 0,

teremos:

24

Cinemática direta:

Jacobiano:

25

d) Para mostrar o movimento do robô basta adicionar ao código do item a

mais alguns comandos, que seguem:

q1 = [0:pi/200:pi]'; q2 = zeros(size(q1)); q3 = [0:1:200]'; q4 = zeros(size(q1)); adeptone.plot([q1,q2,q3,q4])

e) Para obtermos a cinemática inversa a partir do ponto [π,0,200,0] basta adicionar ao algoritmo os comandos:

T = fkine(adeptone,[pi,0,200,0]); qi = adeptone.ikine(T,[pi,0,200,0],[1 1 1 1 0 0])

Que resulta em:

qi =

3.1416 0 200.0000 0

26

REFERÊNCIAS

CRAIG,J. J. Introduction to Robotics. Addison Wesley Longman, 1989.

KURFESS, T. R. Robotics and Automation Handbook. CRC Press, 2005.

CUBERO, S. Industrial Robotics. Advanced Robotic Systems International, 2007.

SANTOS, V. M. F. Robótica Industrial. Universidade de Aveiro, 2004.

BECKER, M. Dinâmica e Controle de Sistemas Robóticos I. EESC – USP Notas de

aula. Acesso em: 10/07/2012. Disponível em:

http://www.mecatronica.eesc.usp.br/wiki/index.php/SEM0317

Your View: How would you define a robot? CBCNEWS, 2007. Acesso em: 10/07/2012.

Disponível em: http://www.cbc.ca/technology/technology-

blog/2007/07/your_view_how_would_you_define.html

ISO 8373. Acesso em: 10/07/2012. Disponível em:

http://www.dira.dk/media/15466/Def.%20af%20robottyper.pdf

CORKE, P. I. A computer tool for simulation and analysis: the Robotics Toolbox for

MATLAB. CSIRO Division of Manufacturing Technology.