Professional Documents
Culture Documents
Apontamentos tericos
Vtor M. F. Santos
Universidade de Aveiro
2003-2004
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
3.5.1 A componente de orientao numa transformao........................................................................ 3-25
3.5.2 Formas de expressar a orientao................................................................................................. 3-26
4. CINEMTICA DIRECTA DE MANIPULADORES............................................................................... 4-2
4.1 CINEMTICA DE UM MANIPULADOR .................................................................................................... 4-2
4.1.1 Definio .......................................................................................................................................... 4-2
4.1.2 Espao das juntas e espao cartesiano ............................................................................................ 4-2
4.1.3 O algoritmo da Cinemtica Directa................................................................................................. 4-3
4.2 PARMETROS DE JUNTAS E ELOS ......................................................................................................... 4-3
4.2.1 Eixo de uma junta............................................................................................................................. 4-3
4.2.2 Os quatro parmetros de elos e juntas............................................................................................. 4-4
4.2.3 Alguns exemplos de elos................................................................................................................... 4-5
4.2.4 Os parmetros cinemticos variveis .............................................................................................. 4-8
4.2.5 Transformao i-1Ai associada a um elo .......................................................................................... 4-9
4.3 ATRIBUIO DE SISTEMAS DE COORDENADAS ................................................................................ 4-10
4.3.1 Exemplos simples de sistemas de coordenadas.............................................................................. 4-10
4.3.2 Algoritmo de Denavit-Hartenberg ................................................................................................. 4-13
4.3.3 Representao de Denavit-Hartenberg para um PUMA de 6 DOF .............................................. 4-13
4.4 EXEMPLOS DE CONSTRUO DA CINEMTICA DIRECTA ................................................................ 4-14
4.4.1 Um manipulador a 5 DOF (Microbot Alpha II) ............................................................................ 4-14
4.4.2 Um manipulador do tipo SCARA (4 DOF) .................................................................................... 4-16
4.5 NGULOS FINAIS DE ORIENTAO EM FUNO DAS VARIVEIS DE JUNTA ................................. 4-18
4.5.1 Comparao da matriz RPY(,,) coma parte rotacional da matriz RTH .................................... 4-18
4.5.2 Limitaes de preciso e reformulao ......................................................................................... 4-19
4.5.3 Exemplo de aplicao a um manipulador com 2 DOF em 3 dimenses........................................ 4-21
5. CINEMTICA INVERSA .......................................................................................................................... 5-2
5.1 O PROBLEMA ........................................................................................................................................... 5-2
5.1.1 Resoluo para um manipulador RR no plano ................................................................................ 5-2
5.1.2 Resoluo para o manipulador RR a 3D ......................................................................................... 5-3
5.1.3 Mtodos e condies de existncia de solues. .............................................................................. 5-4
5.1.4 A redundncia cinemtica................................................................................................................ 5-4
5.2 ALGORITMO PARA UMA HEURSTICA DE CINEMTICA INVERSA..................................................... 5-6
5.3 RECURSO A TRANSFORMAES INVERSAS E COMPARAO DOS ELEMENTOS MATRICIAIS ........ 5-7
5.4 SOLUO DE UMA EQUAO USUAL NO PROBLEMA DA CINEMTICA INVERSA ........................... 5-8
5.5 ALGUMAS SOLUES ANALTICAS PADRO ....................................................................................... 5-8
5.5.1 Robot planar de 3 elos ..................................................................................................................... 5-9
5.5.2 Soluo do brao antropomrfico a 3 DOF .................................................................................. 5-10
5.5.3 Soluo do punho esfrico ............................................................................................................. 5-12
5.5.4 Manipuladores com um punho esfrico ......................................................................................... 5-14
6. CINEMTICA DIFERENCIAL ................................................................................................................ 6-2
6.1 A PROBLEMTICA................................................................................................................................... 6-2
6.2 TRANSFORMAES DIFERENCIAIS ....................................................................................................... 6-2
6.2.1 Conceitos.......................................................................................................................................... 6-2
6.2.2 Metodologia de utilizao................................................................................................................ 6-3
6.2.3 Exemplo numrico............................................................................................................................ 6-4
6.3 O JACOBIANO DE UM MANIPULADOR .................................................................................................. 6-5
6.3.1 Determinao do Jacobiano ............................................................................................................ 6-6
6.3.2 Jacobiano inverso ............................................................................................................................ 6-7
6.3.3 Recurso pseudo-inversa ................................................................................................................ 6-9
6.4 SINGULARIDADES ................................................................................................................................... 6-9
7. INTRODUO AO PLANEAMENTO DE TRAJECTRIAS ............................................................ 7-12
7.1 TIPOS DE MOVIMENTO ......................................................................................................................... 7-12
7.2 ABORDAGENS PARA PLANEAMENTO DE TRAJECTRIAS ................................................................. 7-12
7.3 PLANEAMENTO NAS JUNTAS ............................................................................................................... 7-13
7.3.1 Funo para a continuidade da velocidade................................................................................... 7-13
7.3.2 Planeamento nas juntas com pontos intermdios de passagem..................................................... 7-14
7.3.3 Alternativa a polinmios de ordem superior.................................................................................. 7-15
7.4 PLANEAMENTO NO ESPAO OPERACIONAL ...................................................................................... 7-17
ii
7.4.1 Princpios ....................................................................................................................................... 7-17
7.4.2 Problemas no planeamento do espao operacional ...................................................................... 7-19
8. INTRODUO VISO POR COMPUTADOR................................................................................... 8-1
iii
Enquadramento e objectivos da disciplina
A designao robtica industrial surge do estudo dos manipuladores robticos que so usualmente
conhecidos por robots industriais. A disciplina tem como principal objectivo o de dar formao sobre os
princpios da manipulao robtica e a sua fundamentao matemtica. Desse modo, no se aborda uma
linguagem particular para a programao de robots industriais, mas espera-se que, no final, um aluno com
aproveitamento e com conhecimentos rudimentares de programao, consiga aprender e compreender uma
qualquer linguagem para programar manipuladores.
A disciplina enquadra-se no perodo final de uma licenciatura com afinidade automao, e
pressupe bons conhecimentos de lgebra e das grandezas e conceitos de mecnica, bem como uma razovel
capacidade de lidar com objectos no espao a trs dimenses.
Antes de entrar no ponto central do programa, que so a cinemtica directa, inversa e diferencial,
dado um certo destaque a sistemas de coordenadas e transformaes geomtricas para permitir uma
progresso mais slida pelo programa dentro.
Em detrimento da esttica e dinmica de manipuladores, que se reconhece ser de importncia muito
relevante, nomeadamente para o controlo, projecto e concepo de braos robticos, optou-se por fazer uma
introduo viso por computador pelo facto de tal rea se apresentar como das mais importantes na
robtica industrial actual. Igualmente consequncia desse cuidado a relativamente pequena dimenso da
ateno dada ao planeamento de trajectria. Todavia, os fundamentos e mtodos principais esto
contemplados e assegurados.
Na componente prtica os alunos trabalharo em MatLab que se revela uma ferramenta
perfeitamente indicada para estas matrias onde a manipulao de vectores e matrizes , a modo de dizer,
obrigatria.
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
Robtica Industrial V. Santos
1. Introduo
Em portugus h o termo alternativo "rob". O termo eslavo Robota significa trabalhos forados ou
escravos, e teve a sua divulgao numa pea de 1921 de Karel apek.
Numa evoluo do mito passando pelo sonho de apek (entre outros) at fico dos tempos
correntes, o conceito de robot ou servo do homem tem ocupado a mentalidade do ser humano. Um exemplo
contemporneo dessa realidade foi dado pelo grande contributo de Isaac Asimov, que chegou a definir as
Leis da Robtica por volta de 1950:
1 Lei: Um robot no pode maltratar um ser humano, ou pela sua passividade deixar
que um ser humano seja maltratado.
2 Lei: Um robot deve obedecer s ordens dadas por um ser humano, excepto se
entrarem em conflito com a 1 lei.
3 Lei: Um robot deve proteger a sua prpria existncia desde que essa proteco no
entre em conflito com a 1 ou 2 lei.
Dicionrio Webster:
"Dispositivo automtico que executa funes normalmente atribudas a humanos ou uma
mquina com a forma de um humano."
McKerrow
"Robtica a disciplina que envolve: a) o projecto, construo, controlo e programao
de robots; b) o uso de robots para resolver problemas; c) o estudo dos processos de
controlo, sensores e algoritmos usados em humanos, animais e mquinas, e; d) a
aplicao destes processos de controlo e destes algoritmos para o projecto de robots."
Introduo 1-2
Robtica Industrial V. Santos
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, e a expresso Engenharia Robtica mais especfico e refere-se construo de robots e
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.
Introduo 1-3
Robtica Industrial V. Santos
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
Robtica Industrial V. Santos
e o prprio ambiente. Os algoritmos mais comuns recorrem ao chamado controlo PID (proporcional-integral-
diferencial).
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
Introduo 1-5
Robtica Industrial V. Santos
Introduo 1-6
Robtica Industrial V. Santos
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.
Introduo 1-7
Captulo 2
Estrutura e Tipologia de
Manipuladores
Robtica Industrial V. Santos
2.1 Componentes
O brao mecnico constitudo por juntas e elos (joints and links). Os elos so usualmente blocos
alongados rgidos, e so ligados uns aos outros atravs das juntas. Os elos podem variar a sua posio
relativa e esto normalmente associados em srie. Existem variadssimas combinaes de elos e juntas de
acordo com as aplicaes, e que mais adiante se descrevero os tipos mais comuns.
Componente ligado extremidade do brao, isto , ligado ao ltimo elo do manipulador, e que tem
funes adicionais (agarrar ou prender um objecto, ou ainda um dispositivo com funes adicionais mais
especficas). A ponta ou end-effector pode ser do tipo garra (gripper) ou uma ferramenta (tool).
2.1.2.1 Garras
As garras de preenso mecnica (pina) so bastante comuns e eis de seguida alguns exemplos:
2.1.2.2 Ferramentas
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:
Tipos de actuadores
Caracterstica
Elctricos Hidrulicos Pneumticos
Hoje em dia mais
Fcil. Possibilidade de Muito difcil devido a questes de
Controlo facilitado com as electro
ser elaborado. compressibilidade do ar
servo-vlvulas
Velocidades Grande Mdia/Grande Muito grande
Binrio a baixa velocidade
Pequenos/Mdios Grande Pequenos
(aceleraes)
Boa. Limitada pelo uso M, excepto em operaes a
Preciso Boa
de transmisso posies fixas.
Funcionamento em situao Excelente. Trata-se de Bom. No h risco de danificao
Mau. Requer traves.
esttica funcionamento normal. do sistema.
A presena de arcos Sistemas limpos. Risco de poluio
Questes ambientais elctricos pode ser Perigo de fugas de leo. sonora de componentes,
indesejvel. compressores e das fugas.
Custos Relativamente baixos Altos Relativamente baixos
Actuao indirecta
Motor
Actuao directa
Actuao indirecta
2.1.4 Sensores
Potencimetros, V0 ( t ) = K ( t )
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.5 Controlador
Frequentemente, em diversa literatura existe uma simbologia prpria para representar de uma forma
padro um manipulador e as suas juntas. De seguida ilustra-se um caso para um manipulador RRP e mais
uma junta esfrica.
Figura 2.9 - Representao de um manipulador com as juntas RRPS, num total de 6 DOF
Graus de
Junta Tipo liberdade
(DOF)
Ombro (Shoulder) Esfrica 3
Cotovelo (Elbow) Rotacional 1
Pulso (Wrist) Esfrica 3
[
Volume do espao de trabalho: V = A1 (L + A2 ) L2
2
]
Figura 2.12 - Manipulador Cilndrico (ou RPP)
A ( L + L )2 ( L L )2 L > L
1
Volume do espao de trabalho: V =
2 1 2 1 2
2
A ( L1 + L2 ) L1 L2
4
( L1 + L2 ) ( L1 L2 ) L1 > L2
3 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
Esfrico V = L
3
Articulado Horizontal V = 4L3
32 3
Articulado Vertical L
3
Note-se que o volume do espao de trabalho aumenta com o nmero de juntas rotacionais.
Resoluo: o menor movimento incremental de uma junta; normalmente detectvel pelo dispositivo
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.
Sistemas de Coordenadas
z' N
q
z N
y'
p
R
q
x'
R
y
CC SC + CSS SS + CSC 0
SC CC + SSS CS + SSC 0
RPY ( , , ) =
S CS CC 0
0 0 0 1
Robtica Industrial V. Santos
3. Sistemas de Coordenadas
Os sistemas de eixos coordenados a usar so ortogonais e directos. Directos significa que o sentido
positivo dos ngulos medido pela conveno usual (sentido anti-horrio) e que ilustrado na Figura 3-17.
x
x
Figura 3-17 - Sistemas directos de coordenadas a duas e trs dimenses.
P1(x1,y1)
y y
G G
u v
P(x0,y0)
G G
r v P(x0,y0)
G
r
x x
Figura 3-18 - Um ponto e um vector no plano. Ilustrao da soma de um ponto com um vector
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 ainda v = P1 P , e dessa forma
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:
a b 0 1 3 2 12 1 x
y
T = c d 0 T = 0 5 2 7 10 v = z u = 1 4 2 1
0 0 1 4 2 8 3 0
1
Matriz quadrada Matriz no quadrada de Vector
Vector linha
de ordem 3 (3X3) dimenso 3X5 coluna
Das operaes com matrizes h a destacar as que se descrevem a seguir.
um operao que resulta numa matriz cujos elementos so todos afectados pelo mesmo factor
multiplicativo:
a b a b
T = =
c d c d
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:
Adj ( A )
A1 =
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.
O produto interno uma operao que resulta num escalar cujo valor dado por:
v u = vx ux + vy uy = v . u cos
v x u 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).
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
b
c
b
-c a
a
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:
i j
k
a b = det ax ay az = (aybz byaz )i ( ax bz bx az ) j + ( ax by bx ay ) k
bx by bz
ax
onde ( i, j, k ) a base ortonormada do sistema de coordenadas (versores unitrios) e a = ay e
a
z
bx
b = by .
bz
Ainda sobre o produto vectorial pode-se dizer o seguinte:
c = a b = a . b . sin
(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
Qualquer ponto no espao pode ser visto (designado) de diferentes formas consoante o referencial
usado; trata-se sempre do mesmo ponto fisicamente mas a sua descrio que se adequa com o ponto de
vista (referencial). Admitindo dois referenciais designados por R e N respectivamente, um mesmo ponto q
R qx N qx
R
R N
N
pode ser expresso num e noutro por q = qy e q = qy (Figura 3-21).
R N
qz qz
z'
N
q
z y'
R
q
N
x'
R
y
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
p
q1
q2
R
y
efectuou-se uma translao representada pelo vector p e as novas coordenadas do ponto so dadas por
q q px
2x
1x
q 2 = q2y
= q + p . Fazer a translao de um segmento de recta (Figura 3-23) implica calcular as
1y y
q q p
2z
1z z
novas coordenadas dos seus dois extremos e, nesse caso, ter-se-ia as seguintes relaes q A2 = q A1 + p e
qB 2 = qB1 + p .
qB2
qB1 p
z
qA1 p qA2
R
y
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
R
obviamente dada por q =N q + p . Note-se que o vector p est descrito no referencial original (p = Rp),
R
donde, em rigor, se deva procurar escrever q =N q +R p .
z' N
q
z N
y'
p
R
q
x'
R
y
Pela experincia fsica do dia a dia, possvel conceber transformaes geomtricas diferentes da
translao, das quais a rotao o exemplo mais comum. Por exemplo, uma rotao no espao 3D, em torno
do eixo dos zz, de um dado ngulo , Rot(z,), ou uma translao de valor a ao longo do eixo dos yy,
Trans(y,a) = Trans(0,a,0), podem ser ilustradas do seguinte modo:
z = z' z z'
y'
R R
y N y = y'
x' x'
x 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 = ax + by + px
y1 = cx + dy + py
ou, em notao matricial,
x1 a b x px
= +
y
1 c d y py
a b
Designemos por T a matriz quadrada indicada, , e por p o vector usado como termo
c d
independente na expresso anterior. Rapidamente se verifica que a transformao de translao obtida
fazendo T identidade e p o vector de translao. Podemos assim considerar um conjunto de situaes para
valores de T e de p, e procurar relacion-los com transformaes geomtricas conhecidas. Vamos
0
primeiramente admitir um conjunto de situaes onde temos o caso particular de p = 0 = , ou seja, sem
0
translao.
1 0 x1 1 0 x 0 x
se T =
0 1 vir y1 = 0 1 y + 0 = y , ou seja, no h transformao geomtrica alguma;
a matriz identidade no introduz transformao geomtrica.
1 0 x1 1 0 x x
se T = = = ou geometricamente:
0 1 vir claramente y
1 y
0 1 y
P1=(x1,y1) P=(x,y)
=(-x, y)
x
Figura 3-26 - Simetria axial
1 0 x 1 0 x x
se T = vir 1 = = ou geometricamente
0 1 y1 0 1 y y
y
P=(x,y)
x
P1=(x1,y1)
=(-x, -y)
Figura 3-27 - Simetria central
a 0
Uma transformao curiosa dada por T =
0 1 , que resulta em
x1 a 0 x ax
= = .
y1 0 1 y y
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
segmento delimitado pelos pontos A(1,1) e B(2,2) e seja T =
0 1 . imediato concluir que:
3 0 1 3 3 0 2 6
A ' = = e B' =
=
2
0 1 1 1 0 1 2
y
B B'
A
A' x
3.2.2.6 Rotao de 90
0 1
Se T =
1 0 ento temos uma transformao de rotao de 90 em torno da origem do sistema
de coordenadas:
x1 0 1 x 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 2 1 0 1 4 0
A ' = = , B' =
= e C' =
=
4
1 0 1 2 1 0 1 2 1 0 0
y C'
B'
A'
A
C
x
B
Figura 3-29 - Rotao de 90 no plano em torno da origem.
Pode-se verificar que a matriz de rotao de 90 vista anteriormente compatvel com o seguinte:
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 x
Figura 3-30 - Rotao genrica de um ponto no plano
x = l cos ( + ) = l ( cos cos sin sin )
1
y = l sin ( + ) = l ( cos sin + sin cos )
1
x = l cos
como
vir:
y = l sin
x1 = x cos y sin
y1 = x sin + y cos
e finalmente em notao matricial:
x1 cos sin x C S x
= =
S C y
y1 y
sin cos
px
A translao tem um efeito independente das coordenadas. Est associada ao termo p =
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.
Uma soluo para a questo anterior (seco 3.2.4) obtm-se observando a expresso
x1 a b x px
= + . Basta conceber uma forma alargada de definir as coordenadas de um vector e
y
y1 p
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
z kz
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 Componente
de translao
x1 cos sin px x
y = sin cos p y y
1
1 0 0 1 1
Figura 3-31 - Componentes da matriz de transformao a duas dimenses.
cos sin 0
Rot ( ) = sin cos 0
0 0 1
e uma translao pura, no plano, pela expresso:
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
Assim, uma transformao composta ela mesma uma transformao geomtrica.
Observe-se porm que a ordem das multiplicaes (operao das transformaes) no
necessariamente comutativa. -o para as translaes puras e tambm para as rotaes puras no plano (no
espao no !), mas no o para transformaes genricas. De seguida demonstram-se estas situaes uma
por uma.
C S 0 C 2 S 2 0
1 1
T1 T2 = S 1 C 1 0 S 2 C 2 0 =
0 0 1 0 0 1
C 1C 2 S 1S 2 C 1S 2 S 1C 2 0
= S 1C 2 + C 1S 2 S 1S 2 + C 1C 2 0
0 0 1
ou ainda, usando as regras do seno e do co-seno da soma de ngulos:
cos ( + ) sin ( + ) 0
1 2 1 2
T1 T2 = sin ( 1 + 2 ) cos ( 1 + 2 ) 0
0 0 1
1 0 px cos sin 0
T1 T2 = Trans ( px , py ) Rot ( ) = 0 1 py sin cos 0 =
0 0 1 0 0 1
cos sin px
= sin cos py
0 0 1
Mas, por outro lado, a operao na ordem inversa resulta de forma bem diferente:
cos sin 0
1 0 px
T2 T1 = Rot ( )Trans ( px , py ) = sin cos 0 0 1 py =
0 0 1 0 0 1
cos sin p cos p sin
x y
= sin cos px sin + py cos
0 0 1
Os conceitos abordados no caso do plano so, com relativamente pouco esforo, generalizveis para o
espao a trs dimenses. A translao tem mais um grau de liberdade e portanto haver mais uma
coordenada nos vectores. Todavia, a rotao deve agora ser definida em torno de um eixo, havendo, por isso,
3 tipos de rotaes possveis; as rotaes no espao 3D apresentam portanto mais diversidade e
complexidade do que no plano.
Em coordenadas homogneas um ponto agora dado por:
x
y
p = z
1
a b c
px
d e f py
T=
g h i pz
0 0 0 1
a b c
A sub-matriz R de T, R = d e f , representar agora todo o conjunto de rotaes passveis de
g h i
px
afectar a transformao como se descreve mais frente. O vector p = py traduz naturalmente a
p
z
translao.
z Rot(z)
Rot(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
Rotaes Translao
Factor escala local
r11 r12 r13 px
r r r23 p y
T = 21 22
r31 r32 r33 pz
1 2 3 s
Perspectiva / Factor de escala
projeco global
z
R
T
q0 q1
R
y
z'
N
q
z y'
R
q
N
x'
R
y
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:
z y'
R N
TN
x'
R
y
Foi visto anteriormente que a ordem de multiplicao das transformaes era importante (seco
3.3.2) porque se fosse alterada o resultado seria diferente. Ou seja, se uma transformao RT1 for seguida no
tempo de uma transformao RT2, ento isso equivale a ter uma transformao global RT = RT2 RT1. Ou seja,
a transformao final resulta da pr-multiplicao das transformaes aplicadas sucessivamente no tempo.
Porm, pe-se a questo: e o que significar a transformao RT' = RT1 RT2? Isto , em que que
resulta a ps-multiplicao de transformaes? O problema compreende-se melhor com um exemplo, que se
faz no plano a 2D para mais fcil visualizao.
Seja uma transformao T1=Rot(45) e uma transformao T2=Trans(x, a) que usaremos para criar
novos referenciais. A primeira situao que experimentamos TA = T2T1. Significa que primeiro rodamos o
referencial e em seguida lhe aplicamos uma translao, como se ilustra na Figura 3-37, do lado esquerdo. A
segunda situao ser designada por TB = T1T2 e significa que primeiro aplicada uma translao segundo o
eixo dos xx e depois uma rotao em torno da origem. O resultado o ilustrado no lado direito da mesma
figura. No primeiro caso, T2 foi pr-multiplicado a T1, no segundo caso, T2 foi ps-multiplicado.
TB=T1T2=Rot(45)Trans(x,a)
y'' x''
y y
TA=T2T1=Trans(x,a)Rot(45)
x' y'
y''
y' x''
45 45 x'
x x
a a
Figura 3-37 - Diferenas entre pr- e ps-multiplicao de transformaes.
a y'' x''
y
x'
y' 45 x
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.
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 Passo 1 Passo 2 Passo 3
T= Trans(0,0,-1) Trans(1,1,1) Rot(y,90) Trans(1,0,0)
z0
z0 z0 z0
z1
y0
y1 z2 y2 y0
y0 y0
y3 y4
x2 z3 x0 z4
x0 x0 x0 x4
x3
A obteno de um novo ponto pela aplicao de uma dada transformao geomtrica pressupe que o
processo inverso igualmente possvel: trata-se to simplesmente de obter um ponto (o original) a partir de
outro (o que era designado de novo). Matematicamente o processo traduz-se do seguinte modo:
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
1
particular, realce-se a transformao de referenciais de onde sai a expresso: ( R TN ) =R TN1 =N TR .
p1
N
q
p0 R
q
N
TR = RTN-1 N
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
q =N TR R q
R
q =N TR1 N q =R TN N q
N
p0 =N TR R p0 , R
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= =
pz 0 0 0 1
0 0 0 1
ento a sua inversa ser dada por:
p x
( T
ROT ) p y
T1 =
p z
0 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
zN
yS yR R N
xN
xS R S
xR TS TN
S
Figura 3-41 - Problema da insero geomtrica de um pino numa cavidade
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 e Nq consoante o referencial de onde visto. Do exposto na seco 3.4.3 podemos
escrever sucessivamente:
Sq = STN Nq
Rq = RTS Sq
Combinando as duas expresses vem:
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
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.
O O
W
TO TG
H
W W G
R G W
TR H
TG
R R
TH H
O
Figura 3-42 - Transformaes geomtricas de um processo simples de manipulao
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 R
TA
A yA
R
R A
xA
xB q1
R B
zB q0
TB TA
B
yB
B
0 8
R R
Sabendo que A = 6 e B = 2 determinar a transformao necessria a aplicar pea, do
2 2
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:
1 0 0 0 0 0 1 8
0 1 0 6 0 1 0 2
R R
TA = , TB =
0 0 1 2 1 0 0 2
0 0 0 1 0 0 0 1
Portanto, e pelas propriedades da matriz de transformao homognea, podemos concluir que:
0 0 1 2 1 0 0 0 0 0 1 4
0 1 0 2 0 1 0 6 0 1 0 4
B
TA =R TB1 R TA = =
1 0 0 8 0 0 1 2
1 0 0 8
0 0 0 1 0 0 0 1 0 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
Aps a transformao em causa (BTA), as suas coordenadas, sempre no referencial B e que
designamos por BB', sero dadas por:
0 0 1 4 0 4
0 1 0 4 0 4
B
B' =B TA B B = =
1 0 0 8 0 8
0 0 0 1 1 1
mas, no referencial A, que ponto este? Sabendo BTA (e consequentemente ATB), para qualquer ponto
do espao vlida a seguinte relao A
q =A TB B q =B TA1 B q .
Portanto,
0 0 1 8
0 1 0 4
A
TB =B TA1 =
1 0 0 4
0 0 0 1
A A B
e por conseguinte, B ' = TB B ' , ou seja
0 0 1 8 4 0
0 1 0 4 4 0
A
B' = = ,
1 0 0 4 8 0
0 0 0 1 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
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:
0 0 1 4 4 4
0 1 0 4 2 6
B
q1 =B TA B q 0 = =
1 0 0 8 0 4
0 0 0 1 1 1
Mas, pelo raciocnio j executado anteriormente,
0 0 1 8 4 4
0 1
0 4 6 2
A
q1 =A TB B q1 = =
1 0 0 4 4 0
0 0 0 1 1 1
que resulta em Aq1= Bq0 como se esperava.
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 RT B e em seguida deve sofrer BT A para atingir RT A, isto :
RTBBTA=RTA. 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 RT B:
RTB,ARTB = RT A
ou seja,
RTB,A = RTARTB-1
Substituindo, vir:
1 0 0 0 0 0 1 2 0 0 1 2
0 1 0 6 0 1 0 2 0 1 0 4
R
TB,A = =
0 0 1 2 1 0 0 8
1 0 0 10
0 0 0 1 0 0 0 1 0 0 0 1
Bastar agora aplicar aos pontos j usados na situao anterior e confirmar os resultados.
0 0 1 2 8 0
0 1 0 4 2 6
R
TB,A R B = = =R A
1 0 0 10 2 2
0 0 0 1 1 1
O ponto q0, tem no referencial R as coordenadas:
0 0 1 8 4 8
0 1 0 2 2 4
R R B
q 0 = TB q 0 = =
1 0 0 2 0 2
0 0 0 1 1 1
e o ponto q1, tem no referencial R as coordenadas:
0 0 1 8 4 4
0 1 0
2 6 8
R R B
q1 = TB q1 = =
1 0 0 2 4 2
0 0 0 1 1 1
Finalmente, e como se esperava, a transformao operada sobre o ponto q0 resulta no ponto q1, tudo
visto do referencial R:
0 0 1 2 8 4
0 1 0 4 4 8
R
TB,A R q 0 = = =R q1
1 0 0 10 2 2
0 0 0 1 1 1
Numa matriz de transformao geomtrica, como j visto, h uma sub-matriz que traduz a orientao
do novo sistema de coordenadas com respeito ao sistema de coordenadas anterior. Essa sub-matriz de 3x3
contm na verdade os versores das trs direces dos trs eixos.
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:
Podendo efectuar rotaes em torno de trs eixos (Figura 3-32) afigura-se um variado nmero de
combinaes possveis. Esse nmero aumentado pelo facto de cada rotao em torno de um dado eixo poder
ser feita em relao ao referencial original ou ao novo referencial recm-criado.
Aos ngulos de rotao em torno de cada um dos trs eixos chamam-se usualmente ngulos de Euler
e o seu significado depende da combinao de rotaes usadas. O nmero de combinaes distintas de 12 e
de seguida descrevem-se as duas mais usadas.
z Roll(), Rot(z, ) X
Pitch(), Rot(y, )
y Y
Z
Yaw(), Rot(x, )
x
Figura 3-44 - Rotaes RPY e correspondncia usual num punho de mannipulador.
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.
Rot(z, )
z = z'
x''' y
x''
x x'
Figura 3-45 - ngulos de Euler do tipo II (Z-YN-ZN)
Cinemtica Directa de
Manipuladores
y1 L2
y2
2 x1
x2
z1 z2
z0 Elo l d
y0 L1
1 1 1 +/2 0 L1
2 2 0 L2 0
x0
C 0 S1 0 C 2 S2 0 L2C 2 C C C 1S2 S1 L2C 1C 2
1 1 2
S 0 C 1 0 S2 C 2 L2S1C 2
R 0 1 0 L2S2 S1C 2 S1S2 C 1
TH = T2 = =
0 1 0 L1 0 0 1 0 S2 C2 0 L2S2 + L1
0 0 0 1 0 0 0 1 0 0 0 1
Robtica Industrial V. Santos
4.1.1 Definio
A3 R
TH
A2
H
R H
A1 A3
A1 J2
J1 A2
R RT H = A 1 A 2 A3
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 Espao operacional
Cinemtica
directa
Cinemtica
inversa
Para atribuir sistemas de coordenadas a um elo ser preciso levar em conta a sua prpria geometria e
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.
O eixo de uma junta o eixo relacionado com a simetria do movimento inerente prpria junta e que
pode coincidir com o eixo de um ou outro elo ou mesmo ser-lhe ortogonal; de seguida descrevem-se as
situaes tipo. O eixo de uma junta far parte do sistema de coordenadas associados ao elo, e convenciona-se
que seja o eixo das coordenadas zz.
Eixo de junta rotacional
No caso de termos dois elos colineares, ento o eixo da junta coincide com o eixo longitudinal dos elos,
como se ilustra na Figura 4.3 do lado esquerdo. Este tipo de arranjo de junta colinear rotacional muito
usado em punhos de manipuladores. No caso dos elos terem o eixo de rotao perpendicular ao seu eixo
longitudinal (Figura 4.3, lado direito), estamos em presena de um arranjo muito comum para cotovelos, ou
seja o eixo da junta ortogonal.
Para juntas prismticas a abordagem semelhante. Existem os casos de junta colinear ou junta
ortogonal, conforme se ilustra na Figura 4.4, do lado esquerdo e direito, respectivamente.
Um elo um elemento rgido que mantm fixas as relaes entre juntas sucessivas e pode ser
caracterizado com um determinado nmero de parmetros geomtricos/cinemticos no que diz respeito
transformao geomtrica que opera. Os elos intermdios so delimitados por duas juntas; que o precede
na srie de ligaes designa-se aqui por junta anterior, e outra designa-se posterior ou seguinte. Excepes
devem ser levadas em conta para os elos extremos do manipulador, onde s h uma junta delimitadora.
Apresenta-se de seguida uma definio conceptual de cada um dos quatro parmetros cinemticos, qual se
junta uma definio formal que ser usada mais adiante, a propsito do Algoritmo de Denavit-Hartenberg.
Para se compreender a definio formal recorre-se a uma a simbologia prpria, a saber:
Oi Ponto de origem do sistema de coordenadas i.
zi xi Ponto de interseco entre o eixo zi e o eixo xi
Oi , Pi x Distncia do ponto Oi ao ponto Pi medido ao longo do eixo xi
i
Distncia medida ao longo da normal comum entre os eixos das juntas. Traduz o conceito de
afastamento linear entre os eixos das juntas. Formalmente1: li = ( z i 1 x i ) , Oi xi .
O deslocamento de juntas traduz, em geral, a distncia entre elos medida ao longo do eixo da junta
anterior. Definio formal: di = Oi 1 , ( zi 1 x i ) z
i 1
ngulo definido normalmente entre o eixo de um elo e o eixo do elo seguinte. Definio formal:
i = ( x i 1 , x i )
zi 1
ngulo de toro que o elo impe desde o eixo da junta anterior at ao eixo da junta seguinte.
(
Definio formal: i = z i 1 , z i )x i
De seguida apresentam-se vrias geometrias de elos com o intuito de ilustrar os diversos parmetros
que afectam a cinemtica de um manipulador. A definio dos sistemas de coordenadas no muito rgida
excepo da definio do eixo zz que coincide com o eixo da junta, como convencionado. O n-simo elo e a sua
junta anterior (n-sima) so responsveis pela definio do sistema de coordenadas n que se considera
solidrio com o elo. O sistema de coordenadas (n-1) aquele sobre o qual opera a junta n e o respectivo elo n.
Desse modo, o sistema de coordenadas 0 (zero) o primeiro de todos e refere-se base fixa do manipulador.
Regras adicionais sero propostas mais adiante de uma forma estruturada para a definio do
algoritmo de Denavit-Hartenberg. Em todos os casos seguintes, o elo o n-simo da cadeia.
yn
yn-1 Junta n+1
xn
ln 0
xn-1 zn dn = 0
n+1
n = varivel
n = 0
ln
Junta n n
zn-1
yn
Junta n+1
yn-1 xn
dn
ln 0
n+1 dn 0
n = varivel
xn-1 n = 0
zn
Junta n ln
n
zn-1
zn
n+1
n xn
yn ln 0
Junta n+1 dn = 0
n = varivel
yn-1 n 0 (90)
xn-1
ln
Junta n zn-1
n
n+1 dn
zn
xn
yn
n
ln ln 0
Junta n+1 dn 0
yn-1
n = varivel
n 0 (90)
xn-1
Junta n zn-1
xn
yn
n
dn zn
ln = 0
xn-1 dn 0
Junta n+1
n = varivel
n 0 (+90)
zn-1
Junta n yn-1
zn
n yn
dn
n
ln = 0
dn 0 (varivel)
n 0 (+90)
xn n 0 (+90)
Junta n+1
xn-1
zn-1
yn-1
Junta n
dn zn
n ln 0
zn-1
yn dn = varivel
n= 0
n 0 (+90)
Junta n ln
n
zn
ln
yn
Parmetros aparentes:
xn ln 0
dn = varivel
Junta (n+1)
n = 0
n 0 (+90)
yn-1 xn-1
Figura 4.12 Exemplo 8 de elo. Geometria mais elaborada com juntas prismticas ortogonais
ln
zn Parmetros aparentes:
n ln 0
dn yn
dn 0
n= 90 + varivel
n0 = +90 n 0 (+90)
xn-1
xn A trao mais grosso indicam-se os
n ln
reais parmetros no contemplados de facto
Junta (n+1)
zn-1 nos 4 parmetros cinemticos aparentes
acima indicados.
Junta n yn-1
Figura 4.13 - Exemplo 9 de elo. Geometria mais elaborada com juntas rotacionais ortogonais
Junta Junta
Parmetro Smbolo Definio formal
rotacional prismtica
ngulo de junta i varivel fixo i = ( x i 1 , x i )
zi 1
Para efeitos de uma abordagem genrica, diz-se que o vector variveis de junta designado por q e
dado pela seguinte expresso:
T i rotacional
q = q1 q2 qn , qi =
d prismtica
i
Depois do exposto imediato concluir que o elo i, associado sua junta i, realiza uma transformao
geomtrica, dando origem ao referencial i+1, que pode ser decomposta nas quatro operaes elementares:
Rotao i em torno do eixo da junta (zi-1)
Translao longitudinal ao longo do eixo do elo (xi) do seu prprio comprimento (li)
Translao transversal ao longo do eixo da junta (zi) do afastamento entre juntas (di)
Rotao i do eixo da junta (zi) em torno do eixo longitudinal (xi) do elo
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:
C i S i 0 0 1 0 0 li 1 0 0 0
S
i C i 0 0 0 1 0 0 0 C i S i 0
Ai =
0 0 0 0 0 0 1 di 0 S i C i 0
0 0 0 1 0 0 0 1 0 0 0 1
C S iC i S i S i liC i
S C iC i C i S i li S i
i
Ai = (4.1)
0 S i C i di
0 0 0 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.
z0
x0 y0
Figura 4.14 - Elos e juntas de um manipulador do tipo PUMA. Assinala-se a tracejado uma alternativa para o sistema
de referncia.
y0 y1 y2
x2
x0 x1
1 Elo l d
2 1 1 0 l1 0
z0 z1 z2
2 2 0 l2 0
l1 l2
Figura 4.15 - Sistemas de coordenadas e parmetros cinemticos de um robot planar a 2 DOF
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:
1 L cos (1+2)
x
L cos 1
y1 L2
y2
2 x1
x2
z1 z2 Elo l d
z0 1 1 +90 0 L1
y0 L1 2 2 0 L2 0
1
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 0 S1 0
S S 0
1 C 1C ( 90 ) C 1S ( 90 ) 0 S1 1 0 C 1
A1 = =
0 S ( 90 ) C ( 90 ) L 1 0 1 0 L1
0 0 0 1 0 0 0 1
C 2 S2C ( 0 ) S2S ( 0 ) L2 C 2 C 2 S 2 0 L2C 2
S C C ( 0 ) C 2S ( 0 ) L2 S 2 S 0 L2S 2
2 2 2 C2
A2 = =
0 S (0) C (0) 0 0 0 1 0
0 0 0 1
0 0 0 1
C 1 0 S1 0 C 2 S 2 0 L2C 2 C 1C 2 C 1S2 S1 L2C 1C 2
S 0 C 0 S 2 C 2 L2S1C 2
R 1 1 0 L2S2 S1C 2 S1S2 C 1
TH = = (4.3)
0 1 0 L1 0 0 1 0 S2 C2 0 L2S2 + L1
0 0 0
1 0 0 0 1 0 0 0 1
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.
Nos exemplos anteriores, a atribuio dos sistemas de coordenadas foi muito emprica, tendo-se usado
o eixo da junta e procurado que os diversos eixos x sassem sempre colineares para facilitar a definio do
ngulo de junta, conforme definio j referida na seco 4.2.2.; obter as expresses da cinemtica directa a
partir dos parmetros tabelados foi feito sem dificuldades de maior. No entanto, se os manipuladores se
complicarem o procedimento complica-se e dever-se- recorrer a uma metodologia mais sistemtica. O
algoritmo de Denavit-Hartenberg (algoritmo D-H) prope essa metodologia muito bem estruturada para, no
algoritmo da cinemtica directa, obter os sistemas de coordenadas e as transformaes associadas a cada elo
de um manipulador. Para ser aplicado, as juntas tm de estar numeradas por ordem crescente, comeando
pela base do manipulador. Pode ser dividido em 4 etapas fundamentais que se subdividem em vrios passos
elementares repetidos parcialmente em ciclos, consoante o nmero de elos do manipulador. Na Tabela 4.2,
que descreve o algoritmo, admite-se que o manipulador tem n juntas e para ele se definiro n+1 sistemas de
coordenadas, sendo o ltimo o associado mo ou garra.
Estabelecer o sistema de coordenadas (x0, y0, z0) na base de suporte, com z0 ao longo do eixo
1
da junta 1. Convencionar x0 e y0 de forma conveniente.
For i=1 to n-1
2.1 Definir eixo junta i e alinhar zi com eixo da junta i+1
2.2 Definir Oi (origem do sistema de coordenadas) de um dos seguintes modos:
Interseco de zi com zi-1
2 2.3
Interseco da normal comum entre zi e zi-1 com zI
2.4 Definir xi = (zi-1 zi), ou ao longo da normal comum a zi-1 e zi quando so paralelos
2.5 Definir yi = zi xI
Next i
Estabelecer o sistema de coordenadas da mo On (o ltimo). Normalmente, a junta n
rotacional:
3 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
4.1 di = Oi 1 , ( z i 1 x i ) zi 1 ; a varivel de junta se for prismtica
4.2 li = ( zi 1 x i ) ,Oi xi
i = ( x i 1 , x i )
4
4.3 ; a varivel de junta se for rotacional
zi 1
4.4 i = ( z i 1 , z i )
xi
Next i
Tabela 4.2 - Algoritmo de Denavit-Hartenberg para um manipulador com n juntas
Um exemplo interessante de obteno de sistemas de coordenadas por ser visto na Figura 4.18. Trata-
se de um manipulador do tipo PUMA com 6 graus de liberdade, que um robot com grande expresso
prtica a nvel industrial. O exemplo pode parecer algo elaborado mas, sendo um exemplo extrado da
bibliografia, relevante que se faam todavia algumas observaes em relao ao representado.
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
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 dever-
se- 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 i i
1 90 -90
2 0 0
3 90 90
4 0 90
5 0 -90
6 0 0
Figura 4.18 - Exemplo de sistemas de coordenadas para um PUMA de 6 DOF e indicao de e na configurao
ilustrada
LB LC LD
LA
Elo l d
y1 y2 y3 x5 1 1 +90 0 LA
2 2 0 LB 0
x1 x2 x3 3 3 0 LC 0
2 z5
4+90
3 4
4 +90 0 0
5 5 0 0 LD
z1 z2 z3 y5 x4
5
z0 z4
y0
1 y4
x0
Figura 4.19 - Sistemas de coordenadas para um manipulador antropomrfico a 5 DOF
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 0 S1 0
S S 0
1 C 1C ( 90 ) C 1S ( 90 ) 0 S1 1 0 C 1
A1 = =
0 S ( 90 ) C ( 90 ) L A 0 1 0 LA
0 0 0 1 0 0 0 1
Para as matrizes seguintes, tambm imediato chegar s suas expresses:
C 2 S2 0 LB C 2 C 3 S 3 0 LC C 3
S 0 LB S2 S 0 LC S 3
2 C2 3 C3
A2 = , A3 = ,
0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
C ( 4 + 90 ) 0 S ( 4 + 90 )
0 S 4 0 C4 0 C 5 S 5 0 0
C S 0 0
S ( 4 + 90 ) 0 C ( 4 + 90 ) 0 4 0 S4 0 5 C5
A4 = = , A5 =
0 1 0 0 0 1 0 0 0 0 1 LD
0 0 0 1 0 0 0
1 0 0 0 1
A expresso final da transformao geomtrica do referencial da base para o referencial da mo
obtm-se pela seguinte multiplicao:
C 1 0 S1 0 C 2 S 2 0 LB C 2 C 3 S 3 0 LC C 3 S 4 0 C4 0 C 5 S 5 0 0
S 0 C 1 0 S 0 LB S2 S 0 LC S 3
R 1
TH = 2 C2 3 C3 C
4 0 S4 0 S
5 C5 0 0
0 1 0 LA 0 0 1 0 0 0 1 0 0 1 0 0 0 0 1 LD
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
Repartindo o produto em dois termos fundamentais, (A1A2A3)(A4A5), vir:
C C C C 1S2S 3 C 1C 2S 3 C 1S2C 3 S1 LC (C 1C 2C 3 C 1S2S 3 ) + LBC 1C 2 S 4C 5 S 4S 5 C 4 LDC 4
1 2 3
S1C 2C 3 S1S 2S 3 S1C 2S 3 S1S2C 3 C 1 LC ( S1C 2C 3 S1S2S 3 ) + LB S1C 2 C 4C 5 C 4S 5 S 4 LDC 4
R
TH =
S C +C S S2S 3 + C 2C 3 0 LC ( S2C 3 + C 2S 3 ) + LB S2 + LA S 5 C5 0 0
0
2 3 2 3
0 0 1
0 0 0 1
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:
1 0 LC + LB 0
0 0 1 LD 0 0 1 LB + LC + LD
0 0 1 0 1 0 0 LD 0 1 0 0
R
TH = =
0 1 0 0 0 1 0 0 1 0 0 LA
0 0 0 1 0 0 0 1 0 0 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.
Um manipulador muito usado na prtica o SCARA de 4 graus de liberdade, de que se ilustra uma
representao na Figura 4.20. As 4 juntas foram numeradas obedecendo sua ordem de aparecimento a
partir da base. Podem surgir dvidas, na junta 3, se, na verdade, a ordem a representada. Esta
representao assume que a junta rotacional do punho est aps a junta prismtica, e que de facto o caso
mais comum. Porm, tambm se poderia ter o caso que a junta rotacional estivesse "antes" da prismtica,
implicando um sistema mecnico diverso que realmente suportasse a junta linear "sobre" um elo que poderia
rodar em torno de si prprio. Nesse caso a ordem das juntas seria a inversa da indicada e tambm os
parmetros cinemticos seriam outros, mas o resultado final seria o mesmo.
Elo l d
J1 LB LC 1 1 +180 LB LA
2 2 0 LC 0
J2 J4 3 0 0 0 d3
4 4 0 0 LD
LB
LA x1 LC
LA y1 x2
J3 1 2 y2
z1 z2
y0 z0 y3 x d3
z0 z3 3
LD
y0 4 L3
x0 x0 y4 z4 x4
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:
C 1 S1C ( 180 ) S1S ( 180 ) LBC 1 C 1 S1 0 LBC 1
S C C ( 180 ) C S ( 180 ) L S S C 0 L S
1 1 1 B 1 1 1 B 1
A1 = =
0 S ( 180 ) C ( 180 ) LA 0 0 1 LA
0 0 0 1 0 0 0 1
C 2 S2 0 LC C 2 1 0 0 0 C 4 S 4 0 0
S 0 1 0 0 S C4 0 0
2 C2 0 LC S2 4
A2 = , A3 = , A4 =
0 0 1 0 0 0 1 d3 0 0 1 LD
0 0 0 1 0 0 0 1 0 0 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 S124 0 LBC 1 + LC C 12
S C 12 4 0 LB S1 + LC S12
R 12 4
TH = (4.5)
0 0 1 LA d3 LD
0 0 0 1
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.
y0
2
x = LBC 1 + LC C 12
LB
LC 4 y = LB S1 + LC S12
1 y4
x4
x0
Figura 4.21 - Vista esquemtica de cima do manipulador SCARA
Para completar o algoritmo da cinemtica directa delineado na seco 4.1.3 falta ainda o seu ltimo
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.
A expresso genrica de transformao global no espao a 6 dimenses, usando ngulos RPY, dada
por:
transformao transformao
R
TH = = Trans ( px , py , pz ) RPY ( , , ) =
de translao de orientao
= Trans ( px , py , pz ) Rot ( z , ) Rot ( y, ) Rot ( x , ) = (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
=
S C S C C pz
0 0 0 1
A matriz de transformao do manipulador resulta do produto das transformaes intermdias dos N
elos e pode ser expressa do seguinte modo:
nx sx ax px
ny sy ay py n s a p
R
TH = A1A2 ...AN
= n =
z sz az pz 0 0 0 1
0 0 0 1
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.
s
a
Assim, por simples comparao das expresses indicadas anteriormente, pode-se escrever, por
exemplo, o seguinte:
nz = sin = arcsin ( nz )
sz = cos sin = arcsin ( sz / cos ) (4.7)
n = sin cos
= arcsin ( ny / cos )
y
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.
Na seco anterior, nomeadamente na ltima expresso dos ngulos de Euler, nota-se porm que,
quando o ngulo tendo para 90, o co-seno de tende para 0, e algumas das expresses correm o risco de
perder preciso em clculo numrico. Uma hiptese alternativa utilizar mais igualdades extradas das
duas matrizes e us-las aos pares de forma a minimizar esse risco de impreciso numrica. Poderemos ento
ter as seguintes igualdades:
nz = sin
nx = cos cos
sz ny
sz = cos sin e = arcsin ( nz ) , = tan , = tan
ny = sin cos az nx
a = cos cos
z
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
C S 0 0 1 C S 0 0
S C 0 0 S C 0 0
Rot 1 ( z, ) = =
0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
1 0 0 px 1 1 0 0 px
0 1 0 py 0 1 0 py
Trans 1 ( px , py , pz ) = =
0 0 1 pz 0 0 1 pz
0 0 0 0 0 0 0 0
O que resulta em:
C S 0 px nx sx ax px C 0 S 0 1 0 0 0
S C 0 py ny sy ay py 0
1 0 0 0 C S 0
0 0 1 pz
nz sz az pz = S
0 C 0 0 S C 0
0 0 0 0 1 0
0 0 1 0 0 1 0 0 0 1
e finalmente:
n x C + n y S s xC + s y S a x C + a y S 0 C S S S C 0
nyC nx S syC sx S axC ay S 0 0 C S 0
= (4.8)
nz sz az 0 S C S C C 0
0 0 0 1 0 0 0 1
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 :
ny
para : nyC nx S = 0 = arctan
nx
n xC + n y S = C nz
para :
= arctan
n = S n C + ny S
z x
sz = C S
s
para :
= arctan z
a z = C C a 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.
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:
ny SC
= arctan = arctan 1 2 = arctan ( tan 1 ) = 1
nx C 1C 2
nz S 2 S 2
= arctan = 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)
az 2
Cinemtica Inversa de
Manipuladores
z3 y4 x5
PW
LD = d6
5
y3 x4 z5
x3 z4 y5 z6
6
LC n a
s
LB 4 P
2
z1
z2
LA
3
1
z0 y0 PW = P d6 a
x0
n s a p 1
P
0 0 2
0 1 LD W ( A1A2A3 )
3
0 1
( A1A2 A3 ) R 3
4
n s a p 3 R 6 = n 3 s3 a 3
0 1 0
R3 R6 5
0 0 0 1
( A 4 A5 A6 ) 6
Equation Section 5
Robtica Industrial V. Santos
5. Cinemtica Inversa
5.1 O Problema
Cinemtica
directa
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.
Dos manipuladores com interesse prtico o caso mais simples o do manipulador planar a dois graus
de liberdade (2-DOF). Ilustra-se de seguida o processo de determinar a sua cinemtica inversa, quer dizer, o
valor das suas juntas 1 e 2 em funo da posio (x,y) da sua extremidade.
(x,y)
2
L2
L1
1
Partindo das equaes da cinemtica directa, que so de fcil formulao, e que foram anteriormente
deduzidas, o processo o seguinte:
x = L1 cos 1 + L2 cos ( 1 + 2 )
(5.1)
y = L sin + L sin ( + )
1 1 2 1 2
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
2 = arccos (5.2)
2L1L2
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 tan B
tan ( A B ) =
1 + tan A tan B
L2
L2 sin 2
tan =
L1 + L2 cos 2
L1
1 y
tan =
x
Figura 5.3 - ngulos auxiliares para determinao da
cinemtica inversa do manipulador RR
y L2 sin 2
x L1 + L2 cos 2 y ( L1 + L2 cos 2 ) xL2 sin 2
tan ( ) = tan ( 1 ) = =
y L2 sin 2 x ( L1 + L2 cos 2 ) + yL2 sin 2
1+
x L1 + L2 cos 2
ou seja
y ( L1 + L2 cos 2 ) xL2 sin 2
1 = arctan (5.3)
x ( L1 + L2 cos 2 ) + yL2 sin 2
igualada matriz de transformao geral que indica a postura no espao operacional com posio e
orientaes.
y2
2 C 1C 2 C 1S 2 S1 L2C 1C 2
x2
nx sx ax px
S C
1 2 S1S 2 C 1 L2S1C 2 ny sy ay py
= nz
z2 R
TH = sy ay pz
z0 S2 C2 0 L2S 2 + L1
0
y0 0 0 1
1 0 0 0 1
x0
Figura 5.4 - O manipulador RR no espao 3D
L2C 1C 2 = px py py
tan 1 = 1 = arctan (5.4)
L2S1C 2 = py px px
A obteno de 2 pode ser imediata se se considerarem as componentes de orientao, bastando
atender a nz e sz e arco-tangente do seu quociente mas, com base no termo pz da posio, viria tambm:
pz L1
2 = arcsin (5.5)
L2
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.
Quando um manipulador pode atingir uma dada posio no espao com mais de que uma configurao
das juntas, diz-se que h redundncia. Diz-se que uma redundncia uma posio alternativa devido a uma
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)
'1
Quando o manipulador tem um nmero infinito de configuraes para uma dada posio da mo diz-
se 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).
2 6
5
1
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.
Dadas as dificuldades para a obteno da cinemtica inversa para um caso geral, o que se prope
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- Equacionar a matriz de transformao geral e a matriz de transformao do manipulador
2- Procurar em ambas as matrizes:
Elementos que envolvam um s varivel de junta
Pares de elementos que, quando divididos, produzem uma s expresso numa varivel de
junta (e que se possa usar a funo atan2 de preferncia)
Elementos ou suas combinaes simplificveis trigonometricamente
3- Equacionar elementos nas duas expresses
4- Repetir o processo para todos os termos identificados em 2
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
Sim
Nem sempre os passos apresentados so suficientes ou mesmo os ideais para obter as expresses para
todas as variveis de junta. Nesses casos necessrio recorrer a alguns artifcios de manipulao de
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.
Uma das tcnicas possveis para chegar a expresses de cinemtica inversa, inclusive no mbito do
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 mais interessantes. Isto equivale a dizer que uma primeira reorganizao seria
R
TH An1 = A1 A2 ...An 1 , ou em seguida R
TH An1 A 1
n 1 = A1 A2 ...An 2 , e assim por diante
C 1 0 S1 0 1 C 2 S 2 0 L2C 2
S 0 C 1 0 n s a p S C2 0 L2S2
1
= 2
A11 0 T2 = A2 0 0 0 1 (5.6)
0 1 0 L1 0 0 1 0
0 0 0 1 0 0 0 1
C 1 S 1 0 0 n x sx ax px C 2 S 2 0 L2C 2
0 0 1 L ny sy ay py S2 C 2 0 L2S 2
1 =
S1 C 1 0 0 nz sz az pz
0 0 1 0
0 1 0 0 0 1
0 0
0 0 0 1
nxC 1 + ny S1 sxC 1 + sy S1 axC 1 + ay S1 pxC 1 + py S1 C 2 S 2 0 L2C 2
nz sz az pz L1 S2 C 2 0 L2S 2
= (5.7)
nx S1 nyC 1 sx S1 sy S1 ax S1 ayC 1 px S1 pyC 1 0 0 1 0
0 0 0 1
0 0 0 1
Tentando recorrer apenas a termos de posio (pelas vantagens j referidas), vir o seguinte par de
expresses.
pxC 1 + py S1 = L2C 2
(5.8)
pz L1 = L2S 2
do qual se obtm imediatamente a expresso para 2 admitindo que j se tinha obtido 1, por exemplo,
usando (5.4):
pz L1
2 = arctan (5.9)
pxC 1 + py S1
A vantagem imediata da expresso (5.9) em relao expresso (5.5) que se usa uma funo arco-
tangente; reala-se portanto que esta tcnica das matrizes inversas pode oferecer a possibilidade de solues
alternativas, e por vezes at as nicas possveis.
Da expresso (5.7), entre outras, verifica-se que existe um tipo de equao trigonomtrica que surge
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
1 cos 1 + cos
k = tan ; sabendo que sin2 = e que cos2 = e, portanto, que
2 2 2 2 2
1 cos 1 k2
tan2 = = k 2 , imediato provar que cos = , bastando usar mera substituio para o
2 1 + cos 1 + k2
1 cos
1
1 + cos 1 + cos 1 + cos 2 cos
verificar: = = = cos .
1 cos 1 + cos + 1 cos 2
1+
1 + cos
2k
De forma similar se prova que sin = , mais uma vez recorrendo a simples substituio:
1 + k2
1 cos 1 cos
2 tan 2 2 ( 1 + cos )
2 = 1 + cos = 1 + cos = ( 1 + cos ) 1 cos =
1 cos 1 cos 1 + cos + 1 cos 1 + cos
1+ 1+
1 + cos 1 + cos
( 1 + cos )2 ( 1 cos )
= = 1 cos2 = sin
1 + cos
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 k2 + k2 k2
= 2 arctan 2 1 2 3 (5.11)
k1 + k3
graus de liberdade, por exemplo. Alm das apresentadas, outras solues mais especiais podem ser
encontradas na literatura indicada na bibliografia.
A cinemtica inversa de um robot planar de trs eixos determina as expresses de [1, 2, 3] dado [x,
y, ]. Se a orientao no fosse dada ento haveria redundncia, e o brao teria um nmero infinito de
solues. Note-se para j que a orientao dada por:
= 1 + 2 + 3 (5.12)
(x,y)
L3
2 3
L1 L2
1 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
(5.13)
PWy = y L3S
Mas, tendo em conta as expresses geomtricas (5.1) j determinadas para o manipulador planar RR,
pode tambm escrever-se o seguinte:
PWx = L1C 1 + L2C 12
(5.14)
PWy = L1S1 + L2S12
ou, desenvolvendo,
PWx = L1C 1 + L2C 1C 2 L2S1S 2
(5.15)
P = L1S1 + L2C 1S 2 + L2S1C 2
Wy
As expresses (5.15) levam j conhecida soluo para 2 como visto em (5.2).
2 2
PWx + PWy L21 L22
2 = arccos (5.17)
2L1L2
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:
O brao antropomrfico a 3 graus de liberdade consta de trs juntas rotacionais num arranjo similar
ao ilustrado na Figura 5.10, onde PW o ponto extremo do manipulador (onde se poder fixar um punho
wrist).
LB
LC
2 y3
LA PW
3 x3
z3
1
z0 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:
C 1 ( LC C 23 + LBC 2 )
pWx
PW
= pWy = S ( L C + L C ) (5.20)
1 C 23 B 2
p L S23 + L S2 + L
Wz C B A
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
2
pWx 2
+ pWy + ( pWz LA ) = ( LBC 2 + LC C 23 ) (C 12 + S12 ) + ( LB S 2 + LC S23 )
2
2
pWx 2
+ pWy + ( pWz LA ) = L2BC 22 + LC2 C 23
2
+ 2LB LC C 2C 23 + L2B S 22 + LC2 S 23
2
+ 2LB LC S 2S 23
2
2
pWx 2
+ pWy + ( pWz LA ) = L2B + LC2 + 2LB LC (C 2C 23 + S2S 23 )
2
2
pWx 2
+ 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
pWx 2
+ pWy + ( pWz LA ) = L2B + LC2 + 2LB LC (C 22C 3 + S22C 3 )
2
2
pWx 2
+ pWy + ( pWz LA ) L2B LC2
3 = arccos
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:
2 2
pWx + pWx = LBC 2 + LCC 23 = LBC 2 + LCC 2C 3 LC S 2S 3
pWz LA = pWx ' = LB S 2 + LCC 2S 3 + LCC 3S2
pWx 2 + pWx 2 + LC S 2S 3
C2 =
LB + LCC 3
pWx 2 + pWx 2 + LC S 2S 3
pWx ' = LB S 2 + LCC 3S2 + LC S 3
LB + LCC 3
( LB + LC C 3 ) ( pWz LA ) LC S 3 pWx
2 2
+ pWy
S2 = 2
2
pWx 2
+ pWy + ( pWz LA )
( LB + LC C 3 ) pWx
2 2
+ pWy + LC S 3 ( pWz LA )
C2 = 2
2
pWx 2
+ pWy + ( pWz LA )
S2
Daqui sai naturalmente 2 = arctan .
C2
Tendo havido uma redundncia em 1 e outra em 3 o nmero total de solues de 22=4.
O punho esfrico (3 DOF) tem os 3 eixos a intersectarem-se num ponto, e pode ser encarado como um
subsistema de um manipulador a 6 DOF em que a matriz de transformao resulta do produto das matrizes
associadas aos ltimos 3 elos 3 T6 = A4 A5 A6 .
z3 y4 x5
PW P
LD = d6
5
x6
y3 x4 z5
x3 z4 y5 z6
6 y6
n a
s
4
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 l D
4 4+90 +90 0 0
5 5+90 +90 0 0
6 6 0 0 LD
Relembrando e usando a matriz de transformao de um elo, resultam daqui as seguintes matrizes:
S 4 0 C4 0 S 5 0 C 5 0 C 6 S 6 0 0
C4 0 C 5 0 S5 0 S 0 0
0 S4 6 C6
A4 = A5 = A
6 =
0 1 0 0 0 1 0 0 0 0 1 LD
0 0 0 1 0 0 0 1 0 0 0 1
S 4S 5 C 4 S 4C 5 0 C 6 S 6 0 0
C 4S 5 S 4 C 4C 5 0 S 6 C 6 0 0
e a expresso final: A4 A5A6 =
C 5 0 S5 0 0 0 1 LD
0 0 0 1 0 0 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 = (5.21)
C 5C 6 C 5S 6 S5 S 5LD
0 0 0 1
Comparando os termos respectivos com a matriz de transformao geral para a orientao:
n s 3x a 3x
3x
3
R 6 = n 3y s 3y a 3y = n 3 s3 a 3 (5.22)
n s 3z a 3z
3z
obtm-se as expresses para as diversas variveis de junta:
S C = a 3x
4 5 a
4 = arctan 3x (5.23)
C 4C 5 = a 3y a 3y
observando que a 3z = S 5 e que a 32x + a 32y = C 52 , e portanto que
de imediato se pode escrever o seguinte, fazendo notar que h, por isso, duas solues para 5.
a 3z
5 = arctan (5.25)
2
a 3x + a 32y
Ainda observando e comparando (5.21) e (5.22) se deduz que:
s 3z
6 = arctan (5.26)
n 3z
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().
a 3x
'4 = arctan
a 3y
s3z
'6 = arctan
n 3z
Foi j referido que a soluo geral da cinemtica inversa de um manipulador pode tornar-se complexa
e at mesmo impossvel de resolver analiticamente. Todavia, uma parte considervel dos manipuladores
usados na prtica tm aquilo a que se chama um punho esfrico, isto , os eixos das trs juntas terminais
(associadas fundamentalmente orientao) intersectam-se num ponto. Com base nos resultados observados
no manipulador planar RRR, admite-se ser possvel definir um ponto ao longo de um manipulador cuja
posio pode ser expressa em funo da orientao e posio do end-effector e tambm funo de um nmero
limitado de variveis de junta! Isto equivalente a dizer que o problema da cinemtica inversa nesses
manipuladores decomposto em duas partes desacopladas entre si: posio e orientao.
Para o manipulador com punho esfrico, a escolha natural recai sobre o ponto de interseco dos trs
eixos das juntas terminais, ou seja, o ponto PW na Figura 5.12. Como previsto anteriormente, foi a
"concatenao" de dois sub-componentes que deu origem a este robot; note-se todavia que o processo carece
de um passo adicional. O sistema de eixos nmero 3 diferente no manipulador antropomrfico a 3 DOF
(onde sistema de eixos terminal) e no punho esfrico (onde sistema de eixos inicial). A caixa na Figura
5.12 ilustra essa diferena, mas observe-se contudo que a origem do sistema a mesma. Assim, no bastar
multiplicar os termos A1A2A3 do brao por A4A5A6 do punho, necessrio corrigir a discrepncia do sistema
de eixos nmero 3, por exemplo, atravs de uma ps-multiplicao de A3 por uma matriz que consta
simplesmente de duas rotaes: 90 em torno de y3 seguido de 180 em torno de x3 (original), ou seja:
1 0 0 0 0 0 1 0 0 0 1 0
0 1 0 0 0 1 0 0 0 1 0 0
Rot ( x ,180 ) Rot ( y, 90 ) = =
0 0 1 0 1 0 0 0 1 0 0 0
0 0 0 1 0 0 0 1 0 0 0 1
Ainda relativamente Figura 5.12 observe-se que os sistemas de eixos no obedecem todos
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
6
LC n a
s
LB 4 P
y3 x3 z3
2
PW PW y3
z1 z3 x3
z2
LA
3 Sistema de eixos n 3
Esq: Original no robot antropomrfico a 3 DOF
1 Dir: Variante no manipulador a 6 DOF
representado
z0 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).
PWx
R3
0
PWy
A1A2 A3 =
(5.28)
PWz
0 0 0 1
Finalmente, a obteno das variveis 4, 5 e 6 faz-se como no caso do punho esfrico (seco 5.5.3)
porque se pode saber o valor da sua componente de orientao que tem o valor 3 R 6 = 0 R 1
3 R , como a
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 i i i i i i i
i i i i i i i i i
T1T2 = i
i i i
=
i i i
i i
0 0 0 1 0
0 0 1
0 0 0 1
Desta forma, pode tambm escrever-se que a componente de orientao da matriz de transformao
do manipulador dada por R = 0 R 3 3 R 6 e portanto: 3 R 6 = 0 R 1
3 R . Recorde-se que se conhece R da
0
cinemtica directa do manipulador completo, e R 3 da cinemtica directa aps as primeiras 3 juntas
3
atravs da expresso (5.28). Tendo este valor concreto para R 6 bastar resolver a cinemtica inversa do
punho esfrico e assim obter 4, 5 e 6.
O processo de cinemtica inversa de um manipulador antropomrfico (com at 6 DOF) pode ento ser
decomposto em duas fases: posicionamento do punho e sua orientao e que, em resumo, podemos
esquematizar simbolicamente nos seguintes dois passos principais, onde inclusivamente se assinalam, em
cada caso com um bordo circundante, quais as partes da matriz de transformao geral que se utilizam nas
operaes:
n s a p 1
Passo 1: P 2
0 0 0 1 LD W ( A1A2A3 )
3
( A1A2 A3 ) 0 R 1
3
4
n s a p 3 R 6 = n 3 s3 a 3
Passo 2: 0 1 0
R3 R6 5
0 0 0 1
( A 4 A5 A6 ) 6
Cinemtica Diferencial de
Manipuladores
d2
dz
d1
2 zz
1 yy
L2S1C 2 L2C 1S 2
xx dx
dy d 1
dy = L2C 1C 2 L2S1S 2
dx d 2
dz 0 L2C 2
dx
d 1 1 S1 C 1 0
dy
d 2 = L2C 2 1
0 0
dz
Robtica Industrial V. Santos
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 vice-
versa? 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.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:
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 d
d t
D = = dx dy dz x y z (6.6)
Nova Localizao = d R TN R
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:
R
Nova Localizao = TN + d R TN (6.8)
Igualando as expresses (6.7) e (6.8) vir em sequncia:
R
TN + d R TN = d R Trans d R Rot R TN
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 = R
TN d N Trans d N Rot = R
TN ( I d N Trans d N Rot ) = R
TN N
(6.11)
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
t
em ordem ao tempo. Claramente, se r = x y x ento,
dr dx dy dz dd t
d
= onde se identificam 3 velocidades lineares e 3 velocidades angulares.
dt dt dt dt dtdt dt
dr
Se se pensar que o vector r indica a postura da extremidade de um manipulador, indicar as
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)
onde J designado o Jacobiano da funo vectorial F . Se F for expressa por
( r1, r2,..., rm ) = F ( q1, q2,..., qn ) , ou de modo equivalente ri = fi ( q1, q2,..., qn ), i = 1,2,..., m , o que, na
linguagem dos manipuladores corresponde a assumir m variveis cartesianas e n juntas, o Jacobiano tem a
seguinte forma:
r1 r1 r1
q1 q 2 q n
r2 r2 r2
J = q1 q 2 q n (6.13)
rm rm rm
q1 q 2 qn
Para melhor entender esta formulao basta recordar o conceito de diferencial total de uma funo de
f f
vrias variveis como, por exemplo, a duas: x = f ( 1, 2 ) , donde se tem dx = 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 directa:
d2
x = L1C 1 + L2C 12
d1 dy
y = L1S1 + L2S12
dx x
Figura 6.1 Incrementos cartesianos e nas juntas de um manipulador RR planar.
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:
d2
dz
Cinemtica directa:
x = L2C 1C 2
d1
2 zz
y = L2S1C 2
yy
1
z = L2S2 + L1
xx dy
dx
Figura 6.2 - Manipulador RR a 3D e os acrscimos diferenciais cartesianos e nas juntas
Pela metodologia descrita anteriormente pode chegar-se sem grandes dificuldades seguinte
expresso de cinemtica diferencial:
dx J 11 J 12 d 1
= (6.17)
dy J 21 J 22 d 2
Adj ( J )
Pela definio de inversa de uma matriz ter-se-: J1 = , onde a adjunta de uma matriz a
J
J 22 J 21 t J 22 J 12
matriz transposta dos co-factores, ou seja: Adj ( J ) = =
J 21 J 11 . Por seu lado, o
J J 11
12
determinante de J pode ser j obtido substituindo a sua real expresso dada em (6.15) e vir:
y
1 = arctan
x
z L1 (6.21)
2 = arctan x C 1 + y S1
dx S1 + dy C 1 dx S1 + dy C 1 S1 C
d 1 = = = dx + 1 dy (6.23)
L2C 1C 2 C 1 + L2S1C 2 S1 L2C 2 L2C 2 L2C 2
Note-se que semelhante resultado poderia ser obtido pela diferenciao directa da expresso da
1
arco-tangente em (6.21) bastando desde logo recordar que d 1 = dx + 1 dy :
x y
d 1 =
1
( xy )dx + 1 + 1 y 1
dy = 2
y
2 dx + 2
x
dy (6.24)
( ) (x )
2 2 2
1+
y x x +y x + y2
x
recorrendo tambm aqui a termos da cinemtica directa, aps substituio, vir:
y x S1 C
d 1 = dx + 2 2 dy = dx + 1 dy (6.25)
L22C 22 L2C 2 L2C 2 L2C 2
A obteno do diferencial da varivel 2 podia-se fazer pela derivao da segunda expresso em (6.21)
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:
1
d 2 = dz (6.26)
L2C 2
Pode ento escrever-se a expresso final englobando o Jacobiano inverso:
S1 C1 dx
d 1 0 dx S1 C 1 0
L2C 2 L2C 2 1 dy
d 2 = 1
dy =
L2C 2 0 0 1
(6.27)
0 0
L2C 2 dz dz
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).
Mesmo com toda a metodologia apresentada, podem restar os casos em que o Jacobiano directo no
quadrado, logo sem possibilidade de definir a matriz inversa. Para esses casos pode-se tentar recorrer ao
conceito de pseudo-inversa de uma matriz que se define do modo seguinte.
Pseudo-inversa de uma matriz (m x n) de caracterstica mxima (isto com rank(A) = min(m,n), ou
ainda que o nmero de linhas ou colunas linearmente independentes seja igual menor das suas dimenses)
(
A t AA t )1 mn
a matriz designada por A+ tal que: A + = A 1 m=n .
t 1 t
( A A ) A 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
+ +
Na equao J x = b , a soluo x = J b minimiza o valor de J x b (i.e., J J b b ), ou seja,
6.4 Singularidades
Como visto, por exemplo nas expresses dos Jacobianos em (6.15) ou (6.16), e pela prpria definio
do Jacobiano, se as relaes da cinemtica directa forem diferenciveis (como o so praticamente todos os
modelos contnuos), ento o Jacobiano sempre definido. Por outro lado, o Jacobiano inverso mesmo quando
identificado por uma expresso analtica, pode nem sempre ficar definido para todos os valores das variveis
de junta, ou seja, para todas as configuraes do manipulador. Para entender este facto, basta atentar na
expresso (6.20) para o manipulador RR planar onde, se 2 for 0 ou 180, o Jacobiano inverso no tem
definio, ou ainda na expresso (6.27) para o manipulador RR no espao a 3D onde se 2 for 90 tambm
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
y ser interrompida na
singularidade
2 zz
1 yy
x
xx
C 12 S S1 C
d 1 = dx + 12 dy d 1 = dx + 1 dy
L1S 2 L1S 2 L2C 2 L2C 2
L C + L2C 12 L S + L2S12 1
d 2 = 1 1 dx 1 1 dy d 2 = dz
L1L2S2 L1L2S 2 L2C 2
Figura 6.3 Situaes de singularidade para dois manipuladores nos limites do espao de trabalho.
Introduo ao
planeamento de
trajectrias
(t)
f
tf t 2 ( 0 )
b tb = f f
2 4
0
0 tb tf t
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!
Planear uma trajectria no espao das juntas significa determinar a evoluo de cada junta ao longo
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 ; mais ainda, pode desejar-se uma acelerao inicial
( t0 ) = 0 e tambm uma acelerao final ( t f ) = f .
( 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.
(tf)
0
(0) t
0 tf t 0 tf t tf
Figura 7.1- Curvas de posio, velocidade e acelerao
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 (7.4)
0 = a 0 ( t f ) = a 0 + a1t f + a2t f2 + a 3t f3 = f
e
0 = a1 = 0 ( t f ) = a1 + 2a2t f + 3a 3t f2
o que resulta sucessivamente em:
2
t = 0 + a2t f2 + a 3t f3 = 3 a t 3 + a t3
a 3 = 3 ( f 0 )
f 0 = a2t f2 + a 3t f3
f 0 3 f 3 f t
2
f
0 = 2a2t f + 3a 3t f2 2a2 = 3a 3t f
3
3
a = a 3t f a2 = 2 ( f 0 )
2
2
tf
Pode-se portanto fazer as substituies todas em (7.1) e obter o seguinte polinmio para a evoluo
das juntas:
3 2
( t ) = 0 + ( f 0 )t 2 3 ( f 0 )t 3 (7.5)
t f2 tf
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
Por vezes, pode ser conveniente ou necessrio especificar uma trajectria onde haja pontos
intermdios de passagem da junta (via points) onde a sua velocidade no tem necessariamente de ser zero.
Um troo completo entre um ponto de partida e um ponto de chegada constituir-se-, pois, pela concatenao
de sucessivas funes individuais, mas agora a velocidade final e inicial nesses diversos troos 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 das
0 A B f
juntas
Cinemtica
Cinemtica
Cinemtica
Cinemtica
inversa
inversa
inversa
inversa
Espao
r0 rA rB rf
operacional
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.
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
0 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
A 0 A
porque a velocidade mdia entre 0 e A, isto , , 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:
1 C B
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.
(t)
tf
f
( t )
0
0 t
( 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
f
m (t)
Troo
b parablico b
0
0 tb tm tf t 0 tb tf t
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 (7.7)
2
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:
m b
( tb ) = b = tb = (7.8)
tm tb
Ainda da Figura 7.5 claro que:
tf f 0
tm = e m = 0 + (7.9)
2 2
Por outro lado, com base em (7.7), tambm bvio que:
1
b = 0 + tb2 (7.10)
2
Substituindo (7.9) e (7.10) em (7.8), vir uma equao do segundo grau em tb:
tf 0 1
tb2 + tb = 0 + f 0 tb2 (7.11)
2 2 2
ou ainda
tb2 tbt f + ( f 0 ) = 0
cuja soluo dada por:
tf 2t f2 4 ( f 0 )
tb = (7.12)
2 2
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 )
(7.13)
t f2
A expresso (7.12) poderia ainda apresentar-se numa forma com interpretao mais intuitiva como a
seguinte:
tf t 2 ( 0 )
tb = f f (7.14)
2 4
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
4 ( f 0 )
radical zero, ou seja, quando a acelerao dada por: = .
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.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
7
x (t ) = t 7
seguinte forma: 4 , t 0, , como se ilustra na Figura 7.6.
y ( t ) = 2t 8
y
Cinemtica inversa do manipulador RR
x 2 + y 2 L21 L22
2 = arccos
2L1L2
x
7/4
Figura 7.6- Execuo de um segmento no espao operacional
2t ( 1 + cos 2 )
1 ( t ) = arctan
7
4
t sin 2
( )
( )
7 t ( 1 + cos 2 ) + 2t sin 2
4
( t)
2
7
+ 4t 2 2
4
2 ( t ) = arccos
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)
-60 90
80
-65
70
60
-70
50
-75 40
30
-80
20
10
-85
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7
t t
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.
Regio
inatingvel
Espao de
trabalho
Fase de grande
velocidade
xR
C
q= ( R
TC )1
R q = C TR R q
Plano da
xC cmara
C
( )
C
yC q 1
c h = P R TC R q = P C TR R q
q
zC
R R
q
yR zR
p ' = p + b g (d + e ) + d e (b + g )
Robtica Industrial V. Santos
NB: Nas pginas seguintes incluem-se os slides apresentados na aula. Notar que um mero resumo
da matria e no constitui elemento de estudo suficiente. Os apontamentos tirados das aulas e os livros e
restante bibliografia recomendados so as referncias fundamentais.
8-1
Robtica Industrial
Introduo Viso por Computador
Dezembro 2003
Vtor M. F. Santos
Sumrio
Parte I
Definio e reas da viso por computador
A imagem digital
Tcnicas de iluminao
Parte II
Geometria da formao de imagem
Parte III
Relaes entre os elementos de imagem (pixels)
Ferramentas para processamento espacial de imagem: filtros e
tcnicas.
Parte IV
Princpios de segmentao e morfologia
Algumas Referncias
http://www.ph.tn.tudelft.nl/Courses/FIP/frames/fip.html
Viso por Computador Parte I
Introduo e Generalidades
Definio e importncia
1-Percepo
Baixo
2-Pr-processamento
Reduo de rudo ou realce de detalhes
3-Segmentao
Partio da imagem em zonas de interesse (objectos)
Mdio
nvel
4-Descrio
Determinao de propriedades de objectos (tamanho, forma,)
5-Reconhecimento
Identificao de objectos descritos a partir de uma base de dados.
nvel
Alto
6-Interpretao
Atribuir significados a um conjunto de objectos reconhecidos
Formao da imagem
A retina a superfcie
sensvel luz
Os msculos deformam
a lente (cristalino) para
mudar o plano focal e
assim ajustar-se
distncia dos objectos
A ris controla a
quantidade de luz que
entra, mudando o
dimetro da pupila
Imagem atravs de uma Lente
Importncia:
Podem simplificar os algoritmos a usar eliminando
sombras, reflexes especulares, etc.
Tcnicas principais:
Iluminao difusa (no directa)
Para objectos de superfcies suaves e regulares
Retro-iluminao (contraluz)
Para imagens a dois nveis onde s a geometria dos
objectos tenha interesse
Luz estruturada: projeco de pontos, linhas ou
grelhas na superfcie de trabalho
til para a percepo tridimensional de objectos.
Tcnicas de Iluminao-Ilustrao
Iluminao difusa
Eliminar sombras
Luz estruturada
Anlise geomtrica
Retro-iluminao
Alto contraste-imagens binrias
Iluminao direccionada
Realce de propriedades (geometria, textura)
Luz Estruturada: Princpios - I
Projeco de padres visveis numa superfcie
Projeco com feixes laser ou outras fontes coerentes
Percepo dos padres da imagem visvel e extraco das
propriedades
Luz Estruturada: Princpios - II
Cmara posicionada
distncia r (desconhecida) do
objecto e altura h
(conhecida) do feixe laser
y coordenada do ponto do
padro luminoso na imagem
obtida
Por simples relao de
tringulos, sabendo a
distncia focal f da cmara,
determina-se a distncia r do
objecto
Exemplos de
Retro-Iluminao e de Luz Estruturada
x X X Distncia focal -
= =
Z Z w - (X,Y,Z)
y Y Y
= =
Z Z c - (x,y)
z,Z
X Y Centro da lente
x= y=
Z Z
Geometria da Imagem - II
w = ( TC )
1 w
C R R
w = TR
C R
w zC
c = P w = P ( TC ) R w = P C TR R w
C R 1
yR zR
Viso por Computador Parte III
D8 (ou chessboard) (
D8 ( p, q ) = max p x q x , p y q y )
Pr-processamento de imagem
Abordagens
Espacial - sobre os pixels da imagem
Na frequncia - Transformadas de Fourier (o se
abordam aqui!)
Na abordagem espacial
Criao de uma nova imagem g(x,y) = h[ f(x,y) ]
h() : operador de pr-processamento que opera numa
vizinhana de cada pixel
Uso de mscaras de convoluo (ou janelas ou
filtros)
Matriz de coeficientes apropriados a determinado tipo de
tratamento ou deteco de propriedades
Princpio da utilizao de um filtro
w1 w2 w3
w4 w5 w6
w7 w8 w9
Filtro para detectar pontos isolados
Equalizao
alterao do valor de cada pixel para uniformizar a distribuio
de nveis de cinzento na imagem
Histogramas locais em vez de global
Para afectar a imagem parcialmente sem levar em conta todo
o resto da imagem
Aplicao de um histograma pr-definido
Por exemplo, para realar as partes mais escuras tornando-as
mais claras, e escurecendo as partes mais intensas
Expanso do contraste
Alterao da imagem para varrer toda a gama dinmica de
cinzentos com B bits: f (x, y ) min[ f (x, y )]
( ) max[ f (x, y )] min[ f (x, y )]
g ( x, y ) = 2 1
B
Deteco de arestas (Edge detection)
Definio
G Gx f f
T
G= =
G y x y
Variante discreta...
Gx = f ( x, y ) f ( x 1, y ) G y = f ( x, y ) f ( x, y 1)
Filtros de Sobel
Alternativa mais eficiente para detectar arestas
Gx = -1 -2 -1 Gy = -1 0 1
0 0 0 -2 0 2
1 2 1 -1 0 1
Laplaciano
Muito sensvel ao rudo. Pouco usado para deteco
de arestas.
L= 0 1 0
2 2
f f
L[ f ( x, y )] = + 2 1 -4 1
x 2
y 0 1 0
Exemplos do uso de filtros para arestas
Gradiente simples: Gx + Gy
Filtro de Sobel com normalizao
1000
800
600
400
200
p'TD = p (d f g ) (a + b + c + e + h ) + p
p' BD = p (a b d ) (c + e + f + g + h ) + p
Eroso
Tomar cada pixel de objecto
(valor 1) que esteja Nligado (N4,
N8, ...) a um pixel de fundo (valor
0) e colocar esse pixel do objecto
a 0.
Em geral, reduz as dimenses do
objecto Eroso com N4 e N8
Dilatao
Tomar cada pixel de objecto
(valor 1) e pr todos os pixels de
fundo (valor 0) que esto N-
ligados (N4, N8, ...) a esse pixel
como objecto (para o valor 1).
Em geral, aumenta as dimenses
do objecto
Dilatao com N4 e N8
Operadores Morfolgicos - II
Fecho
Operao de dilatao seguida de eroso
O resultado comum mais interessante o de fundir
objectos que inicialmente s estariam ligados por um nico
pixel.
Suaviza o objecto pelo exterior do seu contorno
Abertura
Operao de eroso seguida de dilatao
O resultado comum mais interessante o de separar
objectos que inicialmente s estariam ligados por poucos
pixels, nomeadamente, linhas de um s pixel de largura.
Suaviza o objecto pelo interior do seu contorno
Operadores Morfolgicos - III
Esqueletizao
Operao de determinao do esqueleto
Definio de esqueleto:
Objecto filiforme (1 pixel de largura) ...
.. que passa pelo meio do objecto
... e que preserva a topologia do objecto original
Uma variante (thinning) baseada na eroso
condicionada (menos exigente computacionalmente)
Um pixel no erodido nas seguintes condies:
Se for isolado - condio C1:
Propagao
Operao de dilatao sucessiva de um objecto
semente (por exemplo um esqueleto) at aos
limites dados por uma imagem mscara, com
base num dado elemento estruturante.
i H (i )
k 1
i H (i ) i =Tk 1
mkb = i =0
Tk 1 1 mkf = 2 B 1
H (i )
i =0
H (i )
i =Tk 1
3500
3000
2500
2000
1500
1000 d
500
0
0 50 100 150 200 250
Operaes de morfologia binria
Clculo do Exo-esqueleto
Etc.
Operaes Morfolgicas I
Obteno do Exo-esqueleto
Definio de exo-esqueleto:
esqueleto do fundo que contm
os objectos, criando regies
1. Binarizao
2. Complemento da imagem
(negao)
3. Clculo do esqueleto pela
metodologia que elimina as linhas
terminais (condies C1 e C2 na
definio da operao de
thinning)
Funo BWMORPH em MatLab (v5.3+)
BW2 = BWMORPH(BW1,OPERATION,N) applies the operation N times. N can be Inf, in which
case the operation is repeated until the image no longer changes.
OPERATION is a string that can have one of these values:
'bothat' Subtract the input image from its closing
'bridge' Bridge previously unconnected pixels
'clean' Remove isolated pixels (1's surrounded by 0's)
'close' Perform binary closure (dilation followed by erosion)
'diag' Diagonal fill to eliminate 8-connectivity of background
'dilate' Perform dilation using the structuring element ones(3)
'erode' Perform erosion using the structuring element ones(3)
'fill' Fill isolated interior pixels (0's surrounded by 1's)
'hbreak' Remove H-connected pixels
'majority' Set a pixel to 1 if five or more pixels in its 3-by-3 neighborhood are 1's
'open' Perform binary opening (erosion followed by dilation)
'remove' Set a pixel to 0 if its 4-connected neighbors are all 1's, thus leaving only boundary pixels
'shrink' With N = Inf, shrink objects to points; shrink objects with holes to connected rings
'skel' With N = Inf, remove pixels on the boundaries of objects without allowing objects to break apart
'spur' Remove end points of lines without removing small objects completely.
'thicken' With N = Inf, thicken objects by adding pixels to the exterior of objects without connected
previously unconnected objects
'thin' With N = Inf, remove pixels so that an object without holes shrinks to a minimally connected
stroke, and an object with holes shrinks to a ring halfway between the holdand outer boundary
'tophat' Subtract the opening from the input image