Upload
matheus-grijo-lima
View
169
Download
2
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.
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:
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.