Escolar Documentos
Profissional Documentos
Cultura Documentos
Robot Industr Unv Aveiro
Robot Industr Unv Aveiro
Apontamentos tericos
Exerccios para aulas prticas
Problemas de exame resolvidos
Vtor M. F. Santos
Departamento de Engenharia Mecnica
Universidade de Aveiro
2003-2004
Proibida a cpia total ou parcial para fins comerciais ou editoriais sem a autorizao escrita do autor (vitor@ua.pt).
Contedo
1. INTRODUO ............................................................................................................................................ 1-2
1.1 ORIGEM DO TERMO 'ROBOT'.................................................................................................................. 1-2
1.2 ALGUMAS DEFINIES DE ROBOT E ROBTICA ................................................................................. 1-2
1.3 CLASSIFICAO DE ROBOTS ................................................................................................................. 1-3
1.3.1 Geraes (cronologicamente) .......................................................................................................... 1-3
1.3.2 Nvel de inteligncia do controlador (pela JIRSA) .......................................................................... 1-3
1.3.3 Nvel de controlo dos programas no controlador ............................................................................ 1-3
1.3.4 Linguagem de programao ............................................................................................................ 1-3
1.4 ALGUNS MARCOS NA HISTRIA DA ROBTICA................................................................................... 1-3
1.5 OS MANIPULADORES ROBTICOS ......................................................................................................... 1-4
1.5.1 Robtica fixa versus robtica mvel ................................................................................................ 1-4
1.5.2 Elementos principais de um manipulador (ou robot industrial)...................................................... 1-4
1.6 O ROBOT E A AUTOMAO.................................................................................................................... 1-5
1.6.1 Tipos de automao ......................................................................................................................... 1-5
1.6.2 Aplicaes tradicionais dos manipuladores industriais .................................................................. 1-6
1.7 IMPORTNCIA DO ROBOT INDUSTRIAL ............................................................................................... 1-6
2. ESTRUTURA E TIPOLOGIA DE MANIPULADORES ........................................................................ 2-2
2.1 COMPONENTES ....................................................................................................................................... 2-2
2.1.1 Brao mecnico................................................................................................................................ 2-2
2.1.2 Ponta ou Garra (End-effector)......................................................................................................... 2-2
2.1.3 Actuadores........................................................................................................................................ 2-3
2.1.4 Sensores ........................................................................................................................................... 2-4
2.1.5 Controlador...................................................................................................................................... 2-5
2.2 TIPOS DE JUNTAS .................................................................................................................................... 2-6
2.2.1 Graus de liberdade e graus de mobilidade ...................................................................................... 2-6
2.2.2 Representao e arranjo cinemtico................................................................................................ 2-7
2.2.3 O brao humano............................................................................................................................... 2-7
2.3 ESPAO DE TRABALHO E TIPOS DE MANIPULADORES ....................................................................... 2-7
2.3.1 Cartesiano (PPP) ............................................................................................................................. 2-8
2.3.2 Cilndrico (RPP) .............................................................................................................................. 2-8
2.3.3 Esfrico (RRP).................................................................................................................................. 2-9
2.3.4 Articulado Horizontal - SCARA (RRP) ............................................................................................ 2-9
2.3.5 Articulado vertical (antropomrfico) - RRR .................................................................................. 2-10
2.4 RESOLUO, REPETIBILIDADE, PRECISO ........................................................................................ 2-10
3. SISTEMAS DE COORDENADAS............................................................................................................. 3-2
3.1 NOES INTRODUTRIAS - REVISES.................................................................................................. 3-2
3.1.1 Sistemas de eixos.............................................................................................................................. 3-2
3.1.2 Vectores e Matrizes .......................................................................................................................... 3-2
3.1.3 Pontos e referenciais........................................................................................................................ 3-6
3.2 TRANSFORMAES GEOMTRICAS ELEMENTARES ........................................................................... 3-7
3.2.1 Exemplos de transformaes............................................................................................................ 3-7
3.2.2 A notao matricial para representar transformaes de um ponto a duas dimenses .................. 3-8
3.2.3 Matriz rotao para um caso geral................................................................................................ 3-11
3.2.4 Limitaes da matriz de transformao para representar a translao........................................ 3-12
3.3 COORDENADAS HOMOGNEAS ........................................................................................................... 3-12
3.3.1 Introduo de componentes adicionais na matriz de transformao ............................................ 3-12
3.3.2 Transformaes compostas - produtos de matrizes de transformao .......................................... 3-13
3.4 MATRIZES DE TRANSFORMAO A 3 DIMENSES ............................................................................ 3-15
3.4.1 Generalizao dos conceitos para 3 dimenses ............................................................................ 3-15
3.4.2 Componentes da matriz de transformao..................................................................................... 3-15
3.4.3 Interpretaes do que significa a matriz de transformao........................................................... 3-16
3.4.4 Ps-multiplicao e pr-multiplicao de matrizes de transformao.......................................... 3-18
3.4.5 Transformaes inversas. .............................................................................................................. 3-19
3.4.6 Grafos e equaes de transformao............................................................................................. 3-21
3.5 ORIENTAO E NGULOS DE EULER (RPY) ...................................................................................... 3-25
iii
Bibliografia
Introduction to Robotics P. McKerrow, Addison-Wesley, 1993.
Robotics: Control, Sensing, Vision, and Intelligence K. Fu, R. Gonzalez, C. Lee, McGraw-Hill, 1987.
Modeling and Control of Robot Manipulators L. Sciavicco, B. Siciliano, McGraw-Hill, 1996.
Robot Manipulators: Mathematics, Programming, and Control R. Paul, MIT Press, 1981.
Introduction to Robotics: Mechanics and Control J. Craig, Addison-Wesley, 1989.
Fundamentals of Robotics: Analisys & Control R. J. Schilling, Prentice-Hall, 1990.
Industrial Robotics: Technology, Programming, and Applications M. P. Grover et al., McGraw-Hill,
1986.
Nota
Este documento no substitui a bibliografia. Trata-se de resumos, de carcter no totalmente
completo e, por vezes, de densidade varivel na abordagem dos diversos assuntos.
Captulo 1
Introduo
1. Introduo
1.1
1.2
Introduo
1-2
mobile, of use in industrial automation applications. The robot includes - the manipulator
- the control system (hardware and software)
Usualmente o termo Robtica emprega-se para indicar a disciplina associada ao uso e programao
de robots,
dispositivos robticos.
Nem todos os sistemas automticos so robots; os sistemas automticos de funes fixas, como alguns
brinquedos com mobilidade ou mesmo uma mquina de Comando Numrico no so consideradas robots.
Para ter esse estatuto, dever o dispositivo ter uma capacidade de programao e, mais ainda, de alguma
adaptao ao problema prtico. Claramente, um robot pressupe um sistema que interage fisicamente pelo
movimento de certas componentes mecnicas.
1.3
Classificao de robots
1.4
Introduo
1-3
1.5
Os manipuladores robticos
Elo
Junta
Elo
1.5.2.2
O controlador
Unidade capaz de gerar informao de activao de um ou mais actuadores com base num algoritmo
de controlo. Esse algoritmo pode levar em linha de conta o comando desejado, o estado corrente do actuador,
Introduo
1-4
e o prprio ambiente. Os algoritmos mais comuns recorrem ao chamado controlo PID (proporcional-integraldiferencial).
Quando no existente em separado, o controlador chega a incluir a unidade de potncia, ou seja, o
elemento que liga directamente ao actuador fornecendo-lhe a energia que necessita com base numa
informao de baixo teor energtico, como so os sinais elctricos sada de muitos controladores.
Por vezes, o controlador faz parte de um sistema maior de interligao com o utilizador exterior, como
o caso de um computador pessoal. Nestes casos o controlador pode assumir a forma de uma carta de
expanso do prprio computador, ou ser um dispositivo exterior que comunica com o computador de uma
forma padro, como por exemplo, uma ligao srie RS232.
Esta integrao num computador, devido ao abundante nmero de ferramentas de interface
disponveis, permite mais facilmente especificar os comandos desejados para o controlador, ou at de os
gerar de forma automtica, como fazem muitos programas (software).
1.5.2.3
Actuadores
Dispositivos que geram e impem movimento a uma qualquer parte mecnica pelo desenvolvimento
de foras e binrios baseada num princpio fsico de converso de energia. Podem ser, por exemplo, motores
elctricos, cilindros hidrulicos, ou pneumticos, electro-imanes, etc. Tm muitas vezes associados elementos
adicionais de transmisso mecnica. Fazem a actuao
1.5.2.4
Sensores
Fonte de
energia para
os actuadores
Controlador
(decide que medida de
actuao deve ser
imposta)
Unidade de potncia
(fornece energia ao
actuador com base nas
ordens do controlador)
Actuador
(gera deslocamento
linear ou rotacional)
Sensor
1.6
O robot e a automao
Introduo
1-5
simples,
obrigando
existncia
de
vrios
Pintura a spray
Soldadura a arco
Acabamento - polimento de
superfcie
1.7
Econmica: Um mesmo equipamento pode ter mltiplas funes e substituir vrios equipamentos
distintos.
Introduo
1-6
A atestar a importncia do robot industrial vm os nmeros expressos nos grficos das figuras
seguintes que mostram como o parque robtico mundial tem evoludo muito nos ltimos 10 anos na
indstria (Fonte: Revista Robtica 1999)
Figura 1.6 - Nmero de robots vendidos por ano e nmero estimado de robots industriais em servio.
1-7
Captulo 2
Estrutura e Tipologia de
Manipuladores
Componentes
2.1.2.1
Garras
As garras de preenso mecnica (pina) so bastante comuns e eis de seguida alguns exemplos:
2-2
Vcuo
Magntica
Adesivos
2.1.2.2
Ferramentas
Soldadura
2.1.3 Actuadores
Os componentes que utilizam uma fonte de energia para fazer mover as juntas; so de trs tipos
essenciais. Eis uma breve comparao dos trs tipos de actuadores:
Caracterstica
Controlo
Velocidades
Binrio a baixa velocidade
(aceleraes)
Preciso
Funcionamento em situao
esttica
Questes ambientais
Custos
Elctricos
Tipos de actuadores
Hidrulicos
Grande
Pequenos/Mdios
Grande
Boa
Excelente. Trata-se de
funcionamento normal.
Fcil. Possibilidade de
ser elaborado.
A presena de arcos
elctricos pode ser
indesejvel.
Relativamente baixos
Pneumticos
2-3
2.1.3.1
Tipo de actuao
Directa - O elemento mvel do actuador acoplado junta directamente.
Indirecta - o elemento mvel do actuador acoplado junta mediante um sistema de transmisso.
Actuao indirecta
Motor
Actuao directa
Actuao indirecta
2.1.4 Sensores
Fornecem informao ao controlador, nomeadamente em que local esto as diversas juntas do
manipulador Alm destes sensores internos h tambm os interruptores de fim de curso que delimitam as
deslocaes extremas das juntas. Existem tambm os sensores externos dedicados a recolher informao
adicional sobre o ambiente.
2.1.4.1
Sensores de posio
Potencimetros, V0 ( t ) = K ( t )
2-4
Figura 2.5 - O disco de um codificador ptico relativo e sistema de descodificao relativa (direita)
Figura 2.6 - O disco de um codificador ptico absoluto e sistema de descodificao obsoluta (direita)
2.1.4.2
Sensores de velocidade
2.1.5 Controlador
O controlador o componente que determina e, frequentemente, monitoriza o movimento de cada
junta. Geralmente o controlador faz outras operaes relacionadas com a aplicao. A operao fundamental
a funo de controlo em cada junta, isto , o processo pelo qual se procura que os elos/juntas fiquem
posicionados ou tenham o movimento desejado numa dada tarefa a cumprir. Esse processo tem de obviar os
problemas de que as aces de um certo actuador no tm os efeitos desejados, ou seja, ter de haver um
controlo em malha fechada ou chamado controlo realimentado. Note-se porm que h sistemas (mormente
didcticos) onde o controlo feito em malha aberta. Quer isso dizer que os actuadores so activados e que se
espera que cumpram exactamente o previsto. Isso possvel em certa medida com motores passo-a-passo.
Se designarmos por m(t) a entrada de um controlador, e diferena entre a sada desejada para o
sistema (actuador) e a sua real sada chamarmos erro e(t), as funes de controlo mais comuns so as
seguintes:
K0 e (t ) < 0
on-off: m ( t ) =
K 0 e ( t ) 0
proporcional: m ( t ) = K pe ( t )
de ( t )
dt
Relembra-se que o valor m(t) designa a entrada a aplicar no controlador em cada instante.
2-5
2.2
Tipos de juntas
As juntas so essencialmente de dois grandes tipos:
As prismticas (P) onde o movimento relativo dos elos linear
As rotacionais (R) onde o movimento relativo dos elos rotacional.
Existe ainda um terceiro tipo de junta designada por esfrica (S) que no fundo a combinao de
trs juntas rotacionais com o mesmo ponto de rotao.
Rotacional (revolute)
Prismtica (linear)
Figura 2.7 - Tipos de juntas
Juntas secundrias ou juntas do punho (as restantes juntas, mais prximas do end-effector)
(nota:
ilustrado
poder
manipulador
no
ter
2-6
Para
colocar
esta
pea
no
Figura 2.9 - Representao de um manipulador com as juntas RRPS, num total de 6 DOF
Junta
Tipo
Ombro (Shoulder)
Cotovelo (Elbow)
Pulso (Wrist)
Graus de
liberdade
(DOF)
Esfrica
Rotacional
Esfrica
3
1
3
2.3
2-7
2-8
4
(L + A)3 L3
3
A ( L + L )2 ( L L )2 L > L
2
1
2
1
2
A ( L1 + L2 ) L1 L2
2-9
4
3
3
( L1 + L2 ) ( L1 L2 ) L1 > L2
3
Podemos comparar os volumes de trabalho admitindo que as juntas rotacionais varrem 360 e que as
prismticas so todas iguais de comprimento L e que se deslocam o comprimento A e que A=L. Resulta
assim a seguinte tabela
Cartesiano
V = L3
Cilndrico
V = 3L3
28 3
V =
L
3
V = 4L3
32 3
L
3
Esfrico
Articulado Horizontal
Articulado Vertical
Note-se que o volume do espao de trabalho aumenta com o nmero de juntas rotacionais.
2.4
de medio (codificador). Exemplo, se o codificador tiver 180 incrementos ento a sua resoluo ser de 180
incrementos por volta ou seja 360/180 = 2. Esta a resoluo angular, que pode ser convertida em
resoluo espacial em funo do comprimento da junta ( =L * sin (ResolAngular) )
Repetibilidade: traduz a diferena de posio (linear em geral) com que o robot volta a recolocar-se
num ponto visitado anteriormente.
Preciso: traduz a diferena entre uma posio realmente atingida e a posio desejada pela
programao. Est relacionada com a resoluo e por certo no poder ser melhor que o valor daquela (ou +/metade) - afectado pela carga transportada e varivel conforme a zona do espao de trabalho.
2-10
Boa preciso
M preciso
Boa repetibilidade
Boa repetibilidade
Boa preciso
M preciso
M repetibilidade
M repetibilidade
2-11
Captulo 3
Sistemas de Coordenadas
z'
N
y'
x'
R
y
x
CC
SC
RPY ( , , ) =
S
SC + CSS
SS + CSC
CC + SSS
CS
0
CS + SSC
CC
0
0
0
0
3. Sistemas de Coordenadas
3.1
x0
y 0
representar qualquer das entidades geomtricas (ponto e vector) sem perigo de confuso: r =
x0
P = y .
0
ou
P1(x1,y1)
y
G
r
P(x0,y0)
G
u
G
v
G
r
G
v
P(x0,y0)
Figura 3-18 - Um ponto e um vector no plano. Ilustrao da soma de um ponto com um vector
Sistemas de Coordenadas
3-2
Por outro lado, define-se tambm a soma de um ponto com um vector, que resulta num segundo ponto
( P1 = P + v ). Geometricamente, isso equivale a que o vector a somar tenha a sua origem situada no ponto
inicial (P) e no na origem do sistema de eixos. Porm, e pelo exposto acima, dizer que o resultado da soma
um novo ponto, dizer tambm que um segundo vector. Desse modo, a soma de um ponto com um vector (e
forosamente nesta ordem porque a soma de um vector com um ponto no definida!) equivale tambm
soma de dois vectores. No lado direito da Figura 3-18 podemos verificar que o vector v , para efeitos de soma
(traduzindo a tal deslocao ou movimento), aplicado no ponto P, se bem que a sua representao livre
(como muitas vezes dito) est representada a tracejado e aplicada na origem do sistema de coordenadas.
Estas duas representaes so todavia a mesma identidade traduzida numa propriedade comum (a
equipolncia); no obstante essa propriedade, so dois segmentos de recta orientados distintos (esto em
posies diferentes do plano). Este conceito de segmento de recta orientado no neste contexto
interessante, e por isso restringir-nos-emos ao conceito de vector e da propriedade de equipolncia que ele
traduz.
Podemos ento extrair da Figura 3-18 que P1 = P + v ou
determinar as coordenadas do vector v custa dos dois pontos. O ponto P1 tem como coordenadas (x1,y1)
que so na verdade as coordenadas do vector associado u . Como se espera, u = r + v .
No que diz respeito nomenclatura, as designaes de vectores so indicadas por uma letra
minscula com uma seta por cima, em caracteres romanos (no itlicos) e por vezes ainda por essa mesma
letra em tom carregado (bold). Essas duas representaes (seta e bold) foram usadas acima mas, por
facilidade de escrita, em geral, usa-se s uma delas, e de preferncia a verso a carregado, exceptuando-se os
casos do texto manuscrito onde a verso com seta prefervel. Por outro lado, para representar matrizes
(arranjos rectangulares de nmeros ou expresses distintos entre si), dos quais os vectores so casos
particulares, usam-se letras romanas maisculas em tom carregado (a seta j no faria muito sentido visto
se perder a imagem geomtrica da tal propriedade do sentido do movimento). Em suma, e para facilitar a
escrita ao longo deste texto, usaremos as representaes indicadas na tabela seguinte:
Entidade
Vectores
Matrizes
Coordenada
Ponto*
ngulo
Exemplos
x
v = v = y
z
a b
T =
c d
x 0 = 5 , y2 = 12
P1 = P1 ( x 0 , y 0 , z 0 )
=
*Quando, em vez de ponto, pensarmos numa postura no espao (posio e orientao), o conceito de ponto
desvanece-se e falaremos de um vector que se representar com letras minsculas como convencionado.
Sistemas de Coordenadas
3-3
a b 0
T = c d 0
0 0 1
1 3 2 12 1
T = 0 5 2 7 10
4 2 8 3 0
Matriz quadrada
de ordem 3 (3X3)
Matriz no quadrada de
dimenso 3X5
x
y
v = z
1
Vector
coluna
u = 1 4 2 1
Vector linha
3.1.2.1
um operao que resulta numa matriz cujos elementos so todos afectados pelo mesmo factor
multiplicativo:
a b
a b
=
T =
c d
c d
3.1.2.2
A inverso de uma matriz (quadrada) a operao pela qual se determina a sua inversa. A inversa de
uma matriz A uma outra matriz, representada por A-1, tal que o produto das duas resulta na matriz
identidade:
A A1 = I
S as matrizes quadradas no singulares tm inversa. A matriz inversa pode ser obtida, em geral,
pela matriz adjunta de A dividida pelo determinante de A:
A1 =
Adj ( A )
det A
A matriz adjunta de uma matriz obtida pela substituio de cada termo pelo seu co-factor e
transpondo a matriz de co-factores.
3.1.2.3
O produto interno uma operao que resulta num escalar cujo valor dado por:
v u = vx ux + vy uy = v . u cos
v
u
x
x
onde v = , u = e u = ux2 + uy2 e o ngulo definido pelos dois vectores.
vy
uy
Esta operao comutativa. No faz sentido falar de associatividade porque o produto interno s est
definido entre dois vectores, no entre um vector e um escalar (aquele que resultaria do primeiro produto
interno).
3.1.2.4
O produto externo de vectores uma operao que resulta num terceiro vector perpendicular aos dois
primeiros. H vrios smbolos para representar esta operao e de seguida indicam-se alguns mais comuns.
A operao traduz-se deste modo: a b = a b = a b = c
Sistemas de Coordenadas
3-4
-c
a
Figura 3-19 - Produto vectorial e a sua anti-comutatividade.
O vector resultante tem um sentido que advm do sistema directo usado, e que se representa na
Figura 3-19, do lado esquerdo. Uma regra prtica para determinar o sentido do vector resultante consiste na
chamada "regra da mo direita"; os dedos da mo esto fechados excepo do polegar que indica o sentido
do vector resultante e os restantes dedos indicam o sentido do ngulo entre os vectores. V-se claramente
que o produto externo de vectores no comutativo, e alis anti-comutativo, como se observa da Figura
3-19. Quer isto dizer que:
b a = a b = c
A definio de produto vectorial leva-nos seguinte expresso:
a b = det ax
bx
j
ay
by
az = (aybz byaz )i ( ax bz bx az ) j + ( ax by bx ay ) k
bz
ax
c = a b = a . b . sin
3.1.2.5
envolvidas
pode
dizer-se,
simbolicamente,
seguinte:
(5 X 4)
(4 X 3)
( 5 X 3)
Figura 3-20 - Ilustrao da obteno de um elemento de uma matriz num produto de duas matrizes
Sistemas de Coordenadas
3-5
R qx
R
R
pode ser expresso num e noutro por q = qy e
R
qz
N qx
N
N
q = qy (Figura 3-21).
N
qz
q
z'
N
y'
q
N
x'
R
y
x
Figura 3-21 - Um ponto q visto de dois referenciais diferentes
A relao entre Rq e Nq, como se ver mais tarde, tem necessariamente a ver com a relao de posio
e orientao entre os dois referenciais, ou seja, da forma como se obtm um a partir do outro.
Uma outra questo importante a movimentao de pontos. Movimentar um ponto no espao
significa alterar-lhe as coordenadas, isto , passar de uma posio q1 para uma posio q2 visto do mesmo
referencial; este processo designa-se por translao no espao e, geometricamente, pode ser traduzido pela
adio/subtraco de vectores como referido na seco 3.1.2.
z
q1
p
q2
R
y
x
Figura 3-22 - Translao de um ponto
q
2x
q 2 = q2y
q
2z
q px
1x
= q + p . Fazer a translao de um segmento de recta (Figura 3-23) implica calcular as
1y y
q p
1z z
novas coordenadas dos seus dois extremos e, nesse caso, ter-se-ia as seguintes relaes q A2 = q A1 + p e
Sistemas de Coordenadas
3-6
qB 2 = qB1 + p .
qB2
qB1
p
qA1
qA2
R
y
x
Figura 3-23 - Translao de um segmento de recta.
Fazer a translao de figuras mais complexas implicaria recalcular todos as novas posies de todos
os pontos relevantes. Por exemplo, para calcular a nova descrio (posio) de um cubo, teramos de calcular
as novas coordenadas dos seus oito vrtices aps a translao. Claramente, este processo no interessante
(em especial para transformaes mais complexas que a translao, como veremos mais adiante), e requer-se
portanto uma forma alternativa e mais genrica para determinar a nova posio do cubo e de qualquer ponto
nele contido. Essa alternativa passa pela definio de um segundo referencial solidrio com o objecto a
mover. No instante inicial, antes da transformao, os referenciais coincidem, mas aps a transformao
teremos ainda o referencial original (R) e o novo referencial (N). O processo ilustra-se na Figura 3-24. O
ponto Nq assinalado traduz as coordenadas de um dos vrtices (escolha arbitrria) no novo referencial, mas
so tambm as coordenadas desse mesmo ponto, em R, antes de haver qualquer translao! Aps a
translao, no referencial N, solidrio com o objecto, essas coordenadas mantm-se, mas no referencial que
foi deixado para trs (R) esse ponto tem agora as coordenadas Rq. A relao entre essas coordenadas
obviamente dada por
q =N q +R p .
z'
N
y'
x'
R
y
x
Figura 3-24 - Translao de um cubo e do referencial a ele associado.
3.2
3-7
do eixo dos zz, de um dado ngulo , Rot(z,), ou uma translao de valor a ao longo do eixo dos yy,
z = z'
z'
y'
R
y
x'
N
x
y = y'
x'
Na verdade, e como facilmente se deduz da Figura 3-25, no espao a trs dimenses h seis
transformaes geomtricas independentes, 3 translaes e 3 rotaes elementares: Trans(x,a), Trans(y,a),
Trans(z,a), Rot(x,), Rot(y,) e Rot(z,) . Naturalmente, e como se ver mais adiante, transformaes
sucessivas resultam numa outra transformao decomponvel nas seis transformaes elementares.
x1 = x + px
y = y + p
1
ou, em notao matricial:
x1
x px
= +
y
y
p
1
y
Podemos todavia admitir um caso de transformao geomtrica, linear, absolutamente genrica onde
cada nova coordenada possa depender no s de um parmetro independente, mas tambm de todas as
coordenadas originais. Uma expresso desse gnero seria dada por:
x1 = ax + by + px
y1 = cx + dy + py
a b x px
x1
+
=
y
1
c d y py
a b
,
Designemos por T a matriz quadrada indicada,
c d
0
0
primeiramente admitir um conjunto de situaes onde temos o caso particular de p = 0 = , ou seja, sem
Sistemas de Coordenadas
3-8
translao.
3.2.2.2
0 1 vir y1 = 0 1 y + 0 = y , ou seja, no h transformao geomtrica alguma;
se T =
3.2.2.3
0 1 vir claramente
se T =
1 0 x
x1
x
= ou geometricamente:
=
y
y
1
y
0 1
y
P=(x,y)
P1=(x1,y1)
=(-x, y)
x
Figura 3-26 - Simetria axial
3.2.2.4
se T =
y
P=(x,y)
x
P1=(x1,y1)
=(-x, -y)
Figura 3-27 - Simetria central
3.2.2.5
Factor de escala
a 0
0 1 , que resulta em
a 0 x
x1
ax
= .
=
y
y1
y
0 1
Sistemas de Coordenadas
3-9
Sobre um ponto poderia ter efeitos aparentes de uma translao, mas no de facto uma translao.
Basta pensar quando aplicada a um objecto mais complexo como um segmento de recta. Seja por exemplo o
3 0
3 0 1
3
3 0 2
6
=
= e B' =
A ' =
2
0 1 2
0 1 1
1
Geometricamente a operao pode ser representada como ilustrado na Figura 3-28.
y
B'
B
A
A'
3.2.2.6
Rotao de 90
0 1
Se T =
de coordenadas:
0 1 x
x1
y
=
=
y
y
x
1
1 0
O fenmeno melhor ilustrado com um exemplo. Se pensarmos num tringulo com os seguintes
vrtices A(2,1), B(2,-1) e C(4,0), aps as transformaes vir:
0 1 2
1
0 1 4
0 1 2
1
0
=
= e C' =
= , B' =
A ' =
4
1 0 1
2
1 0 0
1 0 1
2
Sistemas de Coordenadas
3-10
C'
B'
A'
A
C
x
B
Figura 3-29 - Rotao de 90 no plano em torno da origem.
cos 90 sin 90
T =
sin
90
cos
90
Poder-se- induzir que uma matriz de rotao genrica seja dada pela seguinte expresso:
cos sin
C S
=
T =
S C
sin cos
Vamos provar que assim . Seja um dado ponto no plano com coordenadas cartesianas (x, y) e
coordenadas polares (l, ). Posteriormente, aplicada a esse ponto uma rotao de valor em torno da
origem, resultando no ponto de coordenadas (x1, y1).
y1
y
x1
1
x = l cos
como
y = l sin
vir:
x1 = x cos y sin
y1 = x sin + y cos
Sistemas de Coordenadas
3-11
cos sin x
C S x
x1
=
S C y
y
y1
sin cos
py
indicado nas expresses mencionadas a partir da seco 3.2.2.1. Porm, seria vantajoso, pelo menos do ponto
de vista computacional, ter uma forma de representar uma transformao geomtrica de forma compacta e
elegante, em vez de uma matriz e um vector independente.
3.3
Coordenadas homogneas
soluo
para
questo
anterior
(seco
3.2.4)
obtm-se
observando
expresso
a b x px
x1
+ . Basta conceber uma forma alargada de definir as coordenadas de um vector e
=
y
p
y1
c d y
rescrever ento:
x
a b px x
1
y1 = c d py y
1
0 0 1 1
Os termos introduzidos fazem surgir uma igualdade adicional (1=1), que verdadeira, e no altera
em nada o conhecimento do sistema, mas tem a vantagem de integrar numa nica matriz os efeitos da
rotao e de uma translao (pode ainda representar outros efeitos irrelevantes neste momento).
As coordenadas resultantes (com o termo unitrio adicional) so designadas coordenadas
homogneas, e este caso uma situao particular da definio geral de coordenadas homogneas: se
kx
x
ky
p = y , ento a variante homognea dada por ph = . Nestes captulos dedicados ao estudo dos
kz
z
k
sistemas de coordenadas usa-se o caso particular de k=1.
A matriz de transformao (homognea) assim constituda por seces com significados especficos:
Componente
de rotao
x1 cos
y = sin
1
1 0
Componente
de translao
sin
cos
0
px x
p y y
1 1
Sistemas de Coordenadas
3-12
cos sin 0
0
0
1
1 0 px
Trans ( px , py ) = 0 1 py
0 0 1
p ' = TN (
( T3 ( T2 ( T1 p )) ) ) = ( TN
T3 T2 T1 ) p = T p
3.3.2.1
1 0 ax
0 0 1
1 0 bx
0 1 by
0 0 1
1 0 ax 1 0 bx
1 0 ax + bx
T1 T2 = 0 1 ay 0 1 by = 0 1 ay + by
0 0 1 0 0 1
0 0
1
3.3.2.2
= T2 T1
cos 1 sin 1
0
0
0 e T2 = Rot ( 2 ) =
cos 2 sin 2 0
sin 2 cos 2 0
0
0
1
Sistemas de Coordenadas
3-13
C S
1
1
T1 T2 = S 1 C 1
0
0
0 C 2
0 S 2
1 0
C 1C 2 S 1S 2
= S 1C 2 + C 1S 2
0 =
S 2
C 2
0
C 1S 2 S 1C 2
S 1S 2 + C 1C 2
0
cos ( + ) sin ( + ) 0
1
2
1
2
T1 T2 = sin ( 1 + 2 ) cos ( 1 + 2 ) 0
0
0
1
3.3.2.3
1 0 px
T1 = Trans ( px , py ) = 0 1 py e T2 = Rot ( ) =
0 0 1
cos sin 0
sin cos 0
0
1
1 0 px cos sin 0
0 0 1 0
0
1
cos sin px
= sin cos py
0
1
Mas, por outro lado, a operao na ordem inversa resulta de forma bem diferente:
cos sin 0
1 0 px
0
0 0 1
0
1
x
y
0
1
Sistemas de Coordenadas
3-14
3.4
x
y
p = z
1
T=
g
px
e f py
h i pz
0 0 1
a b c
g h i
px
afectar a transformao como se descreve mais frente. O vector p = py traduz naturalmente a
p
z
translao.
Rot(z)
Rot(y)
y
Rot(x)
x
Figura 3-32 - Rotaes no espao a 3D.
Como foi j mencionado, a rotao pode ser feita em torno de trs eixos distintos, como se ilustra na
Figura 3-32. A variante mais intuitiva a rotao em torno dos eixo dos zz que deriva de imediato da rotao
do plano. As outras variantes so menos intuitivas mas a sua demonstrao no de forma nenhuma
complexa; bastar pensar na expresso usada para o plano a 2D e arranjar as matrizes de transformao
Sistemas de Coordenadas
3-15
cos sin
sin cos
Rot ( z , ) =
0
0
0
0
0 0
0 0
1 0
0 1
0
0
1
0 cos sin
Rot ( x , ) =
0 sin cos
0
0
0
cos
Rot ( y, ) =
sin
0 sin
1
0
0
0 cos 0
0
0
1
No caso de rotaes compostas em torno de dois ou mais eixos a componente de rotao (orientao)
da matriz de transformao ser mais complexa do que o das rotaes simples indicadas atrs.
A matriz de transformao geomtrica, homognea, tem, alm das rotaes e da translao mais
quatro termos (a ltima linha). Nesta abordagem os valores dessa linha s interessam ser [0 0 0 1], mas
noutros contextos tero a importncia adequada, nomeadamente no tratamento geomtrico de imagem
digital; so exemplos disso a perspectiva e o factor de escala global.
Rotaes
Factor escala local
r11 r12
r r
T = 21 22
r31 r32
1 2
Translao
r13
r23
r33
px
p y
pz
Perspectiva /
projeco
Factor de escala
global
Indica as transformaes geomtricas operadas sobre um ponto para o levar para outro local
geomtrico: q1 = T q 0 . Este facto traduz tambm o movimento imposto a um ponto, sempre
dentro de um mesmo referencial. No so aqui bvias todas as implicaes da transformao se o
objecto for um ponto, em especial as componentes de rotao.
Sistemas de Coordenadas
3-16
z
R
q0
T
q1
R
y
x
Figura 3-34 - Significado de RT: movimentao de um ponto
y'
q
N
x'
R
y
x
Transformao de um referencial (R) noutro referencial (N): RTN. Trata-se da criao de um novo
referencial por translao e rotao. Para tentar criar uma melhor imagem do processo, bastar
pensar que havia um segundo referencial N inicialmente coincidente com o referencial R mas
solidrio com o seu ponto de origem; a esse ponto foi depois aplicada a transformao levando
consigo o referencial N. A matriz de transformao representa todas as componentes de posio e
orientao de um novo referencial N em relao a um referencial original R. Isto , possvel
identificar na matriz RTN os quatro vectores que indicam a orientao (trs dos quatro vectores) e
a posio cartesiana (um vector) do novo sistema de coordenadas. Na expresso seguinte xN o
vector que indica a direco do novo eixo dos xx em relao base cannica do sistema R, e yN e zN
os vectores para as direces dos novos eixos dos yy e dos zz respectivamente:
r11 r12
r21 r22
R
TN = r
r
31 32
0
0
r13
r23
r33
px
py
xN
pz = 0
yN
zN
pN
z'
y'
z
N
TN
x'
R
y
x
Sistemas de Coordenadas
3-17
y''
x''
y
TA=T2T1=Trans(x,a)Rot(45)
x'
y'
y''
x''
y'
45
x'
45
x
a
y''
x''
y'
x'
45
O resultado da Figura 3-38 muito interessante pois coincide com o resultado do segundo caso da
Figura 3-37 (lado direito), isto , TB = T1T2, ou seja, a ps-multiplicao da matriz. Prescinde-se de
demonstrao formal, mas podemos afirmar o seguinte: a pr-multiplicao de uma transformao por outra
equivale a aplicar esta segunda no referencial global; a ps-multiplicao de uma transformao por outra
equivale a aplicar esta segunda no novo referencial.
Sistemas de Coordenadas
3-18
Segue-se um problema mais complexo usando o enunciado anterior. Determinar o novo referencial
depois de translacionar o original de uma unidade em cada eixo, depois rod-lo 90 em torno do novo eixo dos
yy, translacionar 1 unidade no novo eixo dos xx, e depois translacionar 1 unidade negativa no eixo dos zz do
referencial original.
A transformao dada pelo seguintes passos:
Passo 4
T= Trans(0,0,-1)
Passo 1
Passo 2
Passo 3
Trans(1,1,1)
Rot(y,90)
Trans(1,0,0)
z0
z0
z1
y1
y0
y2
z2
y0
y0
y0
x0
x0
y3
z3
x2
x0
y4
x0
z4
x4
x3
T=
0
=
1
0 1
0 0
1 0
1 0
1
1
0 0 1 0
1 0 1 0
0 1 1 1
0 0 1 0
0 1
0 0
0 0
1 0
0 0 1
1 0 0
=
0 1 0
0 0 1
A interpretao da matriz final directa e confirmvel pelo diagrama da Figura 3-39: o novo eixo dos
xx aponta no sentido contrrio do eixo dos zz original; o novo eixo dos yy aponta no mesmo sentido do eixo
dos yy original, e o novo eixo dos zz aponta no sentido do eixo dos xx original. Finalmente, a origem do novo
sistema de coordenadas est no ponto (1,1,-1) medido no referencial original.
p1 = T p0 T1 p1 = p0
Ou seja, pelo recurso inversa de uma matriz, foi possvel inverter o processo de transformao
geomtrica. Deste modo, a inversa da matriz de transformao tambm ela, necessariamente, uma matriz
de transformao.
Como transformao que , a transformao inversa assume todos os significados j conhecidos. Em
particular, realce-se a transformao de referenciais de onde sai a expresso: ( R TN
Sistemas de Coordenadas
=R TN1 =N TR .
3-19
p0
q
N
TR = RTN-1
R
R
TN
Na Figura 3-40 pretende-se ilustrar o processo de transformao inversa e algumas relaes entre
pontos. O ponto p0 sobre um dos eixos no referencial R tem o seu correspondente, aps a transformao
directa, no ponto p1 sobre o eixo do novo referencial, N. Note-se que p0 e p1 podem ser vistos como pontos
diferentes num mesmo referencial (esquecendo o outro referencial), ou cada um no seu referencial como
resultado de uma transformao de referencial. A partir da Figura 3-40 podemos ainda escrever uma
panplia de expresses que podero ajudar a compreender melhor as diversas relaes.
p1 = T p0 , T1 p1 = p0
N
R
N
q =N TR R q
q =N TR1 N q =R TN N q
p0 =N TR R p0 ,
p1 =R TN N p1 , etc.
Note-se que nas relaes anteriores se tem T = RTN. S uma questo de contexto permite dispensar os
ndices; na verdade, quando no pensamos no significado de transformao de referenciais, no faz sentido
falarmos de referenciais, e a, os ndices que os descrevem (R,N,) no tm utilidade particular. Ou seja,
quando nas expresses acima intervm um nico ponto, mas visto de referenciais diferentes (Rq e Nq, por
exemplo), necessrio indicar a ordem da transformao (de R para N ou de N para R). Quando
relacionamos dois pontos diferentes num mesmo referencial (p0 e p1 por exemplo), em geral a transformao
entre eles no carecer de ndices desde que no haja ambiguidade. Em caso de dvida ou de potencial
ambiguidade sugere-se o uso dos referidos ndices!
A matriz de transformao tem propriedades particulares que permitem definir uma regra muito
expedita para calcular a sua inversa. De facto, se uma matriz transformao for dada por:
px
ROT
py
x y z p
=
T=
0 0 0 1
pz
0
0
0 1
T1
p x
T
)
ROT
p
y
p z
0
0
1
Note-se o uso da seta (redundante) para reforar a lembrana a natureza dos objectos em causa.
Como dito anteriormente, o seu uso no era aqui obrigatrio, contudo a sua presena recordar que, por
Sistemas de Coordenadas
3-20
zR
R
zS
yN
TN
zN
yS
xN
yR
xS
xR
N
R
TS
TN
Do grafo da Figura 3-41 podemos escrever a seguinte relao: RTN = RTS STN. H varias formas de
demonstrar essa relao mas eis uma das formas mais expeditas: seja um ponto q qualquer no espao com as
diversas coordenadas Rq,
Sq
escrever sucessivamente:
Sq
= STN Nq
Rq
= RTS Sq
= RTS STN
Nesta expresso, e relembrando a situao da Figura 3-41, e o grafo de transformao, verifica-se que
h um termo desconhecido, trata-se de STN, da a expresso de designar por equao de transformao. A
sua resoluo todavia muito simples, recorrendo apenas lgebra de matrizes:
STN= RTS1
RT N
Note-se que a transformao STN no traduz a trajectria que deve fazer o pino para chegar ao
encaixe; traduz apenas uma relao geomtrica de posio e orientao que servir de base ao clculo do
eventual movimento/trajectria, que ser tema a abordar noutro captulo. Mais ainda, STN traduz a posio e
orientao da cavidade como vista do referencial do pino, isto , a aco de controlo ou gerao do movimento
prescindir do referencial global R, no pino que tudo comea.
Prope-se ainda um outro exemplo mais elaborado onde se pretende descobrir a relao entre o
Sistemas de Coordenadas
3-21
end-effector de um manipulador e o ponto de contacto com um objecto a pegar. A Figura 3-42 mostra uma
situao possvel onde se assinalam os diversos referenciais: W referencial global de trabalho (como a
bancada ou sala), R referencial da base do robot (localizao da base do robot na bancada), H referencial
do end-effector (depende do estado corrente das diversas articulaes do robot), O referencial do objecto a
pegar (localizao do objecto sobre a bancada), G referencial do ponto de contacto no objecto (local onde o
end-effector dever estabelecer contacto, como por exemplo o ponto central de uma face do objecto cuja
descrio geomtrica perfeitamente definida e conhecida). O grafo de transformao concebido levando
em linha de conta que no ponto G que se pretende o objectivo da operao.
TO
TG
H
W
TR
TG
TH
3.4.6.1
Para terminar esta seco, prope-se um exemplo numrico de um processo de montagem que
consiste em determinar a transformao a aplicar no paraleleppedo, e do seu ponto de vista, de tal modo
que encaixe na pea me ao longo das arestas assinaladas com uma seta a carregado. Escolheram-se os
pontos A e B para origem dos referenciais respectivos e assinalaram-se os eixos como indicado para
satisfazer os requisitos de alinhamento final.
zA
TA
yA
R
xB
xA
zB
q1
R
q0
TB
TA
yB
B
Figura 3-43 - Exemplo de montagem.
Sabendo que
0
A = 6 e
2
Sistemas de Coordenadas
8
B = 2 determinar a transformao necessria a aplicar pea, do
2
3-22
seu ponto de vista, para ela encaixar, isto , determinar BTA. O grafo de transformao o ilustrado, e dele
sair de imediato que BTA = RTB-1 RTA. A partir dos pontos dados, e observando a orientao dos eixos dos
sistemas ilustrados, imediato concluir o seguinte:
R
TA =
0
0 0 0
1 0 6
,
0 1 2
0 0 1
0 1
R
TB =
1
1
0
0
0
2
0 2
0
1
TA =R TB1
R TA =
1
0 1
2 1
1 0 2 0
0 0
8 0
0 0
1 0
0 0 0
0
0
1 0 6
0 1 2
1
0
0 0 1
0 1 4
1 0 4
0 0 8
0 0 1
Para verificar que o procedimento est correcto, experimentemos o resultado em dois pontos distintos.
Atente-se porm s coordenadas e aos sistemas de coordenadas que se usam em cada caso! A transformao
BT A
a transformao a operar sobre o paraleleppedo, mas visto do seu prprio referencial. As coordenadas
que resultam sero tambm no seu prprio referencial. Podemos verificar a posteriori o seu valor noutros
referenciais conhecidos s para efeitos de confirmao. Tome-se por exemplo o ponto B propriamente dito
que, no seu referencial, tem as seguintes coordenadas:
BB=[0
0 0 1]T
B' =B
TA B B =
1
0 1 4 0
4
4
1 0 4 0
=
0 0 8 0
8
1
0 0 1 1
mas, no referencial A, que ponto este? Sabendo BTA (e consequentemente ATB), para qualquer ponto
do espao vlida a seguinte relao
q =A TB B q =B TA1 B q .
Portanto,
e por conseguinte,
TB =B TA1
=
1
0 1
1
0
0
0 4
0 4
0
1
A
B' =
1
0 1
1
0
0
8 4
0
0
0 4 4
= ,
0 4 8
0
1
0
1 1
como seria de esperar, visto este ponto no ser mais do que a origem do sistema A.
Um segundo teste pode ser feito a um outro vrtice do paraleleppedo ilustrado na Figura 3-43. No
referencial B, temos o ponto indicado por q0, que ter como coordenadas nesse referencial Bq0. Esse ponto vai
ser movimentado para a posio q1, que ter coordenadas Bq1 ou Aq1, conforme o referencial. Admitindo as
Sistemas de Coordenadas
3-23
dimenses 2x4x3 para o paraleleppedo, teremos ento, como se pode observar da referida figura, o seguinte:
4
2
B
q0 =
0
1
Note-se que dever tambm este ser o valor para Aq1 porque a localizao q1 o ponto de destino de q0
aquando da transformao. E por isso, q1 visto de A tem o mesmo valor que q0 visto de B, ou seja, Aq1= Bq0.
Assim, para verificar esta igualdade, passemos verificao da transformao para este outro vrtice do
paraleleppedo:
q1 =B
TA B q 0 =
1
0 1 4 4
4
6
1 0 4 2
=
0 0 8 0
4
1
0 0 1 1
A
q1 =A TB B q1 =
1
0 1
1
0
0
8 4
4
2
0 4 6
=
0 4 4
0
1
0
1 1
3.4.6.2
No exemplo concreto anterior pode ressalvar uma questo. A transformao pretendida era suposta
ser aplicada no referencial da pea a mover, tal como sucedeu. Porm, igualmente legtimo procurar
determinar a transformao a aplicar mas visto do referencial global R. Reformulando, qual deve ser, vista
de R, a transformao a aplicar ao bloco que est em B de forme que "encaixe" no referencial A? Vamos
primeiro clarificar e distinguir esta situao da situao anterior (transformao vista do bloco a mover).
Primeira situao: o objecto sofreu
RTBBTA=RTA.
RT B
BT A
para atingir
RT A,
isto :
A segunda transformao (no tempo), por ser vista do novo referencial (B), ps-multiplicada
transformao original.
Segunda situao: o objecto sofreu RTB e em seguida deve sofrer uma transformao T2 para atingir
RT A.
Todavia, T2 deve ser vista do referencial global R e por isso deve ser pr-multiplicada a
T2RTB
RT A.
RT B:
= RT A
ou seja,
RTB,A
= RTARTB-1
Substituindo, vir:
Sistemas de Coordenadas
3-24
=
0
TB,A
0 0 0 0
1 0 6 0
0 1 2 1
0 0 1 0
0 1
2
0
0
1 0 2
0 0
8
1
0
0 0
1
0 1
1 0 4
0 0 10
0 0 1
Bastar agora aplicar aos pontos j usados na situao anterior e confirmar os resultados.
TB,A
R B =
1
2 8
0
6
1 0 4 2
= =R A
0 0 10 2
2
1
0 0 1 1
0 1
R
R
B
q 0 = TB q 0 =
1
0 1
1
0
0
8 4
8
4
0
2 2
=
0 2 0
2
1
0
1 1
R
R
B
q1 = TB q1 =
1
0 1
1
0
0
8 4
4
8
0
2 6
=
2
0 2 4
1
0
1 1
Finalmente, e como se esperava, a transformao operada sobre o ponto q0 resulta no ponto q1, tudo
visto do referencial R:
3.5
TB,A
R q 0 =
1
0 1
2 8
4
8
1 0 4 4
= =R q1
0 0 10 2
2
1
0 0 1 1
px
px
x
py
ROT
py
= N
=
pz
pz
0
0
0
0
0 1
yN
zN
pN
Essa orientao o resultado de uma sequncia de 3 rotaes em torno de trs eixos distintos, que
traduz os trs graus de liberdade rotacional que existem no espao.
As sub-matrizes de rotao (ROT na expresso anterior) apresentam algumas propriedades que se
podem tornar teis em certas circunstncias, nomeadamente as seguintes:
Sistemas de Coordenadas
3-25
3.5.2.1
Roll-Pitch-Yaw (RPY)
Roll-Pitch-Yaw.
Roll(), Rot(z, )
Pitch(), Rot(y, )
Y
Z
Yaw(), Rot(x, )
x
Figura 3-44 - Rotaes RPY e correspondncia usual num punho de mannipulador.
C C S C + C S S S S + C S C
S C C C + S S S C S + S S C
RPY ( , , ) =
C S
C C
S
0
0
0
Uma outra variante para os ngulos de Euler muito usada, a chamada tipo II (se bem que esta
designao varie muito com os autores). A sequncia a de rotao em torno do eixo dos zz, rotao em torno
do novo eixo dos yy, e finalmente rotao em torno do novo eixo dos zz. Esta variante tambm se designa
ngulos de Euler tipo Z-YN-ZN, onde o ndice N lembra que se trata de transformaes no novo sistema de
coordenadas.
Sistemas de Coordenadas
3-26
Rot(z, )
z = z'
y'''
z''= z'''
Rot(z'', )
x'''
Rot(y', )
y'
y
x''
x
x'
C C C S S C C S S C C S
S C C + C S S C S + C C S S
EulerII ( , , ) =
S C
S S
C
0
0
0
Sistemas de Coordenadas
3-27
Captulo 4
Cinemtica Directa de
Manipuladores
y1
L2
x1
z1
y2
x2
z2
z0
y0
L1
Elo
+/2
L1
L2
x0
R
TH =
C 1
S1
T2 =
0
S1
0 C 1
1
0 C 2 S2
0 S2 C 2
0
L1 0
0
1 0
L2C 1C 2
0 L2C 2
C 1C 2 C 1S2 S1
L2S1C 2
0 L2S 2
S1C 2 S1S2 C 1
=
1
0
C2
0
L2S2 + L1
S2
0
1
0
0
1
Cinemtica de um manipulador
4.1.1 Definio
A cinemtica de um manipulador o estudo do conjunto de relaes entre as posies, velocidades e
aceleraes dos seus elos.
O estudo que aqui se inicia diz respeito apenas aos manipuladores srie, que alis a categoria que
inclui a grande maioria de manipuladores industriais e didcticos. Os manipuladores srie caracterizam-se
pelo facto de todas as juntas ligarem dois e apenas dois elos consecutivos.
A relao entre o referencial de origem e o referencial da extremidade (mo) do manipulador dada
RT H
intermdios. Desse modo, para fazer um estudo da cinemtica, e outros, necessrio, antes de mais, definir
sistemas de coordenadas associados a cada elo, ou seja, atribuir-lhe referenciais. Por outro lado, a relao
geomtrica entre elos traduzvel por uma matriz de transformao: para ir de um extremo de um elo (junta
ou base do robot) at ao outro extremo do elo (a junta seguinte ou a extremidade do robot) far-se-o
translaes e rotaes. Em suma, um dado elo i ter associado a si a matriz de transformao Ai, onde a
primeira matriz, A1, relaciona o primeiro elo com a base fixa, e a ltima matriz, An, relaciona o referencial
da mo com o ltimo elo. ento claro que RTH = A1A2...An. A Figura 4.1 esquematiza as transformaes
associados a um manipulador de 3 elos.
A3
A2
TH
H
H
R
A1
A1
A3
J1
A2
RT H
J2
= A 1 A 2 A3
4-2
do espao das juntas para o espao cartesiano no apresentam qualquer ambiguidade, mas o contrrio pode
no ser verdade. De facto, o espao das juntas muitas vezes redundante, isto , nem sempre possvel
estabelecer uma relao unvoca com o espao cartesiano, significando que vrias configuraes no espao
das juntas resultam na mesma configurao no espao operacional
Espao das juntas
Cinemtica
directa
Espao das
juntas
Espao operacional
Espao
cartesiano
Cinemtica
inversa
r = Fdirecta ( q ) .
Os passos ou algoritmo para definir tal relao so, essencialmente, os seguintes:
4.2
Descrever as relaes (translaes e rotaes) entre as variveis das juntas e dos elos
as consequncias que ter no elo seguinte da cadeia. No intuito de obter uma forma coerente e prtica de
determinao desses sistemas de coordenadas, necessrio definir conceitos tais como o eixo de uma junta
ou os parmetros cinemticos dos elos e juntas associadas.
4-3
( xi , zi )
yi
xi
4-4
i 1
i = ( x i 1 , x i )
zi 1
Definio formal: i = z i 1 , z i
)x
yn
Junta n+1
yn-1
xn
xn-1
n+1
zn
ln 0
dn = 0
n = varivel
n = 0
ln
Junta n
n
zn-1
Figura 4.5 Exemplo 1 de elo juntas rotacionais paralelas
4-5
yn
Junta n+1
yn-1
xn
dn
ln 0
dn 0
n = varivel
n = 0
n+1
xn-1
zn
Junta n
ln
n
zn-1
zn
n+1
xn
ln 0
dn = 0
n = varivel
n 0 (90)
yn
Junta n+1
yn-1
xn-1
Junta n
zn-1
ln
n
Figura 4.7 - Exemplo 3 de elo: juntas rotacionais ortogonais
n+1
dn
zn
xn
yn
ln
Junta n+1
yn-1
xn-1
ln 0
dn 0
n = varivel
n 0 (90)
n
zn-1
Junta n
4-6
xn
yn
n
dn
zn
xn-1
Junta n+1
ln = 0
dn 0
n = varivel
n 0 (+90)
zn-1
n
yn-1
Junta n
zn
dn
yn
Junta n+1
ln = 0
dn 0 (varivel)
n 0 (+90)
n 0 (+90)
xn
xn-1
zn-1
yn-1
Junta n
dn
zn
n
zn-1
yn
ln
Junta n
yn-1
xn-1
Junta (n+1)
ln 0
dn = varivel
n= 0
n 0 (+90)
xn
4-7
zn
ln
yn
Parmetros aparentes:
ln 0
dn = varivel
n = 0
n 0 (+90)
xn
Junta (n+1)
dn
zn-1
Junta n
xn-1
yn-1
Figura 4.12 Exemplo 8 de elo. Geometria mais elaborada com juntas prismticas ortogonais
ln
zn
dn
Parmetros aparentes:
yn
n0 = +90
ln 0
dn 0
n= 90 + varivel
n 0 (+90)
xn-1
xn
n
ln
zn-1
Junta n
yn-1
Junta (n+1)
Figura 4.13 - Exemplo 9 de elo. Geometria mais elaborada com juntas rotacionais ortogonais
4-8
Smbolo
Junta
rotacional
Junta
prismtica
ngulo de junta
varivel
fixo
Deslocamento de junta
di
fixo
varivel
li (ai)
fixo
fixo
li = ( z i 1 x i ) , Oi
fixo
fixo
i = ( zi 1 , z i )
Parmetro
Comprimento do elo
ngulo de toro do elo
Definio formal
i = ( x i 1 , x i )
zi 1
di = Oi 1 , ( z i 1 x i ) zi 1
xi
xi
Para efeitos de uma abordagem genrica, diz-se que o vector variveis de junta designado por q e
dado pela seguinte expresso:
i rotacional
T
qn , qi =
d prismtica
q = q1 q2
Repare-se que estas transformaes elementares surgem concatenadas em sequncia, e por esta
ordem, se bem que as translaes possam comutar entre si, o que significa globalmente obter-se uma
transformao final por ps-multiplicao sucessiva, resultando na matriz i-1Ai ou mais simplesmente, Ai:
S
i
Ai =
0
S i
C i
0
0
0 0 1
0 0 0
0 0 0
0 1 0
S
i
Ai =
0
0
0 0 li 1
1 0 0 0 C i
0 1 di 0 S i
0 0 1 0
0
S iC i
S i S i
C iC i
C i S i
S i
C i
0
S i
C i
0
liC i
li S i
di
(4.1)
Os elos de um manipulador so numerados a partir da base e o primeiro elo (mvel) o elo nmero 1
que se segue primeira junta, ou junta nmero 1. A base fixa designada o elo 0. Sistema de coordenadas 0
(zero) ser aquele a partir do qual se faz toda a transformao geomtrica do manipulador. H
frequentemente mais do que uma possibilidade de o fazer, conforme o interesse do problema. A Figura 4.14
ilustra duas possibilidades alternativas (a segunda a tracejado) para definir o sistema de coordenadas inicial
(zero) de um manipulador do tipo PUMA com 6 graus de liberdade: 6 juntas, 6 elos (mveis mais uma base
ou elo 0). Deve referir-se que haveria ainda vrias outras possibilidades de escolher os sistemas de eixos.
4-9
z0
y0
x0
Figura 4.14 - Elos e juntas de um manipulador do tipo PUMA. Assinala-se a tracejado uma alternativa para o sistema
de referncia.
4.3
y0
1
z0
y1
y2
x0
x1
z1
l1
z2
x2
Elo
l1
l2
l2
O manipulador planar a 2 graus de liberdade (degrees of freedom - DOF) o mais simples dos
manipuladores interessantes, e a atribuio de sistemas de coordenadas relativamente bvia; bastar
atender ao eixo das duas juntas, e o resto sai naturalmente. Outras configuraes seriam possveis mas sem
vantagens adicionais. Podemos agora determinar as suas expresses de cinemtica directa usando a relao
(4.1) e fazendo as simplificaes de escrita C1 = C1 e S1 = S1:
4-10
C 1 S1C ( 0 ) S1S ( 0 ) l1 C 1
C 1 S1
S
S
( ) C 1S ( 0 ) l1 S1
1 C 1C 0
1 C1
A1 =
=
0
S (0)
C (0)
0
0
0
0
0
0
0
0
1
S2
0 l1C 1
C 2
S
0 l1S1
2
, A2 =
1 0
0
0
0 1
C2
0
0
0 l2C 2
0 l2S2
1
0
0
1
C 1 S1
S
1 C1
0
T2 =R TH =
0
0
0
0
C 1C 2 S1S 2
S1C 2 + C 1S 2
R
TH =
0
0 l1C 1 C 2 S 2
0 l1S1 S2 C 2
1 0 0
0
0 1 0
0
C 1S 2 S1C 2
S1S 2 + C 1C 2
0
0
0 l2C 2
0 l2S2
1
0
0
1
1
0
0
1
C 12
S
12
R
TH =
0
S12
C 12
0
0
0 l2C 12 + l1C 1
0 l2S12 + l1S1
1
0
0
1
(4.2)
Analisando esta matriz podemos desde logo individuar as coordenadas (x,y,z) do end-effector do
manipulador. Dada a simplicidade do manipulador, era possvel obter estas mesmas coordenadas por anlise
geomtrica directa como se demonstra na Figura 4.16. Porm, a matriz de transformao alm de ser
genrica, possui mais informao. Por exemplo, dela se extrai tambm que a orientao do sistema de
coordenadas da mo (xH,yH) aponta nas novas direces dadas pelos vectores [C12
S12]T e [S12
C12]T,
respectivamente. Mais uma vez claro que estas orientaes tambm se deduziriam pela anlise geomtrica,
mas no de forma to directa.
y
2
1
L cos 1
L cos (1+2)
4-11
y1
2
z1
L2
x1
y2
x2
z2
z0
y0
L1
Elo
1
2
1
2
+90
0
0
L2
L1
0
x0
Figura 4.17 - Sistemas de coordenadas e parmetros cinemticos de um robot de 2 DOF no espao a 3D
O manipulador 2 DOF no espao 3D, embora simples, j exigiu mais alguma ateno na atribuio
dos sistemas de coordenadas. Vejamos, por exemplo, o caso do referencial da base. Se x0 no tivesse a
direco indicada e apontasse ao invs na direco simtrica de y0 (indicado), e dada a direco apresentada
por x1, o ngulo de junta 1 (que se mede de x0 para x1 em torno de z0) teria de ter um termo constante que
seria neste caso +90, ou seja (1+90)! S assim se garantiria uma expresso correcta do referencial da mo
em relao ao referencial de origem (x0, y0, z0). Repare-se tambm que neste manipulador j h distncia
entre elos, d1 = L1.
As expresses para obter a cinemtica directa so as seguintes:
C 1 S1C ( 90 ) S1S ( 90 ) 0 C 1
C 1
S
1 C 1C ( 90 ) C 1S ( 90 ) 0 S1
1
A1 =
=
(
)
(
)
0
S
90
C
90
L
0
1
0
0
0
0
1
S2
C2
0
0
0 L2C 2
C 1C 2
S C
0 L2S2
1 2
=
1
0
S2
0
1
L1
0 C 1
1
C 2 S2C ( 0 ) S2S ( 0 ) L2 C 2
C 2 S 2
S
( 0 ) C 2S ( 0 ) L2 S 2
C
C
2
2
2 C2
=
A2 =
0
S (0)
C (0)
0
0
0
0
0
0
1
0
0 C 2
C 1 0 S1
S 0 C
0 S2
1
1
R
TH =
0
L1 0
0 1
0 0
0
1 0
S1
0 L2C 2
0 L2S 2
1
0
0
1
C 1S2
S1
S1S2
C 1
C2
L2C 1C 2
L2S1C 2
L2S2 + L1
(4.3)
Como esperado, os resultados so um pouco mais complexos, mas mesmo assim verificveis por uma
anlise geomtrica. Por exemplo, observa-se que a coordenada z dada pela soma L2S2+L1. Se 2 for maior
que zero e menor que 90, ou seja, quando a junta 2 levanta o elo que lhe sucede, v-se que coordenada z
da posio de repouso L1 (como indicado na Figura 4.17), adicionado um termo proporcional ao
comprimento do segundo elo afectado do seno do ngulo da sua orientao. Outras observaes similares se
poderiam fazer.
4-12
1
2.1
2.2
2.3
2.4
2.5
4.1
Estabelecer o sistema de coordenadas (x0, y0, z0) na base de suporte, com z0 ao longo do eixo
da junta 1. Convencionar x0 e y0 de forma conveniente.
For i=1 to n-1
Definir eixo junta i e alinhar zi com eixo da junta i+1
Definir Oi (origem do sistema de coordenadas) de um dos seguintes modos:
Interseco de zi com zi-1
Interseco da normal comum entre zi e zi-1 com zI
Definir xi = (zi-1 zi), ou ao longo da normal comum a zi-1 e zi quando so paralelos
Definir yi = zi xI
Next i
Estabelecer o sistema de coordenadas da mo On (o ltimo). Normalmente, a junta n
rotacional:
zn colinear com zn-1 e a apontar para fora
xn normal a zn e zn-1
yn de acordo com o sistema directo usual
Determinar parmetros de elos e juntas
For i = 1 to n
li = ( zi 1 x i ) ,Oi
4.2
4
i = ( x i 1 , x i )
4.3
zi 1
i = ( z i 1 , z i )
4.4
xi
xi
Next i
Tabela 4.2 - Algoritmo de Denavit-Hartenberg para um manipulador com n juntas
O sistema de eixos (x0, y0, z0) poderia ter sido colocado na base. Isso alteraria apenas um dos
parmetros cinemticos do primeiro elo (translao em z)
Os eixos x0 e y0 poderiam estar rodados +90 em torno de z0. Essa tambm uma variante comum.
Os eixos z1, z2 e z4 poderiam apontar no sentido oposto, que teria como consequncia sentidos
4-13
opostos para y1, y2 e y4. A principal diferena das duas alternativas seria o sentido de rotao
positiva para os ngulos de junta para o observador, mas de resto no haveria alteraes que
afectassem a resoluo do sistema.
O manipulador no est representado na sua posio zero! Para isso os elos deveriam estar
orientados de tal forma que todos os eixos xi fossem paralelos. No estando na posio zero deverse- ter algum cuidado na determinao dos diversos ngulos de junta j que alguns tero termos
constantes adicionais de +90, mormente 1 e 3.
Junta i
1
2
3
4
5
6
i
90
0
90
0
0
0
i
-90
0
90
90
-90
0
Figura 4.18 - Exemplo de sistemas de coordenadas para um PUMA de 6 DOF e indicao de e na configurao
ilustrada
4.4
4-14
LB
LC
LD
LA
y3
y2
y1
2
x1
z1
z2
x2
x3
3
4
z3
y5
y0
1
2
3
4
5
1
2
3
4+90
5
+90
0
0
+90
0
0
LB
LC
0
0
LA
0
0
0
LD
x5
z0
1
Elo
z5
x4
5
z4
y4
x0
As origens O3 e O4 coincidem, pois que O4 dado pela interseco de z4 com z3. Note-se tambm que o
robot no est na posio zero e, por isso, a junta 4 tem na definio da sua varivel o termo correctivo de
+90, ou seja, nesta posio inicial, na qual os ngulos de junta assumem o valor zero, o eixo x4 j est
"adiantado" 90 em relao a x3.
Na sequncia do algoritmo da cinemtica directa basta obter as matrizes de transformao associadas
a cada elo, usando a expresso (4.1), e ps-multiplic-las em sequncia. Para a primeira matriz vem:
C 1 S1C ( 90 ) S1S ( 90 ) 0 C 1
C 1
S
1 C 1C ( 90 ) C 1S ( 90 ) 0 S1
1
A1 =
=
(
)
(
)
0
S
90
C
90
L
0
A
0
0
0
0
1
S1
0 C 1
1
LA
C 2 S2
S
2 C2
A2 =
0
0
0
0
C ( 4 + 90 )
S ( 4 + 90 )
A4 =
0 LB C 2
C 3 S 3
S
0 LB S2
3 C3
, A3 =
1
0
0
0
0
0
1
0
S ( 4 + 90 )
0
S 4
C
0 C ( 4 + 90 ) 0
4
=
1
0
0
0
0
0
0
1
0 C4
0 S4
1
0 LC C 3
0 LC S 3
,
1
0
0
1
0
C 5
0
5
, A5 =
0
0
0
1
S 5
C5
0
0
0 0
1 LD
0 1
4-15
C 1
S
1
R
TH =
0
S1
0 C 1
1
LA
C 2 S 2
S
2 C2
0
0
0
0
0 LB C 2
0 LB S2
1
0
0
1
C 3
S
3
S 3
C3
0
0
0 LC C 3
0 LC S 3
1
0
0
1
S 4
C
4
0 C4
0 S4
1
C 5
S
5
S 5
1 LD
0 1
C5
0
0
S1C 2C 3 S1S 2S 3
R
TH =
S C +C S
2 3
2 3
C 1C 2S 3 C 1S2C 3
S1
S1C 2S 3 S1S2C 3
C 1
S2S 3 + C 2C 3
LC (C 1C 2C 3 C 1S2S 3 ) + LBC 1C 2 S 4C 5 S 4S 5 C 4
C5
0
LC ( S2C 3 + C 2S 3 ) + LB S2 + LA S 5
0
0
0
1
LDC 4
LDC 4
1
R
TH =
S5
2
2S23
2C 23
0
2 ( LC S23 + LB S2 + LA )
0
0
0
0
2
S 4S 5
C4
C 4S 5
S4
C5
LDC 4
LDC 4 (4.4)
Recorde-se que C1-2-3 = cos(123) e C123 = cos(1+2+3), etc. O resultado final, por extenso, tem
uma representao com uma dimenso grfica muito grande e praticamente sem interesse neste momento.
O recurso a meios numrico-computacionais , por isso, recomendado para a obteno de valores concretos.
Para efeitos de verificao admitamos, por exemplo, que todas as juntas tem valor 0, ou seja, a
representao ilustrada na Figura 4.19. Assim, por substituio directa na expresso anterior teramos:
R
TH =
0
LC + LB 0
1
0 1
0
1 0
0
0
0
0 0
1
0 1 LD
0 0
0 1
0 0 LD
=
1 0 0
1 0
0 0
0 0 1
1 LB + LC + LD
0
0
0
LA
0
1
Desta expresso sai que a origem do sistema de coordenadas da mo est em (LB+LC+LD, 0, LA), que
x4 aponta na direco de z0, y4 aponta na direco simtrica de y0, e z4 aponta na direco de x0, o que se
confirma observando a Figura 4.19.
4-16
LB
J1
J2
J4
+180
0
0
0
Elo
1
2
3
4
LC
1
2
0
4
LB
LA
LA
J3
z0
y0
z1
x0
x2
2 y2
z0
z2
x
z3 3
4
z4 x4
y3
y0
LD
d
LA
0
d3
LD
x1 LC
y1
l
LB
LC
0
0
x0
y4
d3
L3
Note-se que na representao o manipulador no est na posio zero. Em especial notrio a junta
prismtica que, para melhor visualizao, est estendida apresentando, por isso, um valor de junta no nulo.
A metodologia seguida similar do manipulador anterior e, assim, a determinao das matrizes de
transformao tambm muito sistemtica. Vir portanto:
0 LBC 1
C 1 S1C ( 180 ) S1S ( 180 ) LBC 1
C 1 S1
(
)
(
)
C
C
180
C
S
180
L
S
S
C
0
L
S
1
1
1
1
1
1
1
B
B
A1 =
=
1 LA
S ( 180 )
C ( 180 )
LA
0
0
0
0
0
0
0
1
0
0
1
C 2 S2
S
2 C2
A2 =
0
0
0
0
0 LC C 2
1
0
0 LC S2
, A3 =
1
0
0
0
0
1
0
C 4
1 0 0
4
, A4 =
0 1 d3
0
0 0 1
0 0
S 4
C4
0
0
0 0
1 LD
0 1
A matriz final, resultante dos quatro produtos, aps simplificaes de ndole trigonomtrica, dada
pela expresso seguinte, onde se convenciona ainda que C1-2 = cos(1-2), C1-2-4 = cos(1-2-4), etc.:
C 124
S
12 4
R
TH =
0
S124
C 12 4
0
0
LBC 1 + LC C 12
0 LB S1 + LC S12
1 LA d3 LD
0
1
(4.5)
Mais uma vez se pode confirmar a sua validade para o caso das juntas terem todas o valor 0 e, neste
caso, at mesmo para outros valores, dada a relativa simplicidade do manipulador quando comparado com o
Microbot Alpha II, apresentado anteriormente. Assim, pelo menos no que respeita a componente de
translao cartesiana (x, y, z), pode-se constatar a veracidade da expresso anterior observando a Figura
4.21 onde se ilustra esquematicamente uma vista de cima do manipulador; note-se porm que desta figura
no se podem tirar concluses relativamente coordenada z.
4-17
y0
2
LB
1
LC
x = LBC 1 + LC C 12
y4
y = LB S1 + LC S12
x4
x0
4.5
ponto, que determinar os ngulos de orientao final do sistema de coordenadas na mo, ou, se se preferir,
os ngulos de Euler. Como visto num captulo anterior, existem diversos tipos de ngulos de Euler sendo
dois deles mais comuns, dos quais se escolhe o caso RPY para ilustrar esta parte final do algoritmo. Note-se
todavia que o procedimento seria estritamente o mesmo para qualquer outro tipo de ngulos de orientao
(Euler) porque nos baseamos afinal na matriz de transformao associada. O problema que est aqui em
causa o de determinar os ngulos de Euler a partir dos elementos da matriz de transformao do
manipulador.
transformao transformao
= Trans ( px , py , pz ) RPY ( , , ) =
TH =
de translao de orientao
(4.6)
C C S C + C S S S S + C S C px
S C C C + S S S C S + S S C py
0
0
0
1
TH = A1A2 ...AN
nx
ny
= n
z
sx
sy
sz
ax
ay
az
px
py
n s a p
=
pz
0 0 0 1
4-18
Figura 4.22. O vector a designado por vector aproximao da mo, e tem uma direco que normal
palma da mo; o vector s designado vector escorregamento ou deslizamento da mo (sliding) e tem a
direco do movimento dos dedos; o vector n , finalmente, completa o sistema directo de coordenadas, e
designado por vector normal aos dedos da mo.
Assim, por simples comparao das expresses indicadas anteriormente, pode-se escrever, por
exemplo, o seguinte:
= arcsin ( nz )
nz = sin
=
n
sin
cos
= arcsin ( ny / cos )
y
(4.7)
Ficam assim determinados os ngulos de Euler com base na matriz de transformao do manipulador
como se pretendia. Adiante-se desde j que esta no uma boa soluo do ponto de vista numrico, como se
explica na prxima seco.
nz = sin
sz = cos sin e
a = cos cos
nx = cos cos
ny
sz
= tan
= arcsin ( nz ) ,
= tan ,
ny = sin cos
nx
az
A funo tangente inversa (arco-tangente) afigura-se menos sensvel s imprecises dos termos da
matriz de transformao do manipulador, quer porque eventuais erros sistemticos nos termos se atenuam
na diviso (sz/az, etc.), quer porque o domnio da funo arco-tangente infinito e portanto sem risco de
indefinio.
Porm, a obteno dos ngulos com recuso funo arco-tangente apresenta um outro problema
ligado determinao do quadrante do ngulo em causa. Por exemplo, se az = sz = -1 ento o quociente sz/az
resultaria igual a 1 e portanto = 45. Ora, ao ponto (-1,-1) corresponde um raio-vector com o ngulo de
135. Este erro de 180 representa o prprio perodo da funo tangente e tem de ser levado em conta no
clculo. Assim, uma aplicao cega da funo arco-tangente poder ser incorrecta; por isso que se deve
atender ao quadrante do ponto antes de calcular a arco-tangente. Muitas aplicaes de software
numrico recorrem funo arco-tangente com dois argumentos em vez de um s; existe a vantagem
adicional de poder lidar de antemo com quocientes onde o divisor seria 0. Nomes como atan(y,x) ou
atan2(y,x) so muito comuns para esta funo. A Tabela 4.3 define a funo atan2(x,y), tal como
Cinemtica Directa de Manipuladores
4-19
Condio
Definio
y
arctan
x
sign ( y )
2
y
arctan + sign ( y )
x
x>0
x=0y0
x<0
x=0y=0
Quadrantes
1 e 4
Eixo das ordenadas
2 e 3
frmula:
R
C S
S C
Rot 1 ( z, ) =
0
0
0
0
Trans 1 ( px , py , pz ) =
0
0 0 1
C S 0 0
S C 0 0
0 0
1 0
0 1 0
0
0
0 1
0 0 1
0 0 px 1
1 0
0 1
1 0 py
=
0 1 pz
0 0
0 0
0 0 0
0 px
0 py
1 pz
0
0
C S 0 px
S C 0 py
0 1 pz
0
0
0 0
1
nx
ny
nz
sx
ax
sy
sz
ay
az
px C
py 0
pz = S
1 0
0 S
0
0 1 0
1 0 0 0 C S
0 C 0 0 S C
0 0 1 0 0
0
e finalmente:
n x C + n y S s xC + s y S a x C + a y S
nz
sz
az
0
0
0
0
C S S S C 0
0
C
S
=
0
S C S C C 0
1
0
0
1
(4.8)
Podemos agora repetir o processo j levado a cabo anteriormente (comparar as matrizes termo a
termo) e extrair mais alguns resultados. Assim, poderemos obter sucessivamente os ngulos , e :
4-20
para :
para :
para :
nyC nx S = 0 = arctan
ny
nx
n xC + n y S = C
nz
= arctan
n
C
n
S
=
+ ny S
z
x
sz = C S
= arctan z
a
a
C
C
=
z
z
Note-se porm que h outras expresses que poderiam ser usadas. O que ficou assim garantido foi o
recurso exclusivo da funo arco-tangente em detrimento de arco-seno ou arco-co-seno. Nas expresses
acima, onde se l arctan, assume-se atan2, na definio dada.
C 1C 2
S C
1 2
R
TH =
S2
C 1S2
S1S 2
S1
C 1
C2
L2C 1C 2 nx
L2S1C 2 ny
=
L2S2 + L1 nz
0
1
sx
ax
sy
ay
sz
az
px
py
pz
y1
2
z1
L2
x1
y2
x2
z2
z0
y0
L1
x0
Assim, para esse manipulador, determinem-se os seus ngulos de Euler, isto , a sua orientao no
espao cartesiano relativamente ao referencial da base. Aplicando os resultados da seco anterior
poderemos obter, por simples substituio, o seguinte:
= arctan
ny
SC
= arctan 1 2 = arctan ( tan 1 ) = 1
nx
C 1C 2
S 2
S 2
nz
= arctan
= arctan
= 2
nxC + ny S
C 1C 2C 1 + S1C 2S1
C2 1
s
= arctan z = arctan (C 2 , 0 ) =
(ou -/2 se || > /2)
2
az
= arctan
4-21
Captulo 5
Cinemtica Inversa de
Manipuladores
z3 y4 x5
PW
LD = d6
5
y3 x4 z5
x3 z4 y5
z6
LC
n
s
LB
2
z1
z2
LA
3
1
z0
PW = P d6 a
y0
x0
n s
0 0
a
0
0 1
( A1A2 A3 ) R 3
n s a p
0 0 0 1
1
p
P
2
W
( A1A2A3 )
LD
1
3 R 6 = n 3
0 1 0
R3 R6
s3
a 3
( A 4 A5 A6 )
Equation Section 5
4
5
6
5. Cinemtica Inversa
5.1
O Problema
Enquanto a cinemtica directa resulta do desenvolvimento imediato das expresses do manipulador,
a cinemtica inversa procura determinar o conjunto de valores das juntas que se adequam a uma dada
configurao do espao operacional ou cartesiano. A cinemtica inversa pode ser vista conceptualmente como
o conjunto de processos para determinar as funes inversas do sistema das expresses da cinemtica
directa. Ou simbolicamente: r = F (q ) , q = F
(rG ) ,
Cinemtica
directa
Espao das
juntas (q)
Espao
cartesiano (r)
Cinemtica
inversa
A cinemtica inversa nem sempre um problema com soluo analtica, ou por vezes no tem mesmo
soluo! Mais complexo ainda o facto de no haver uma metodologia nica de aplicao directa. No ser
esse um problema grave porque as solues de interesse prtico esto j todas bem estudadas e s em casos
especiais ser necessrio conceber novas solues.
(x,y)
L2
L1
1
Partindo das equaes da cinemtica directa, que so de fcil formulao, e que foram anteriormente
deduzidas, o processo o seguinte:
Cinemtica Inversa
5-2
x = L1 cos 1 + L2 cos ( 1 + 2 )
y = L sin + L sin ( + )
1
1
2
1
2
(5.1)
x + y 2 = L21 + L21 + 2L1L2 [ cos 1 ( cos 1 cos 2 sin 1 sin 2 ) + sin 1 ( sin 1 cos 2 + sin 2 cos 1 ) ]
2
x 2 + y 2 = L21 + L21 + 2L1L2 ( cos2 1 cos 2 cos 1 sin 1 sin 2 + sin2 1 cos 2 + sin 1 sin 2 cos 1 )
x 2 + y 2 = L21 + L21 + 2L1L2 cos 2
2 = arccos
x 2 + y 2 L21 L21
2L1L2
(5.2)
Pode verificar-se desde j a existncia matemtica de duas solues para 2. reforada pelo sinal na
expresso (5.2).
A obteno de 1 no to imediata e uma soluo possvel passa pelo recurso tangente
trigonomtrica de uma diferena angular, como se pode observar de seguida:
(x,y)
2
tan ( A B ) =
tan A tan B
1 + tan A tan B
L2
tan =
L2 sin 2
L1 + L2 cos 2
tan =
y
x
L1
L2 sin 2
y
1 = arctan
x ( L1 + L2 cos 2 ) + yL2 sin 2
(5.3)
Cinemtica Inversa
5-3
igualada matriz de transformao geral que indica a postura no espao operacional com posio e
orientaes.
y2
C 1C 2
S C
1 2
R
TH =
S2
x2
z2
z0
y0
C 1S 2
S1
S1S 2
C 1
C2
L2C 1C 2
nx
L2S1C 2
ny
= nz
L2S 2 + L1
0
1
sx
sy
sy
ax
ay
ay
px
py
pz
x0
Figura 5.4 - O manipulador RR no espao 3D
L2C 1C 2 = px
py
py
tan 1 =
1 = arctan
L2S1C 2 = py
px
px
(5.4)
2 = arcsin
pz L1
L2
(5.5)
A expresso (5.5) pode todavia apresentar limitaes de preciso numrica quando o valor de pz-L1 for
muito prximo de L2 ou mesmo se tiver erros sistemticos na sua avaliao, isto , no se est a usar uma
funo de arco-tangente com os seus benefcios numricos como descrito anteriormente noutro captulo. Mais
tarde apresenta-se outra soluo para este manipulador em que esse problema se resolve.
Em qualquer dos mtodos h porm vrias condies e situaes para a existncia de solues, e das
quais se destacam as seguintes:
Para haver soluo analtica (num caso de 6 eixos) suficiente que 3 eixos de juntas sucessivas se
intersectem ou sejam paralelos (Soluo de Pieper)
Cinemtica Inversa
5-4
junta, e se for N o nmero de redundncias ento o nmero de solues dado por 2N. Se o nmero de
solues for maior que o nmero de juntas ento a resoluo da cinemtica inversa do manipulador pode
trazer dificuldades adicionais, como a impossibilidade de obter uma soluo. No exemplo anterior do
manipulador RR planar as solues matemticas so de fcil interpretao graficamente, como ilustra a
Figura 5.5.
'2
(x,y)
2
'1
1
Figura 5.5 - Redundncia no robot RR planar
Cotovelo em cima
ombro esquerda
Cotovelo em cima
ombro direita
Cotovelo em baixo
ombro esquerda
Cotovelo em baixo
ombro direita
Quando o manipulador tem um nmero infinito de configuraes para uma dada posio da mo dizse que se atingiu uma situao de degenerao. Casos mais comuns so o do manipulador RR planar de elos
iguais para a mo no ponto (0,0), ou ainda numa situao em que o punho do robot fique com dois eixos
colineares e alinhados (Figura 5.7).
Figura 5.7 - Ilustrao de duas situaes de degenerao: h um nmero infinito de combinaes de (1,2) ou (4,6),
respectivamente, para o end-effector nas configuraes indicadas.
Cinemtica Inversa
5-5
5.2
usualmente o de seguir um conjunto de regras de forma a obter uma dada heurstica (descoberta) em que
os pontos principais so os seguintes:
1-
2-
3-
4-
Procurar elementos
a) que envolvam uma s varivel
b)pares de elementos divisveis que resultem numa expresso a uma varivel
(que possa usar a funo atan2() de preferncia)
c) elementos ou combinaes de elementos simplificveis trigonometricamente
Solues
imprecisas
Sim
No
Fim
Sim
Pr-multiplicar a equao matricial pela inversa de A1
ou
Ps-multiplicar a equao matricial pela inversa de An
e repetir esse processo para as restantes Ai at se esgotarem
Fim
No
Falta soluo
para alguma das variveis de
junta ?
sim
Recorrer s solues
imprecisas rejeitadas
anteriormente...
Cinemtica Inversa
5-6
Nem sempre os passos apresentados so suficientes ou mesmo os ideais para obter as expresses para
todas as variveis de junta.
expresses como o recurso pr-multiplicao pela inversa de uma componente do produto A1A2...AN. Na
Figura 5.8 apresenta-se um algoritmo com os passos para um procedimento mais completo visando a
obteno das expresses para todas as variveis de junta de um manipulador.
5.3
algoritmo genrico delineado na Figura 5.8, o de recorrer s transformaes inversas com o objectivo de
obter expresses mais facilmente solveis. Ou seja, partindo da expresso matricial da cinemtica do
manipulador R TH = A1 A2 ...An , que leva ao conjunto de equaes da cinemtica nas variveis e
parmetros de juntas, elos e espao operacional, reorganiz-la com a expectativa de obter expresses
individuais
R
mais
interessantes.
Isto
equivale
dizer
que
uma
primeira
reorganizao
seria
1
TH An1 A
n 1 = A1 A2 ...An 2 , e assim por diante
C 1
S
1
0
T2 = A1 A2 =
0
S1
S2
0 C 2
0 S2
L1 0
1 0
0 L2C 2
C 1C 2
S C
0 L2S2
1 2
=
1
0
S2
0
0
1
C 1S 2
L2C 1C 2
0 C 1
L2S1C 2
S1S2 C 1
C2
0
C2
L2S2 + L1
1
0
0
0
0
0
0
0
1
1 0
Neste caso, vai-se recorrer pr-multiplicao, ou seja, obter-se-: A1 T2 = A2 , ou, de forma
0
S1
A11
C 1
S
1
0 T2 = A2
0
0 1
L1
S1
0 C 1
1
C 1 S 1 0 0 n x
0
ny
0
1
L
nz
S1 C 1 0 0
0
0 1 0
0
sx
ax
sy
ay
sz
az
nz
sz
az
nx S1 nyC 1 sx S1 sy S1 ax S1 ayC 1
0
0
0
C 2
S
n s a p
= 2
0 0 0 1
0
C 2 S 2
px
S2 C 2
py
=
pz
0
0
S 2
C2
0
0
0 L2C 2
0 L2S2
1
0
0
1
(5.6)
0 L2C 2
0 L2S 2
1
0
0
1
(5.7)
0 L2C 2
0 L2S 2
1
0
0
1
pxC 1 + py S1
C 2 S 2
S2 C 2
pz L1
=
0
px S1 pyC 1
0
0
1
0
Tentando recorrer apenas a termos de posio (pelas vantagens j referidas), vir o seguinte par de
expresses.
pxC 1 + py S1 = L2C 2
pz L1 = L2S 2
(5.8)
do qual se obtm imediatamente a expresso para 2 admitindo que j se tinha obtido 1, por exemplo,
Cinemtica Inversa
5-7
usando (5.4):
2 = arctan
pz L1
pxC 1 + py S1
(5.9)
A vantagem imediata da expresso (5.9) em relao expresso (5.5) que se usa uma funo arcotangente; reala-se portanto que esta tcnica das matrizes inversas pode oferecer a possibilidade de solues
alternativas, e por vezes at as nicas possveis.
5.4
com relativa frequncia na determinao de cinemtica inversa, e que se traduz genericamente da seguinte
forma:
k1 cos + k2 sin = k3
(5.10)
por isso importante que se derive uma soluo genrica expedita, o que se faz de seguida. Seja
k = tan ;
2
sabendo
que
sin2
1 cos
=
2
2
que
cos2
1 + cos
=
2
2
e,
portanto,
que
1 k2
1 cos
, bastando usar mera substituio para o
=
= k 2 , imediato provar que cos =
2
1 + cos
1 + k2
1 cos
1
1 + cos 1 + cos
2 cos
1 + cos
=
=
= cos .
verificar:
1 cos
1 + cos + 1 cos
2
1+
1 + cos
tan2
2k
, mais uma vez recorrendo a simples substituio:
1 + k2
1 cos
1 cos
2
2 ( 1 + cos )
1
+
cos
1
+ cos = ( 1 + cos ) 1 cos =
2
=
=
1 cos
1 cos
1 + cos + 1 cos
1 + cos
1+
1+
1 + cos
1 + cos
2 tan
( 1 + cos )2 ( 1 cos )
1 + cos
1 cos2 = sin
Assim, aps a substituio destes termos em k na expresso original (5.10) vir sucessivamente:
k1 ( 1 k 2 ) + 2k2k = k3 ( 1 + k 2 )
( k1 + k3 ) k 2 2k2k + ( k3 k1 ) = 0
k =
k k2 + k2 k2
1
2
3
= 2 arctan 2
k1 + k3
5.5
(5.11)
cinemticas, e obedecendo a umas regras tais que relativamente expedito obter a soluo da sua
cinemtica inversa. De seguida apresentam-se algumas solues para manipuladores mais simples que
podem ser combinadas, ou usadas na determinao de solues de manipuladores mais complexos com 6
Cinemtica Inversa
5-8
graus de liberdade, por exemplo. Alm das apresentadas, outras solues mais especiais podem ser
encontradas na literatura indicada na bibliografia.
= 1 + 2 + 3
(5.12)
(x,y)
2
L1
L3
L2
PW
A resoluo da cinemtica inversa deste robot assenta na do robot planar RR uma vez que o ponto PW
(Figura 5.9) um ponto conhecido porque se sabe, obviamente, a posio e a orientao do end-effector bem
como o comprimento de elo L3:
PWx = x L3C
PWy = y L3S
(5.13)
Mas, tendo em conta as expresses geomtricas (5.1) j determinadas para o manipulador planar RR,
pode tambm escrever-se o seguinte:
(5.14)
Wy
(5.15)
ou, desenvolvendo,
2 = arccos
2
2
PWx
+ PWy
L21 L22
2L1L2
(5.16)
(5.17)
Em (5.17) mais uma vez se inscreve o sinal para recordar a redundncia do manipulador de
cotovelo-para-baixo ou cotovelo-para-cima.
Dado 2, a obteno de 1 poder ser feita como em (5.3) para o manipulador RR ou ento por um
outro processo (mais extenso) sem ter de recorrer tangente da diferena de ngulos, e que se descreve de
seguida. Basta tomar as expresses (5.15) e resolv-las em ordem a S1 e C1, e depois fazer uma substituio
recproca, como se mostra na sequncia seguinte:
Cinemtica Inversa
5-9
C1 =
PWy L2C1S 2
PWx + L2S1S 2
, S1 =
L1 + L2C 2
L1 + L2C 2
C1 =
PWx + L2S 2
PWy L2C 1S 2
L1 + L2C 2
L1 + L2C 2
C1 =
S1 =
Vir finalmente para 1 a expresso (5.18), que se reconhece ser idntica a (5.3):
1 = arctan
(5.18)
3 = 1 2
(5.19)
wrist).
LB
LC
y3
LA
PW
3
z3
1
z0
x3
y0
x0
A expresso da cinemtica directa do manipulador RRR antropomrfico pode ser derivada com base
num resultado obtido anteriormente quando se tratou do exemplo similar ao Microbot Alpha II a 5 DOF,
bastando considerar as trs primeiras juntas (sistemas de coordenadas de 0 a 3). Essa expresso dada pelo
seguinte, onde LA, LB e LC so os comprimentos dos 3 elos em causa:
Cinemtica Inversa
5-10
C 1C 2C 3
S1C 2C 3
0
T3 =
S 2C 3
C 1C 23
S1C 23
=
S 23
C 1S2S 3
C 1C 2S 3 C 1S 2C 3
S1
S1S2S 3
S1C 2S 3 S1S2C 3
C 1
S2S 3 + C 2C 3
+ C 2S 3
0
C 1S 23
S1
S1S23
C 1
C 23
LC (C 1C 2C 3 C 1S2S 3 ) + LBC 1C 2
C 1 ( LC C 23 + LBC 2 )
S1 ( LC C 23 + LBC 2 )
LC S 23 + LB S 2 + LA
PW
p
Wx
= pWy
p
Wz
C 1 ( LC C 23 + LBC 2 )
= S ( L C + L C )
B 2
1 C 23
L S23 + L S2 + L
B
A
C
(5.20)
p
pWy
S1 ( LCC 23 + LBC 2 )
1 = arctan Wx
=
C 1 ( LCC 23 + LBC 2 ) pWx
pWy
Verifica-se porm que na expresso anterior, os termos ( LC C 23 + LBC 2 ) podem ser positivos ou
pWx
pWy
p
= arctan Wx
pWy
+ ; geometricamente
tambm fcil verificar esta situao. Implica isto que nesse caso 2 passa a ter o valor (2) e que 3 passe
a ter o valor (3), que se conclui igualmente pela observao geomtrica. Esta redundncia (que se tem de
admitir tambm matematicamente pelas diversas solues da arco-tangente) no implica alteraes nas
componentes pWx e pWy, como bvio e, como se mostra de seguida, tambm assegura que pWz seja constante.
Basta notar que pWz = LC S 23 + LB S2 + LA e que os valores correspondentes das juntas 2 e 3 para esta
redundncia no afectam o valor de S2 nem de S23, e tornam simtricos os valores C23 e C2, bastando atender
ao seguinte:
sin ( 2 ) = S 2
sin ( 2 3 ) = sin ( ( 2 + 3 )) = sin ( 2 + 3 ) = S 23
cos ( 2 ) = C 2
cos ( 2 3 ) = cos ( ( 2 + 3 ) ) = C 23
Falta agora determinar a expresso para as variveis 2 e 3 . Para isso, tomam-se os elementos da
matriz (5.20) (no sem antes ter re-arranjado pWz e migrar o termo LA para o outro membro da equao), e
elevam-se ao quadrado e adicionam-se conforme a sequncia seguinte:
2
2
2
pWx
+ pWy
+ ( pWz LA ) = ( LBC 2 + LC C 23 ) (C 12 + S12 ) + ( LB S 2 + LC S23 )
2
2
2
2
2
pWx
+ pWy
+ ( pWz LA ) = L2BC 22 + LC2 C 23
+ 2LB LC C 2C 23 + L2B S 22 + LC2 S 23
+ 2LB LC S 2S 23
2
2
2
pWx
+ pWy
+ ( pWz LA ) = L2B + LC2 + 2LB LC (C 2C 23 + S2S 23 )
2
2
2
pWx
+ pWy
+ ( pWz LA ) = L2B + LC2 + 2LB LC [C 2 (C 2C 3 S 2S 3 ) + S 2 ( S 2C 3 + S 3C 2 ) ]
2
2
2
pWx
+ pWy
+ ( pWz LA ) = L2B + LC2 + 2LB LC (C 22C 3 + S22C 3 )
Cinemtica Inversa
5-11
3 = arccos
2
2
pWx
+ pWy
+ ( pWz LA ) L2B LC2
2LB LC
Para obter a expresso de 2 basta pegar nas expresses de pWx, pWy e pWz e resolver uma delas em
ordem a S2 ou C2, num procedimento semelhante ao do manipulador planar RRR abordado na seco 5.5.1.
Partindo de (5.20) obtm-se sucessivamente o seguinte:
pWx 2 + pWx 2 + LC S 2S 3
LB + LCC 3
C2 =
pWx 2 + pWx 2 + LC S 2S 3
LB + LCC 3
Recordando que
2 2
( LB + LCC 3 ) pWz ' rLC S 3 = S 2 LC
S 3 + ( LB + LCC 3 )2
S2 =
LC2 S 32 + ( LB + LCC 3 )2
pWx 2 + pWy 2 LC S 3
LC2 + L2B + 2LB LCC 3
C2 =
r
C2 =
+
LB + LCC 3
=
LC S 3 pWz '
rLC S 3
( LB + LCC 3 )
S2 =
C2 =
2
2
+ pWy
( LB + LC C 3 ) ( pWz LA ) LC S 3 pWx
2
2
2
pWx
+ pWy
+ ( pWz LA )
2
2
+ pWy
+ LC S 3 ( pWz LA )
( LB + LC C 3 ) pWx
2
2
2
pWx
+ pWy
+ ( pWz LA )
S2
.
C2
Cinemtica Inversa
5-12
z3 y4 x5
P
PW
LD = d6
5
x6
y3 x4 z5
x3 z4 y5
z6
y6
a
n
s
A representao na Figura 5.11 mostra os trs eixos do punho esfrico onde, apesar da junta 4
parecer ter associado um elo com dado comprimento, mais interessante considerar que a origem do sistema
de eixos do punho se faz no ponto PW ilustrado. Dessa forma poder-se- posteriormente "concatenar" o
manipulador antropomrfico a 3DOF com o punho esfrico e assim obter um manipulador a 6 DOF. Aps
estas consideraes, a cinemtica directa do punho esfrico obtm-se com base nos parmetros cinemticos
de Denavit-Hartenberg que se ilustram na tabela seguinte:
Elo
+90
4
4+90
l
0
D
0
5+90
+90
LD
S 4
C4
A4 =
0
0 C4
0 S4
1
0
A5 =
0
S 4S 5
C 4S 5
=
C 5
C 6 S 6
S 5 0 C 5 0
S
C 5 0 S5 0
6 C6
A
=
6
1 0 0
0
0
0
0
0
0 0 1
0
C 4 S 4C 5 0 C 6 S 6 0 0
S 4 C 4C 5 0 S 6 C 6 0 0
0
S5
0 0
0
1 LD
0
0
1 0
0
0 1
0 0
1 LD
0 1
S 4S 5C 6 + C 4S 6 S 4S 5S 6 + C 4C 6 S 4C 5 S 4C 5LD
C 4S 5C 6 + S 4S 6 S 6C 4S 5 + S 4C 6
C 4C 5 C 4C 5LD
A 4 A 5 A6 =
C 5C 6
C 5S 6
S5
S 5LD
0
0
0
1
(5.21)
n
3x
R 6 = n 3y
n
3z
s 3x
s 3y
s 3z
a 3x
a 3y = n 3
a 3z
s3
a 3
(5.22)
Cinemtica Inversa
5-13
observando que a 3z
S 4C 5 = a 3x
a
4 = arctan 3x
C 4C 5 = a 3y
a 3y
2
2
2
= S 5 e que a 3x + a 3y = C 5 , e portanto que
(5.23)
C 5 = a 32x + a 32y
(5.24)
de imediato se pode escrever o seguinte, fazendo notar que h, por isso, duas solues para 5.
5 = arctan
a 3z
2
a 3x +
(5.25)
a 32y
s 3z
n 3z
6 = arctan
(5.26)
Finalmente deve notar-se que, dado o termo C5 ter duas solues, alm de 5, tambm 4 e 6 as tero
porque tambm eles foram obtidos com base em C5. Assim, teremos as solues alternativas quando
C 5 = a 32x + a32y , que recorde-se, tal com se tem vindo assumir, desde a sua introduo, faz-se uso da
funo atan2() em vez da mera arctan().
'4 = arctan
a 3x
a 3y
'6 = arctan
s3z
n 3z
0
1 0
0 1 0
0 0
0
0 0
0 0
0 1
1 0
0 1 0 0 0
1 0 0 0 1
=
0 0 0 1 0
0 0 1 0 0
1 0
0 0
0 0
0 1
Ainda relativamente Figura 5.12 observe-se que os sistemas de eixos no obedecem todos
Cinemtica Inversa
5-14
metodologia de Denavit-Hartenberg. De facto, segundo esse processo, o sistema de eixos nmero 3 deveria
ter a sua origem na interseco de z2 com z3 e no na de z3 com z4 como aqui acontece. Isso deveu-se ao
processo de construo deste robot a 6 DOF (como a "concatenao de dois sistemas menores), mas a nica
consequncia apenas a de operaes adicionais para "alinhamento" do sistema de eixos como se acabou de
fazer.
z3 y4 x5
PW
LD = d6
5
y3 x4 z5
x3 z4 y5
z6
LC
n
s
LB
P
y3
z3
x3
PW
PW
z1
z3
z2
LA
x3
Sistema de eixos n 3
Esq: Original no robot antropomrfico a 3 DOF
Dir: Variante no manipulador a 6 DOF
representado
1
z0
y3
y0
x0
PW = P d6 a
(5.27)
Por outro lado, o ponto PW funo das juntas 1, 2, 3 (e s dessas) como se pode obter pela
cinemtica directa (5.21). Bastar, portanto, fazer a cinemtica inversa para o ponto PW e obter as variveis
de junta 1, 2 e 3, como demonstrado anteriormente na seco 5.5.2.
De seguida deve individuar-se a componente de orientao imposta por 1, 2, 3, que se extrai
tambm da expresso (5.21) e que se esquematiza em (5.28).
A1A2 A3 =
R3
0
PWx
PWy
PWz
0 1
(5.28)
Finalmente, a obteno das variveis 4, 5 e 6 faz-se como no caso do punho esfrico (seco 5.5.3)
1
porque se pode saber o valor da sua componente de orientao que tem o valor 3 R 6 = 0 R
3 R , como a
se demonstra. A sub-componente matricial de orientao do end-effector dada por
R = 0 R1 1 R 2 2 R 3 3 R 4 4 R 5 5 R 6 , dado que nos produtos matriciais sucessivos, os elementos das
seguir
Cinemtica Inversa
5-15
componentes de orientao nunca so afectados pelos elementos da 4 coluna ou linha. Esta afirmao
justifica-se pela natureza da matriz de transformao geomtrica homognea, e confirma-se no diagrama
seguinte:
i
i
T1T2 = i
i i i
0 0 1 0
i i
i i
i
=
i
i i
0 0 1
0
i i
i i
i i
0 0 1
i i
i i
Desta forma, pode tambm escrever-se que a componente de orientao da matriz de transformao
1
do manipulador dada por R = 0 R 3 3 R 6 e portanto: 3 R 6 = 0 R
3 R . Recorde-se que se conhece R da
cinemtica directa do manipulador completo, e
1
p
P
2
W
( A1A2A3 )
LD
0 1
3
1
( A1A2 A3 ) 0 R
3
n s a p
3 R 6 = n 3
0 1 0
R3 R6
Passo 2:
0 0 0 1
n s
Passo 1:
0 0
s3
a 3
( A 4 A5 A6 )
Cinemtica Inversa
4
5
6
5-16
Captulo 6
Cinemtica Diferencial de
Manipuladores
d2
dz
d1
zz
yy
xx
dy
dx
dx
L2S1C 2 L2C 1S 2 d 1
dy = L2C 1C 2 L2S1S 2
d
2
dz
L2C 2
0
d 1
1
d 2 = L2C 2
S1 C 1
0
0
dx
0
dy
1
dz
6. Cinemtica diferencial
6.1
A problemtica
Nas cinemticas inversa e directa abordam-se as relaes entre coordenadas no espao operacional e
no espao das juntas de um dado sistema robtico. Todavia, essas relaes no do qualquer informao
sobre as caractersticas do movimento entre duas quaisquer configuraes, ou seja, quais so as relaes
entre as evolues temporais das coordenadas nos dois espaos. Dito de outra forma, se, por exemplo, a
extremidade da mo deve descrever um certo deslocamento (incremento) no espao a seis coordenadas
durante um dado intervalo de tempo, que deslocamentos (incrementos) devem ter as diversas juntas ou viceversa? Estes incrementos ou diferenas na posio e o seu estudo designam a chamada cinemtica
diferencial. Vai mostrar-se mais adiante que a relao entre deslocamentos infinitesimais nos espaos
operacional e das juntas dada pelo Jacobiano do manipulador.
Toda esta conjuntura leva ao estabelecimento de duas definies importantes: caminho e trajectria.
Por caminho entende-se um conjunto de pontos no espao (operacional ou das juntas) que deve ser
percorrido numa dada ordem; trajectria define um caminho levando em conta constrangimentos temporais,
ou seja, so definidos intervalos de tempo para a evoluo entre duas configuraes sucessivas ou, no caso
limite, a trajectria define a evoluo ao longo de um caminho em funo do tempo.
6.2
Transformaes diferenciais
6.2.1 Conceitos
Para expressar a noo de incrementos nas coordenadas (no espao operacional ou das juntas)
introduz-se o conceito de movimento diferencial geral ou transformao geomtrica diferencial, ou
simplesmente transformao diferencial. A transformao diferencial representa um acrscimo infinitesimal
e, como tal, vista como uma matriz de transformao usual que resulta da multiplicao de uma
transformao diferencial de rotao seguida de um transformao diferencial de translao, ou seja, num
dado referencial R, tem-se:
d R TN = d R Trans d R Rot
(6.1)
(6.2)
(6.3)
Na rotao diferencial, a ordem das trs operaes arbitrria, como se pode verificar mais adiante
em (6.4). De facto, quando se mencionam incrementos infinitesimais, no caso das rotaes, est-se a assumir
rotaes de um ngulo infinitesimalmente pequeno d ou, formalmente, os limites das funes que traduzem
as rotaes quando d 0 . Se se recordar que lim ( sin ) = d e lim ( cos ) = 1 , possvel
d
Cinemtica diferencial
6-2
0 1
=
0 x
0 0
0 1
0 0
0 y
1 0
x
1
0
0 y
1
0 1
0 z
0 0
1 0
1
0
0
0 0
1
0 0
1 0
y
0
0 1
(6.4)
d RTN =
0
0 0 dx 1
1 0 dy z
0 1 dz y
0 0 1 0
0
1
z
0
=
0
y
0
1
dx
dy
dz
(6.5)
Assim, uma transformao diferencial caracterizada por seis componentes que formam o chamado
vector de deslocamento (movimento) diferencial e representado por:
d
D = = dx dy dz
t
z
(6.6)
TN = d R Trans d R Rot R TN
(6.7)
Mas, por sua vez, a transformao diferencial foi introduzida para ser um acrscimo infinitesimal
(diferencial) concebida para ser simplesmente tida como um termo aditivo de transformao geomtrica, ou
seja, deve ser tal que basta adicion-la a uma qualquer matriz de transformao geomtrica para obter uma
nova matriz (de transformao), devendo verificar-se o seguinte:
Nova Localizao =
TN + d R TN
(6.8)
TN + d R TN = d R Trans d R Rot R TN
R TN
(6.9)
confundir com a transformao geomtrica diferencial) e permite determinar, em funo de uma qualquer
matriz representando um referencial em causa, qual o valor do incremento de transformao diferencial
para se poder obter a nova localizao. A transformao de deslocamento diferencial, face ao exposto, pode
escrever-se na forma matricial, chamando-se a ateno para a diagonal e linha de zeros:
R
=
y
dx
dy
dz
(6.10)
A transformao diferencial de um certo sistema de coordenadas (que o no fundo RTN) foi abordada
implicitamente como sendo vista de um referencial base original, o referencial R. Porm, a transformao a
Cinemtica diferencial
6-3
aplicar poderia ser vista, no do referencial base R, mas do prprio referencial N que ir sofrer a
transformao diferencial. Isto reporta-nos s questes de pr- e ps-multiplicao de transformaes
abordadas em captulos anteriores. Assim, se uma transformao diferencial for vista no prprio referencial
(N), expressando por isso as transformaes diferenciais elementares por d N Trans e d N Rot , vir:
R
TN + d R TN =
TN d N Trans d N Rot =
TN ( I d N Trans d N Rot ) =
TN
(6.11)
Dado um referencial A =
0
0 1 10
0 0 5
, qual a matriz de erros na nova localizao se se aplicar o
1 0 0
0 0 1
t
processo das transformaes diferenciais com seguintes os movimentos diferenciais: d = 1 0 0.5 e
t
= 0 0.1 0 ? Recordando metodologia exposta, o procedimento o seguinte:
onde dA =
A . Usando numericamente
0
0 1 10
0 0
0 0 5
0 0
1 0 0
0 0
0 0 1
0 0.1
1 0
0 1
0.5 0
0 0
0
1
0 0.1
0 0
0
0
0 0 0.1 0.5
0 0
0
0
0.1
1
11
0
0
5
1 0.1 0.5
0
0
1
O valor exacto da transformao corresponde, alm da translao indicada, a uma rotao em torno
do eixo dos yy com valor 0.1, o que resulta em:
cos ( 0.1 )
=
sin ( 0.1 )
Finalmente,
Anovo
matriz
dos
erros
0 sin ( 0.1 )
1
0
0
=
0
1 0
0
0 1
0
1 0
0.0998
0.995
0
0.995
pode
0 1 10
0 0 5
1 0 0
0 0 1
10.95
0
5
0.0998 0.498
0
1
ser
dada
pelo
seguinte:
0
0
0
0
( A + dA ) =
, que corresponde, em termos relativos, a que qualquer
0
0.005
0.002
0.001
0
0
0
0
Cinemtica diferencial
6-4
6.3
O Jacobiano de um manipulador
Aquando do estudo das cinemticas directa e inversa afirmou-se que se tratava formalmente de uma
relao vectorial entre dois grupos de variveis, no espao das juntas e no espao operacional e que
simbolicamente se poderia escrever r = F ( q ) , para a cinemtica directa e, com as devidas restries de
interpretao e condies de existncia matemtica, q = F1 ( r ) para a cinemtica inversa. Se se levar em
conta que a variao temporal de uma varivel espacial (distncia ou amplitude angular) traduz uma
velocidade (linear ou angular) imperativo pensar no que surge se se derivarem as expresses acima citadas
em
ordem
ao
tempo.
Claramente,
r = x
se
ento,
d t
onde se identificam 3 velocidades lineares e 3 velocidades angulares.
dt
dr
indicar as
Se se pensar que o vector r indica a postura da extremidade de um manipulador,
dt
dr
dx
=
dt
dt
dy
dt
dz
dt
d
dt
d
dt
componentes cinticas dessa mesma extremidade. assim imediato questionar tambm como se relacionam
com elas as velocidades das diversas juntas do manipulador. A resposta est num resultado da anlise
vectorial referente diferenciao de funes vectoriais, e que, usando a nomenclatura adoptada at agora,
se traduz no seguinte:
d r = J dq
(6.12)
r1
q1
r2
J = q1
rm
q1
r1
q2
r2
q2
rm
q2
r1
q n
r2
q n
rm
qn
(6.13)
Para melhor entender esta formulao basta recordar o conceito de diferencial total de uma funo de
vrias variveis como, por exemplo, a duas: x = f ( 1, 2 ) , donde se tem dx =
f
f
d +
d .
1 1 2 2
Assim, fica claro como se pode obter analiticamente a relao entre as diferenciais das variveis no
espao cartesiano em funo das diferenciais no espao das juntas. Bastar pensar na sua dependncia com
o tempo e pode-se escrever sem grandes dificuldades de intuio o seguinte:
dr
dq
= J
ou em notao compacta r = J q
dt
dt
ou ainda, com os devidos cuidados para evitar o abuso de notao, tambm o seguinte v = J ,
onde o vector v representa as componentes de velocidade cartesiana e o vector com as velocidades das
juntas (podendo elas tambm ser lineares no caso de juntas prismticas).
Cinemtica diferencial
6-5
y
Cinemtica directa:
d2
d1
x = L1C 1 + L2C 12
y = L1S1 + L2S12
dy
dx
A obteno das expresses diferenciais do manipulador na situao da Figura 6.1 faz-se pelo j
referido conceito da diferencial total que utiliza as diversas derivadas parciais:
( L1C 1 + L2C 12 )
( L1C 1 + L2C 12 )
dx =
d 1 +
d 2 = ( L1S1 + L2S12 )d 1 L2S12d 2
2
1
1
2
(6.14)
dx
L1S1 L2S12 L2S12 d 1
=
dy
L1C 1 + L2C 12 L2C 12 d 2
(6.15)
A matriz do Jacobiano surge explcita e, naturalmente, o seu valor concreto depende em cada instante
dos valores dos ngulos de junta 1 e 2.
Um outro exemplo aqui apresentado diz respeito ao manipulador RR no espao a 3D que se relembra
na Figura 6.2, e onde se indica tambm a expresso da cinemtica directa, agora com as trs variveis no
espao cartesiano, mesmo sabendo-se que h uma certa dependncia entre elas.
d2
dz
d1
zz
x = L2C 1C 2
y = L2S1C 2
z = L2S2 + L1
yy
xx
Cinemtica directa:
dy
dx
6-6
Pela metodologia descrita anteriormente pode chegar-se sem grandes dificuldades seguinte
expresso de cinemtica diferencial:
dx
L2S1C 2 L2C 1S2
d 1
dy = L2C 1C 2 L2S1S2
d 2
dz
0
L2C 2
(6.16)
de observar que o Jacobiano em (6.16) no quadrado, o que resulta de se terem considerado trs
variveis cartesianas e duas variveis de junta. No foram levadas em conta variveis de orientao
cartesiana (que reforariam a disparidade de variveis) dado que tambm elas no so independentes das
variveis de posio (x, y, z). Todavia, teria sido possvel integr-las sem dificuldades dado que se
relacionam de forma muito directa com as variveis de junta como se mostrou no captulo da cinemtica
directa.
A obteno analtica por diferenciao da cinemtica directa o processo mais natural para obter o
Jacobiano, mas outros processos existem na literatura como, por exemplo, por clculo vectorial ou por
coordenadas homogneas segundo o Algoritmo de Paul.
( q1, q2,..., qn ) = F
se designa por
J-1,
( r1,r2,..., rm )
F1
tal que
ento tambm aqui possvel obter o Jacobiano dessa funo inversa que
inverso pode levar concluso arriscadamente apressada, como correspondendo matriz inversa do
Jacobiano do manipulador (6.13), o que nem sempre verdade porque esse Jacobiano pode no ser quadrado,
como o caso em (6.16), e logo nem sequer se poder definir a sua inversa. por isso comum usar as
designaes JF e JI para o Jacobiano directo (Forward) e para o Jacobiano inverso .
Feitas estas consideraes, surge assim a questo de como se pode obter o Jacobiano inverso, dado ele
ser fundamental para a determinao das velocidades das juntas. A definio leva a que a primeira tentativa
seja a de diferenciar as expresses da cinemtica inversa, o que sempre vlido se essas expresses
existirem. Por outro lado, se o Jacobiano (directo) for quadrado ento pode tentar-se a sua inverso quer
analtica, quer numrica, e nesse caso ser feita em cada instante, mas deste assunto voltar-se- mais
adiante.
Procure-se obter o Jacobiano inverso para o manipulador RR planar por inverso do Jacobiano
directo. Simbolicamente pode escrever-se a expresso (6.15) do seguinte modo:
dx
J 11 J 12 d 1
=
(6.17)
dy
J 21 J 22 d 2
Adj ( J )
, onde a adjunta de uma matriz a
Pela definio de inversa de uma matriz ter-se-: J1 =
J
Cinemtica diferencial
6-7
J 22
J
12
J 21 t
J 22 J 12
=
determinante de J pode ser j obtido substituindo a sua real expresso dada em (6.15) e vir:
(6.18)
(6.19)
= L1L2S 2
Prosseguindo com o desenvolvimento do Jacobiano inverso pode-se finalmente constatar:
J1
=
=
L1L2S 2
L1S2
C 12
L1C 1 + L2C 12
L2
S12
L1S1 + L2S12
L2
(6.20)
Apesar do resultado obtido de forma aparentemente fcil em (6.20), nem sempre possvel obter o
Jacobiano inverso de forma analtica; na verdade, este caso dos poucos onde o mtodo resulta com
facilidade. A via alternativa da diferenciao das expresses da cinemtica inversa, por seu lado, oferece
mais uma possibilidade, em particular quando o Jacobiano directo no rectangular. precisamente esse o
caso do manipulador RR no espao a 3D cuja cinemtica directa est indicada na Figura 6.2 e a cinemtica
inversa, tal como indicado em captulos anteriores, dada por:
1 = arctan
z L1
2 = arctan
x
C
1 + y S1
(6.21)
sin 1
y
= x sin 1 y cos 1 = 0
x
cos 1
dx sin 1 + x cos 1 d 1 + y sin 1 d 1 dy cos 1 = 0
d 1 =
dx sin 1 + dy cos 1
x cos 1 + y sin 1
(6.22)
d 1 =
dx S1 + dy C 1
dx S1 + dy C 1
S1
C
=
=
dx + 1 dy
L2C 1C 2 C 1 + L2S1C 2 S1
L2C 2
L2C 2
L2C 2
(6.23)
Note-se que semelhante resultado poderia ser obtido pela diferenciao directa da expresso da
arco-tangente em (6.21) bastando desde logo recordar que d 1 =
d 1 =
( )
y
1+
x
( xy )dx + 1 + 1 y
2
(x )
dx + 1 dy :
x
y
1
x
y
dy = 2
dy
2 dx + 2
x
x +y
x + y2
(6.24)
d 1 =
y
x
S1
C
dx + 2 2 dy =
dx + 1 dy
L2C 2
L2C 2
L22C 22
L2C 2
(6.25)
A obteno do diferencial da varivel 2 podia-se fazer pela derivao da segunda expresso em (6.21)
Cinemtica diferencial
6-8
tal como se fez para a varivel anterior, mas o processo muito mais expedito se se atender na cinemtica
directa que z = L1 + L2S 2 o que, por diferenciao directa, d de imediato dz = L2C 2d2 , ou seja:
d 2 =
1
dz
L2C 2
(6.26)
S1
d 1
L
2C 2
d 2 =
C1
L2C 2
0
0 dx
1
dy =
L2C 2
1
L2C 2 dz
S1 C 1
0
0
dx
0
dy
1
dz
(6.27)
Quando nenhuma das solues analticas for vivel s restar a possibilidade da inverso numrica
do Jacobiano directo. O princpio o de que em cada instante (para os valores correntes das juntas) se pode
calcular o Jacobiano directo e inverter numericamente a matriz. Se, mesmo assim, o processo for
computacionalmente incomportvel, uma soluo o de calcular a priori (off-line) um conjunto de Jacobianos
inversos em pontos considerados fundamentais ou relevantes, e fazer algum tipo de interpolao nas
diversas variveis para os pontos onde essas inversas no tenham sido calculadas a priori. Este
procedimento requer menos poder de clculo mas em contrapartida exige grande capacidade de
armazenamento (memria).
A t AA t )1
(
mn
m=n .
mn
Se a matriz for quadrada fica-se na situao tradicional da inversa. A pseudo-inversa de uma matriz
possui algumas propriedades interessantes, entre as quais se referem as seguintes:
J J+ J = J
J+ J J+ = J+
J + tem as mesmas dimenses de J t
+
6.4
Singularidades
Como visto, por exemplo nas expresses dos Jacobianos em (6.15) ou (6.16), e pela prpria definio
Cinemtica diferencial
6-9
esse Jacobiano inverso no tem definio numrica! De facto, nestes casos, o Jacobiano (directo) singular
(ter determinante nulo) e o Jacobiano inverso no definido, e diz-se que a respectiva configurao do
manipulador uma singularidade.
Fisicamente, o que significa uma singularidade? Em resumo, uma situao (configurao do robot)
na qual seria necessrio impor velocidades infinitamente altas numa ou mais juntas para manter
determinadas velocidades no espao operacional. Dito doutro modo, haver um actuador (ou mais) cujo
controlo ser sempre insuficiente para cumprir as velocidades desejadas no espao operacional. Tambm se
diz, por isso, que numa situao de singularidade h a perda de um ou mais graus de mobilidade que,
quando o nmero de graus de liberdade no manipulador for menor ou igual a 6, se diz perda de um grau de
liberdade.
Trajectria rectilinea
do end-effector que
ser interrompida na
singularidade
2
x
zz
yy
xx
C 12
S
dx + 12 dy
L1S 2
L1S 2
L C + L2C 12
L S + L2S12
d 2 = 1 1
dx 1 1
dy
L1L2S2
L1L2S 2
d 1 =
S1
C
dx + 1 dy
L2C 2
L2C 2
1
d 2 =
dz
L2C 2
d 1 =
Figura 6.3 Situaes de singularidade para dois manipuladores nos limites do espao de trabalho.
Cinemtica diferencial
6-10
Captulo 7
Introduo ao
planeamento de
trajectrias
(t)
f
b
tb =
tf
t 2 ( 0 )
f f
2
4
0
0
Cinemtica diferencial
tb
tf
6-11
Tipos de movimento
Num manipulador, depois de se saber como relacionar o espao das juntas com o espao operacional,
quer em termos geomtricos (cinemtica directa e inversa), quer em termos cinticos (cinemtica
diferencial), necessrio proceder ao que se chama planeamento de trajectria. Assim, o planeamento de
trajectria engloba o conjunto de estudos e mtodos que permitem definir os regimes de velocidade dos
diversos actuadores de forma a fazer o manipulador cumprir os objectivos de movimentao ou deslocamento
esperado (planeado). partida, num robot industrial, estes objectivos podem ser simplesmente o
deslocamento do end-effector entre dois pontos em repouso no espao de trabalho, durante um determinado
intervalo de tempo, como o caso tpico de manipulao (como a paletizao ou transferncia) ou, no outro
extremo de complexidade e exigncia, a execuo de uma trajectria bem definida do end-effector no espao
operacional e obedecendo a critrios temporais precisos, como so casos de algumas operaes contnuas
(pinturas, polimento, cordes de soldadura, etc.). O primeiro tipo de movimento designado o movimento
ponto-a-ponto e o segundo movimento de trajectria contnua.
No movimento ponto-a-ponto o percurso efectivo da garra no conhecido partida dado que as
configuraes intermdias entre os pontos extremos no so levadas em conta para cumprir este movimento.
No movimento de trajectria contnua o caso oposto, todos os pontos de passagem da garra esto definidos
partida, seja de uma forma analtica seja de forma numrica, e a com grande preciso. Numa soluo
intermdia, possvel fazer planeamento de trajectria entre dois pontos, mas com especificao de um
conjunto de pontos intermdios nos quais a configurao da garra mandatria e, por isso, cumprida. Esta
abordagem a mais verstil em termos de implementao prtica. Na verdade, uma sequncia de
movimentos ponto-a-ponto com espaamentos fsicos muito pequenos entre os pontos quase se assemelha, em
termos prticos, a uma trajectria continua no espao operacional!
7.2
7-12
As posies das extremidades dos elos no so controladas e, por isso, podem descrever um
percurso muito irregular, com consequncias tambm no end-effector (pense-se por exemplo na
manipulao de um recipiente contendo lquidos e no completamente fechado!)
7.3
do tempo de tal forma que so verificadas determinadas condies cinemticas da junta: posio, velocidade,
e at acelerao, no ponto inicial e no ponto final. Ou seja, um movimento deve decorrer desde o instante t0
at ao instante tf partindo do valor inicial de junta 0 at ao valor final de junta f , com uma velocidade
inicial ( t0 ) = 0 e uma velocidade final ( t f
) = f
( t ) = a 0 + a1t + a2t 2 + a 3t 3
(7.1)
( t ) = a1 + 2a2t + 3a 3t 2
(7.2)
( t ) = 2a2 + 6a 3t
(7.3)
Sem perda de generalidade pode assumir-se que o instante t0 igual a 0, ou seja, o incio da
contagem do tempo, e assim as expresses anteriores tm uma traduo grfica como ilustrado na Figura
7.1.
(t)
d/dt
d2/dt2
(tf)
0
(0)
t
0
tf
tf
tf
Feito este raciocnio, torna-se agora necessrio determinar os termos a0, a1, a2 e a3 na expresso (7.1)
e seguintes. O processo directo e na simplificao assumida pode escrever-se o conjunto de condies a
verificar como sendo:
( 0 ) = 0; ( t f ) = f ; ( 0 ) = 0 ; ( t f ) = f
Introduo ao Planeamento de Trajectrias
(7.4)
7-13
0 = a 0
0 = a1 = 0
( t f ) = a 0 + a1t f + a2t f2 + a 3t f3 = f
( t f ) = a1 + 2a2t f + 3a 3t f2
t = 0 + a2t f2 + a 3t f3
0 = 2a2t f + 3a 3t f2
a 3 = 3 ( f 0 )
= 3 a t 3 + a t3
f
f
f
0
3
3
f 0 = a2t f2 + a 3t f3
t
f
2
2a2 = 3a 3t f
3
a2 = ( f 0 )
a = a 3t f
2
2
t f2
Pode-se portanto fazer as substituies todas em (7.1) e obter o seguinte polinmio para a evoluo
das juntas:
( t ) = 0 +
3
2
( f 0 )t 2 3 ( f 0 )t 3
t f2
tf
(7.5)
A expresso obtida em (7.5) serve, como visto, para a situao onde as velocidades inicial e final so
nulas. Caso no o sejam, tendo-se portanto valores genricos 0 e f , a expresso mais geral poderia ser
derivada por um processo idntico ao de (7.5) e resultaria no seguinte:
3
2
2
1
1
( t ) = 0 + 0t + 2 ( f 0 ) 0 f t 2 + 3 ( f 0 ) + 2 ( f + 0 ) t 3
t f
t f
tf
t f
tf
(7.6)
no
necessariamente nula. Em termos prticos, as posies no espao das juntas obtm-se por cinemtica inversa
sobre as configuraes dos pontos de passagem no espao operacional, como esboa a Figura 7.2.
Espao
operacional
r0
rA
f
Cinemtica
inversa
Cinemtica
inversa
Cinemtica
inversa
Cinemtica
inversa
Espao das
juntas
rB
rf
Todavia, levanta-se agora a questo: se a velocidade das juntas no ponto de partida e de chegada
nula, qual ser a velocidade da junta nos pontos intermdios de passagem? O utilizador (humano ou
software) pode no conhecer essas velocidades, ou mesmo no ter informaes para as impor de forma
eficiente (como, por exemplo, tendo a certeza que no impor esforos mecnicos devido a grandes
aceleraes no manipulador); trs alternativas se apresentam para resolver o problema:
1) As velocidades nos pontos de passagem so conhecidas no espao operacional e ter-se- de aplicar o
Jacobiano inverso do manipulador para as conhecer no espao das juntas.
Introduo ao Planeamento de Trajectrias
7-14
2) O sistema (planeador) escolhe as velocidades aplicando uma qualquer heurstica no espao das
juntas ou no espao operacional. Adiante explica-se um exemplo de uma heurstica apropriada.
3) O sistema escolhe as velocidades nos via points de forma a impor curvas de acelerao contnuas.
Este caso implica mais definies no polinmio ( t ) : ter agora de ser de 5 ordem e no apenas de 3 como
definido em (7.1).
Das trs possibilidades, a mais comum, e talvez mais fcil de aplicar com resultados prticos quase
sempre aceitveis, a segunda abordagem ligada questo da heurstica. O princpio o de fazer uma
espcie de interpolao das velocidades mdias entre dois troos adjacentes. Por exemplo, se as velocidades
mdias em dois troos consecutivos (separados pelo via point) tiverem sinais (sentidos) diferentes, ento o
ponto de passagem tido como o ponto de viragem isto , com velocidade nula. Caso contrrio, a velocidade
no ponto de passagem dada pela mdia das velocidades mdias em cada troo de cada lado do via point.
(t)
f
A
C
B
t
tA
tB
tC
tf
Figura 7.3 Processo heurstico de determinao da velocidade de junta nos via points.
No exemplo ilustrado na Figura 7.3 a velocidade de passagem quando a junta chega a A nula
porque a velocidade mdia entre 0 e A, isto ,
A 0
A
, e a velocidade mdia entre A e B, isto , B
tA
tB tA
tm valores algbricos distintos (ou seja, sinais opostos). Graficamente, isso observa-se pelo valor da
derivada associada aos segmentos de recta respectivos; assim A = 0 . Para B essa situao repete-se mas
para C j no! De facto a velocidade C , por este processo, seria determinada pela seguinte expresso:
B
1 C
C = f
+ C
2 t f tC
tC tB
Naturalmente, possvel fazer um planeamento sem ter de recorrer a uma sequncia de polinmios
de 3 grau. Tendo o poder computacional adequado, pode recorrer-se a polinmios de grau arbitrariamente
elevado ou mesmo a outras funes que proporcionem suavidade como as splines ou mesmo funes
transcendentais. Todavia, em aplicaes prticas o polinmios de 3 ordem muitas vezes suficiente, e por
vezes at excessivo para as exigncias dos problemas.
7-15
(t)
tf
( t )
0
0
( t )
Para evitar as limitaes da evoluo linear (com severas limitaes de implementao prtica, alis)
pode procurar-se ter uma evoluo linear mas com perodos de acelerao limitada no fase de arranque e na
fase de paragem. Isto corresponde a um andamento com acelerao inicial, uma velocidade constante e um
perodo de desacelerao constante. Graficamente, a posio descrita por uma curva linear com
extremidades parablicas (parabolic blends) como se pode ver na Figura 7.5.
(t)
Troo
linear
(t)
m
b
0
Troo
parablico
tb tm
tf
tb
tf
Figura 7.5 - Troo linear com extremos parablicos, ou o clssico movimento com rampas de acelerao
No troo parablico entre 0 e tb, com acelerao constante ( ) e velocidade inicial nula, e com base na
equao tradicional de um parbola e nas relaes fsicas entre espao, velocidade e acelerao, tem-se:
1
( t ) = 0 + t 2
2
(7.7)
Por outro lado, a velocidade atingida no fim desse troo parablico necessariamente igual
velocidade no troo linear para haver continuidade de velocidades, o que permite escrever:
( tb ) = b = tb =
m b
tm tb
(7.8)
tm =
tf
2
m = 0 +
f 0
2
(7.9)
1
b = 0 + tb2
2
(7.10)
Substituindo (7.9) e (7.10) em (7.8), vir uma equao do segundo grau em tb:
tb2 + tb
tf
0
1
= 0 + f
0 tb2
2
2
2
(7.11)
ou ainda
tb2 tbt f + ( f 0 ) = 0
cuja soluo dada por:
7-16
tb =
tf
2t f2 4 ( f 0 )
2
(7.12)
que indica qual o instante em que termina um troo parablico e o instante em que comea o outro
quando a acelerao desejada , o ngulo inicial 0 , o ngulo final f e o tempo de execuo da
trajectria tf.
Naturalmente, para que (7.12) tenha significado fsico o radical tem de ser no negativo, o que leva a
impor a condio 2t f2 4 ( f 0 ) 0 , que se reduz condio principal:
4 ( f 0 )
t f2
(7.13)
A expresso (7.12) poderia ainda apresentar-se numa forma com interpretao mais intuitiva como a
seguinte:
tb =
tf
t 2 ( 0 )
f f
2
4
(7.14)
De, facto a expresso (7.14) permite relacionar directamente a obteno dos instantes de actividade
dos troos parablicos com base na acelerao desejada nessas fases. Da mesma expresso ainda se extrai o
interessante resultado sobre a menor durao possvel do troo linear (que zero) e que ocorre quando o
radical zero, ou seja, quando a acelerao dada por: =
4 ( f 0 )
.
t f2
Finalmente, digno notar-se que tambm possvel (e no invulgar) fazer planeamento de trajectria
com troos parablicos em casos com pontos de passagem intermdia (via points). O raciocnio da abordagem
similar aos j discutidos e na literatura h autores que detalham o processo que no se assume prioritrio
no mbito do presente texto.
7.4
7.4.1 Princpios
Se a tarefa do manipulador exigir um dado percurso no espao operacional (cordes de soldadura,
linhas de polimento, processos de pintura, etc...) o problema passa agora a ser o de garantir que as juntas se
movam de tal forma que o percurso do end-effector se faa conforme o requerido e de forma contnua, ou seja,
melhor do que ter uma sequncia, por maior que seja, de pontos intermdios de passagem. A questo nessa
alternativa de inmeros pontos de passagem a necessidade de computacionalmente ter-se de recorrer
resoluo em tempo extremamente curto (igual ao do perodo de actualizao do sistema de controlo do robot)
das equaes da cinemtica inversa.
Em casos muito simples (quer de manipuladores quer de trajectrias no espao operacional) pode
resolver-se a priori a questo da cinemtica inversa de forma analtica. Por exemplo, pode pensar-se num
manipulador RR planar onde se quer que o end-effector descreva um segmento de recta parametrizado da
x (t ) = t
7
4 , t 0, , como se ilustra na Figura 7.6.
8
y ( t ) = 2t
seguinte forma:
7-17
y
Cinemtica inversa do manipulador RR
2 = arccos
x 2 + y 2 L21 L22
2L1L2
1 = arctan
x ( L1 + L2 cos 2 ) + yL2 sin 2
7/4
t sin 2
2t ( 1 + cos 2 )
4
1 ( t ) = arctan
7 t ( 1 + cos 2 ) + 2t sin 2
4
7
t)
(
4
= arccos
2 ( t )
+ 4t 2 2
Na redundncia de 2 pode optar-se pela soluo com sinal negativo que corresponde ao representado
na Figura 7.6. Assim sendo, obtm-se umas curvas para 1 e 2 sensivelmente como as indicadas na Figura
7.7.
- acos(1/2 (21/13-t )2+2 t 2-1)
90
-60
80
-65
70
60
-70
50
-75
40
30
-80
20
10
-85
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Figura 7.7 - Evoluo das juntas 2 (esq.) e 1 (dir.) para o manipulador RR executar uma linha recta
Este exemplo da resoluo analtica pouco mais do que um exerccio acadmico porque, na verdade,
no resolve o problema apresentado logo de incio, ou seja, na prtica, a cinemtica inversa tem de ser
calculada para todos os pontos necessrios ao controlador para levar a cabo o movimento desejado.
H muitos trabalhos nesta rea e diversas metodologias de abordar o problema sem ter de recorrer
to exaustivamente cinemtica inversa; da literatura merecedor destacar, por exemplo, o processo dos
quaternies duais.
Introduo ao Planeamento de Trajectrias
7-18
Regio
inatingvel
Espao de
trabalho
Este problema no novo dado que j se abordou a questo das singularidades antes. Porm, no ser
nunca demais alertar para os riscos prticos da execuo de trajectrias arbitrrias no espao operacional.
Fase de grande
velocidade
Neste caso destacam-se as situaes em que as configuraes de partida e chegada, por razes
construtivas ou de ordem fsica, no tm uma relao de continuidade na evoluo de uma para outra. A
estas situaes esto frequentemente associados os limites fsicos das juntas.
7-19
Captulo 8
Introduo viso por
computador
C
xR
C
zC
R
yR
TC
R q = C TR R q
Plano da
cmara
xC
yC
q=
c h = P R TC
R q = P C TR R q
q
zR
p ' = p + b g (d + e ) + d e (b + g )
8-1
Robtica Industrial
Introduo Viso por Computador
Dezembro 2003
Vtor M. F. Santos
Sumrio
Parte I
Parte II
Parte III
Parte IV
Algumas Referncias
Robotics: Control, Sensing, Vision, and
Intelligence K. S. Fu, R. C. Gonzalez, C. D. G.
Lee, McGrawHill, 1987
Digital Image Processing R.C. Gonzalez, P.
Wintz, Addison-Wesley, 1987
http://www.ph.tn.tudelft.nl/Courses/FIP/frames/fip.html
Definio e importncia
Viso por computador o processo de ...
Extraco,
caracterizao
e interpretao
1-Percepo
Aquisio ou obteno de imagem
2-Pr-processamento
Reduo de rudo ou realce de detalhes
Mdio
nvel
3-Segmentao
Partio da imagem em zonas de interesse (objectos)
4-Descrio
Determinao de propriedades de objectos (tamanho, forma,)
Alto
nvel
5-Reconhecimento
Identificao de objectos descritos a partir de uma base de dados.
6-Interpretao
Atribuir significados a um conjunto de objectos reconhecidos
Formao da imagem
...na cmara escura
As dimenses e definio
do orifcio definem a
nitidez e o plano focal
A imagem forma-se no
plano da retina por
projeco da luz vinda do
mundo 3D atravs de uma
lente (cristalino) que
muda de dimenses para
ajustar a distncia focal
Imagem digital
Constituda por elementos discretos ou pixels
Amostragem espacial
Nmero limitado (finito) de pontos (pixels) nas duas
dimenses
f (1,0 )
f ( x, y ) =
f ( N 1,0 )
f (0,1)
"
f (1,1)
"
%
f (N 1,1) "
f (0, M 1)
f (1, M 1)
f (N 1, M 1)
Resoluo de amplitude ou
profundidade
Nmero de nveis de
cinzento ou cores por pixel
nas imagens a cores h
mais que um valor por pixel
( usual trs)
O nmero de bits e efeito
de solarizao
Nas imagens binrias, os
pixels so representados
por um s bit
Problema da quantizao
Tcnicas de Iluminao
Importncia:
Tcnicas principais:
Retro-iluminao (contraluz)
Para imagens a dois nveis onde s a geometria dos
Tcnicas de Iluminao-Ilustrao
Iluminao difusa
Eliminar sombras
Luz estruturada
Anlise geomtrica
Retro-iluminao
Iluminao direccionada
Exemplos de
Retro-Iluminao e de Luz Estruturada
Conjunto de chaves sobre
superfcie translcida
iluminada por baixo.
Grande contraste na
imagem obtida.
Geometria da Imagem - I
Ponto real e ponto na imagem
y,Y
Plano da imagem
Relaes de distncias:
Se Z > vir:
x,X
X
X
=
=
Z Z
y
Y
Y
=
Z Z
Distncia focal -
w - (X,Y,Z)
c - (x,y)
z,Z
x=
X
Z
y=
Y
Z
Centro da lente
Geometria da Imagem - II
Abordagem integrada das coordenadas
Coordenadas homogneas de um ponto
Transformao de perspectiva P
1
0
P = 0
ch = P wh
0
1
0
0
0
1
1
0
0
0
0
1
0
c h = 0
0
1
0
0
0
1
1
0
0 kX
0 kY
0 kZ
1 k
kX
kY
ch =
kZ
kZ
+ k
kX
Coordenadas calculadas na imagem
kZ
x
A coordenada z no tem aqui sentido
y = kY
=
c
As coordenadas x e y obtm-se em
kZ
z
funo das coordenadas reais (X,Y,Z) e
de
kZ
kZ
A determinao inversa
k
1
0
= 0
X
Z
Y
= Z
Z
1
1
0
0
0
Calibrao da Cmara
Quando os sistemas de coordenadas da
cmara e do mundo real so diferentes
Necessidade de adequada transformao
geomtrica da cmara antes da perspectiva
xC
w = TC w
w = ( TC )
R
w = TR
C
zC
c = P w = P ( TC ) R w = P C TR R w
R
yR
Plano da
cmara
yC
xR
w
zR
Vizinhanas
Critrios de distncia
Pr-processamento
Os filtros de convoluo
Deteco de pixels isolados
Tcnicas de suavizao
Tcnicas de Realce
Deteco de arestas
Limitao e binarizao
Suavizao de imagens binrias
N4 (horizontal e vertical)
ND (diagonal)
N8 = N4 ND
Euclidiana
DE ( p , q ) =
D4 (ou city-block)
D4 ( p, q ) = p x q x + p y q y
D8 (ou chessboard)
D8 ( p, q ) = max p x q x , p y q y
Pr-processamento de imagem
Abordagens
Na abordagem espacial
w p
i
i =1
w2
w3
w4
w5
w6
w7
w8
w9
-1
-1
-1
-1
-1
-1
-1
-1
Filtro de mediana
Substituir cada pixel pela mediana da distribuio dos
Conceito
Exemplos
Operaes no histograma
Equalizao
Expanso do contraste
g ( x, y ) = 2 1
Operador de gradiente
Definio
G Gx f
G= =
G y x
f
y
Variante discreta...
Gx = f ( x, y ) f ( x 1, y )
G y = f ( x, y ) f ( x, y 1)
-1
-1
-1
-2
-1
-1
-2
-1
Gy =
Laplaciano
f f
+ 2
2
x
y
-4
Gradiente simples: Gx + Gy
Gradiente simples: Gx + Gy
Limitao (Thresholding)
Processo de reduo dos nveis de cinzento de
uma imagem:
1 f ( x, y ) > T
g ( x, y ) =
0 f ( x, y ) T
A limitao provavelmente a tcnica mais
utilizada em viso aplicada robtica industrial
e no s.
uma primeira operao para separar o
objecto do fundo.
Limitao dinmica
Qual o threshold que mais informao preserva no
processo de limitao? O valor central...? Nem sempre!
Exemplo de limitao numa imagem com 256 nveis
50
100
150
200
250
T = 128
T = 80
0 - luz
1 - escuro
p'TD = p (d f g ) (a + b + c + e + h ) + p
p 'BD = p (a b d ) (c + e + f + g + h ) + p
p ' = p + b g (d + e ) + d e (b + g )
p' = p [(a + b + d ) (e + g + h ) +
+ (b + c + e ) (d + f + g )]
p'TE = p (e g h ) (a + b + c + d + f ) + p
p'BE = p (b c e ) (a + d + f + g + h ) + p
N8
A segmentao
Operadores Morfolgicos - I
Eroso
objecto
Dilatao
Eroso com N4 e N8
do objecto
Dilatao com N4 e N8
Operadores Morfolgicos - II
Fecho
Abertura
Operadores Morfolgicos IV
Propagao
Mscara
Semente
Variantes de Esqueletizao
No algoritmo de thinning h diversas
combinaes das condies C1, C2 e C3.
S condio C1
S condio C2
C1 + C2
C1 + C2 + C3
Segmentao
A limitao (thresholding) dinmica
Deteco de Arestas
k 1
mkb =
i H (i )
mkf =
i =0
Tk 1 1
H (i )
i =0
i =Tk 1
2 B 1
H (i )
i =Tk 1
i H (i )
1000
500
0
0
50
100
150
200
250
Operaes Morfolgicas I
Isolar objectos com buracos
1.
2.
Determinar o esqueleto no
preservando os pixels terminais
3.
4.
Operaes Morfolgicas - II
Preencher buracos em objectos
1.
Binarizar
2.
3.
4.
5.
3.
4.
Operaes Morfolgicas - IV
Obteno do Exo-esqueleto
1.
2.
3.
Definio de exo-esqueleto:
esqueleto do fundo que contm
os objectos, criando regies
Binarizao
Complemento da imagem
(negao)
Clculo do esqueleto pela
metodologia que elimina as linhas
terminais (condies C1 e C2 na
definio da operao de
thinning)