SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
1
CINEMÁTICA DE MANIPULADORES
ROBÓTICOS1
Reinaldo M. do NascimentoTécnico em Eletrotécnica – CEFET-MGTécnico em Eletrônica – [email protected] [email protected]
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
2
1 - INTRODUÇÃO
Normalmente nossos estudos em robótica se iniciam pela cinemática de robôs manipuladores. Paraprosseguirmos, devemos assimilar conceitos como cinemática direta, cinemática inversa, matriz jacobiana,entre outros. Entretanto, o domínio destes conceitos depende de outros dos quais o fundamental,transformações homogêneas, é totalmente dependente das convenções de Denavit e Hartenberg.Este é justamente o componente de maior complexidade para os iniciantes: - O algoritmo para a obtenção dosparâmetros DH, aliado à falta de exemplos justamente daquele modelo que queremos desvendar. Algunsautores despertam nossa curiosidade, ao comentar que poderíamos dispor os sistemas coordenados naestrutura dos robôs de uma forma totalmente aleatória. Não mostram, porém, como fazê-lo. Este texto apresenta o “método SCM” (Sistema Coordenado Móvel) como uma forma alternativa para oestudo da cinemática de um robô manipulador e também de obter os parâmetros DH. Para este fim será defundamental importância a utilização do toolbox "Symbolic Math" do MATLAB. As ilustrações e descrições seguintes constituem apenas informações que não pretendem ser completas. Apequena revisão sobre o tema transformações homogêneas deve servir apenas para uma melhor compreensãodos termos utilizados e das idéias que originaram o “método SCM”.
2 – TRANSFORMAÇÕES HOMOGÊNEAS2.1 – NOÇÕES BÁSICAS
Transformações (rotações e/ou translações) homogêneas (H) são representadas por matrizes 4x4. Emrobótica, uma de suas interpretações traduz matematicamente as informações contidas na figura abaixo:
Figura 1: Relação entre dois referenciais
O sistema coordenado 1 é expresso com relação ao sistema coordenado de referência 0 , com sua origemlocalizada por um vetor posição p :
11 12 13
21 22 2301
31 32 33
0 0 0 1
x
y
z
R R R pR R R p
HR R R p
=
(2.1)
Os elementos ijR da matriz H formam a Matriz de Rotação(R) e representam a projeção de cada eixo do
sistema coordenado 1 sobre cada eixo do sistema coordenado 0 :
1 0 1 0 1 0
01 1 0 1 0 1 0
1 0 1 0 1 0
x X y X z XR x Y y Y z Y
x Z y Z z Z
⋅ ⋅ ⋅ = ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
(2.2)
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
3
A matriz H pode ser obtida pelo produto de uma Translação Homogênea(HT) por uma RotaçãoHomogênea(HR). A ordem dos fatores é muito importante já que, nos casos gerais, este produto não écomutativo:
11 12 13
21 22 2301
31 32 33
1 0 0 00 1 0 0
00 0 10 0 0 10 0 0 1
HT HR
x
y
z
p R R Rp R R R
HR R Rp
=
(2.3)
Expandindo-se um pouco mais (2.3) chegaremos aos seis graus de liberdade (6 DOF) possíveis em umsistema coordenado tridimensional:
, , , ,
01
1 0 0 1 0 0 0 1 0 0 0 0 00 1 0 0 0 1 0 0 1 0 0 0 00 0 1 0 0 0 1 0 0 0 1 0 0 1 00 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
yx z
X x Y y Z z Z
HTHT HT
X Transl Y Transl Z Transl A Rot
x C Sa ay S Ca aH
z
= = = =
− =
, ,
0 0 1 0 0 00 1 0 0 0 0
0 0 0 00 0 0 1 0 0 0 1
y xz
a Y b X c
HR HRHR
Roll B Rot Pitch C Rot Yaw
C Sb bC Sc c
S C S Cb b c c
= = = = =
− −
(2.4)
onde utilizamos a notação simplificada cos( ), sen( )C a S aa a= = (aplica-se o mesmo às variáveis b e c)
e, , ,x y zx p y p z p= = = . Os fabricantes de robôs manipuladores comerciais normalmente nãorepresentam um sistema coordenado (frame) como o indicado em (2.1) mas, como uma matriz 1 x 6, comseus elementos executando as operações descritas em (2.4)2:
[ ]01 ( ) ( ) ( ) ( ) ( ) ( )H X x Y y Z z A a B b C c= (2.5)
2.2 – TRANFORMAÇÕES HOMOGÊNEAS INVERSAS
[ ]0 1 11 0( ) ( ) ( ) ( ) ( ) ( ) ( )H H C c B b A a Z z Y y X x− = = − − − − − − (2.6)
1 0 1 0 1 0
1 0 1 0 1 010
1 0 1 0 1 0
1 0 000 1 00
( )0 0 0 1
0 0 0 1 0 0 0 1
x
yT
z
px X x Y x Zpy X y Y y Z
H HR HT pz X z Y z Z p
−⋅ ⋅ ⋅ −⋅ ⋅ ⋅ = − = ⋅ ⋅ ⋅ −
(2.7)
2 $ROBROOT=X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0;ROBOTS IN THE WORLD COORDINATE SYSTEM [MM,GRAD], by KUKARoboter GmbH
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
4
0 1 01 0 0
1 0 0 00 1 0 0
(0) (0) (0) (0)0 0 1 00 0 0 1
H H H HT HR XYZ ABC
= = = =
(2.8)
[ ]00 (0) (0) (0) (0) (0) (0)H X Y Z A B C= (2.9)
2.3 – COMUTATIVIDADE
Sabemos que o produto entre translações (HT) é comutativo e entre as rotações (HR), não. O produtoentre translações e rotações, apresenta uma comutatividade quase nunca mencionada:- As transformações consecutivas sobre um mesmo eixo! Confira:
, , ,
1 0 0 1 0 0 0 1 0 0 0 1 0 00 1 0 0 0 0 0 0 0 1 0 00 0 1 0 0 0 0 0 0 0 1 00 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
x x x
X x X c X c
HT HR HR
x
X Transl C Rot Yaw C Rot Yaw
x xC S C Sc c c cHS C S Cc c c c
= = = = =
− − = =
,
1 0 00 00 00 0 0 1
x x
X x
HT H
X Transl
xC Sc cS Cc c
=
− =
(2.10)
, , ,
1 0 0 0 0 0 0 0 1 0 0 00 1 0 0 1 0 0 0 1 0 0 0 1 00 0 1 0 0 0 0 0 0 0 1 00 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
y y y
Y y Y b Y b
HT HR HR
y
Y Transl B Rot Pitch B Rot Pitch
C S C Sb b b by y
HS C S Cb b b b
= = = = =
= = − −
,
0 00 1 0
0 00 0 0 1
y y
Y y
HT H
Y Transl
C Sb by
S Cb b
=
= −
(2.11)
, , ,
1 0 0 0 0 0 0 0 1 0 0 00 1 0 0 0 0 0 0 0 1 0 00 0 1 0 0 1 0 0 0 1 0 0 00 0 0 1 0 0 0 1 0 0 0 1
z z z
Z z Z a Z a
HT HR HR
z
Z Transl A Rot Roll A Rot Roll
C S C Sa a a aS C S Ca a a aH
z
= = = = =
− − = =
,
0 00 0
1 0 0 10 0 0 1 0 0 0 1
z z
Z z
HT H
Z Transl
C Sa aS Ca a
z z
=
− =
(2.12)
Um pouco mais adiante, veremos que através dos parâmetros DH ditos clássicos (standard) oumodificados, podemos obter a relação entre os frames conforme abaixo:
1ii z xH H H− = →Clássicos (2.13)
1ii x zH H H− = →Modificados (2.14)
2.4 – REVISÃO DOS TERMOS UTILIZADOS
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
5
H → Transformação homogêneaHT → Translação homogênea ( ) ( )x x xH HT HR X x C c= =HR → Rotação homogênea ( ) ( )y y yH HT HR Y y B b= =
( )xHT X x= → Translação homogênea sobre o eixo x ( ) ( )z z zH HT HR Z z A a= =( )yHT Y y= → Translação homogênea sobre o eixo y (0) (0) (0) (0)XYZ X Y Z=
( )zHT Z z= → Translação homogênea sobre o eixo z (0) (0) (0) (0)ABC A B C=( )zHR A a= → Rotação homogênea sobre o eixo z R → Matriz de rotação
( )yHR B b= → Rotação homogênea sobre o eixo y p → Vetor posição
( )xHR C c= → Rotação homogênea sobre o eixo x
3 – O MÉTODO SCM
Observando com um pouco mais de atenção (2.5), (2.6) e (2.9), com relação à Figura 1, podemosimaginar o sistema coordenado 0 deslocar-se (translações), chegar à origem do sistema coordenado 1e, através de transformações sucessivas sobre o eixo corrente (rotações), orientar-se exatamente como omesmo (2.5). As mesmas transformações no sentido inverso (2.6), nos levam de volta ao ponto departida (2.9). O “método SCM” baseia-se nesta “viagem de ida” (2.5) do frame de referência ao framefinal. A seqüência abaixo ilustra esta idéia para o manipulador de Stanford:
Figura 2: Método SCM para o manipulador de Stanford
Na seqüência 0 estão presentes todos os elementos necessários para a abordagem do método:
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
6
• Os sistemas coordenados de referência (World) e o final, onde será instalada a ferramenta. Ambosortogonais e diretos: - o sentido positivo dos ângulos é medido pela convenção usual (sentido anti-horário) e que é ilustrado na Figura 3-I;
• A variável de junta junta i rotativajunta i prismática
ii
i
aq
d→
= →• Os eixos de giro das juntas ( 1 6a a∼ ) com as setas indicando o sentido positivo de rotação (Figura
3-II: Regra da Mão Direita) e a representação de uma junta prismática ( 3d );• A identificação dos elos (letra “L”) é totalmente livre, sem nenhum vínculo com a numeração dos
frames;• A figura é representada com as juntas rotativas em posição de zero matemático ( 0ia = ).
Para a análise será adotado como padrão as transformações apresentadas em (2.3) ou seja: translaçõesseguidas de rotações. Obtém-se a relação entre os frames, a medida em que o Sistema Coordenado Móvelavança na estrutura do robô:
• Cada frame admitirá apenas uma variável iq ( ia ou id );• O sinal das variáveis dependerá de que o sentido dos eixos do Sistema Coordenado Móvel coincida
ou não, com o sentido dos eixos de giro ou de deslocamento das juntas;• Transformações ocorridas entre a última junta e o sistema coordenado final, darão origem ao frame
denominado Transformação Final (FT) que, como será visto, receberá um tratamento diferenciadoem relação aos frames originados pelas variáveis de junta.
Obtém-se então, o seguinte resultado para a Cinemática Direta do manipulador de Stanford:
1 2 3 4 50
0 1 1 2 3 4 5 2( ) ( ) ( ) ( ) ( ) (0) (0) ( ) (0) ( ) ( ) (FT
I II III
H Z L A a Y L B a Z d ABC XYZ A a XYZ B a Z L A=Stanford6
6 (0) (0))T
I VV
F
XYZ ABCa
(3.1)
Figura 3: I – Sentido positivo dos ângulos II – Regra da mão direita
3.1 – O “TOOLBOX SCM” PARA O MATLAB
Embora seja possível utilizar a estrutura (3.1) para a solução de alguns problemas da Cinemática derobôs manipuladores , ela nos servirá apenas como uma ferramenta auxiliar na entrada de dados para omodelo em estudo. O primeiro passo será a elaboração de um arquivo-M do tipo script para a introduçãodos dados necessários.
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
7
Pode-se verificar a utilização do script para o manipulador de Stanford, digitando no prompt decomandos do MATLAB:
>> scm_stanford=========================================================Robot 'stanford' ==> RRPRRR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, L0, a1, 0, 0][ 0, L1, 0, 0, a2, 0][ 0, 0, d3, 0, 0, 0][ 0, 0, 0, a4, 0, 0][ 0, 0, 0, 0, a5, 0][ 0, 0, L2, a6, 0, 0]
Final Transformation 0 0 0 0 0 0
Tool 0 0 0 0 0 0
Verify Data 1
É importante ressaltar que a estruturação dos dados SCM (Parâmetros de Junta, Transformação Final eFerramenta) tem como padrão os argumentos presentes em (2.5):
[ ]Metros Radianos
x y z a b c (3.2)
Com o comando edit ou open pode-se verificar diretamente o conteúdo dos arquivos do tipo script(scm_manipulador.m). A estrutura de um script é basicamente a mesma para todos os manipuladores,portanto, a descrição abaixo para o manipulador de Stanford servirá de base para todos os outros modelosapresentados neste texto:
>> edit scm_stanford
syms L0 L1 L2 a1 a2 d3 a4 a5 a6
%SCM joint parameters% Transl Rot(RPY Angles)% X Y Z A B Cjoint1=[ 0 0 L0 a1 0 0];%Z(L0)A(a1)joint2=[ 0 L1 0 0 a2 0];%Y(L1)B(a2)joint3=[ 0 0 d3 0 0 0];%Z(d3)ABC(0)joint4=[ 0 0 0 a4 0 0];%XYZ(0)A(a4)joint5=[ 0 0 0 0 a5 0];%XYZ(0)B(a5)joint6=[ 0 0 L2 a6 0 0];%Z(L2)A(a6)%=================================================jp=[joint1;joint2;joint3;joint4;joint5;joint6];%=================================================clear joint*
%Final Transformation% X Y Z A B CfinalTransformation=[0 0 0 0 0 0];%XYZ(0)ABC(0)tool= [0 0 0 0 0 0];%XYZ(0)ABC(0)%===================================ftr=[finalTransformation;tool];%===================================clear finalT* tool
%Auxiliaryvariables=[a1 a2 d3 a4 a5 a6];links=[L0 L1 L2 .412 .154 .263];%meters
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
8
%==========================================================================chain=struct('variables',variables,'links',links(1,:),'linksValues',links(2,:));%==========================================================================
%Descriptiondescription='Robot ''stanford'' ==> RRPRRR';
%Debug (1==on/0==off)verify=1;
%Robot%==========================================================================stanford=struct('jointParameters',jp,'finalTransformation',ftr,'chain',chain,'description',description,'verifyData',verify);%==========================================================================manipulator=stanford;%=====================clear variables links chain
%Display Visualizationdisp('=========================================================');disp(description);disp('=========================================================');disp('SCM Joint Parameters');disp(' X Y Z A B C');disp(jp);disp('Final Transformation ');disp(ftr(1,:));disp('Tool');disp(ftr(2,:));disp('Verify Data');disp(verify);
clear jp ftr description verify
A seguir, serão apresentados outros modelos que também fazem parte do “toolbox SCM”:
ONELINK
Figura 4: Onelink
Onelink1
1 10 (0) () ) (( 0)
FT
FT X LH XYZ A BCa A= (3.3)
>> scm_onelink=========================================================Robot 'onelink' ==> R=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, 0, a1, 0, 0]
Final Transformation[ L1, 0, 0, 0, 0, 0]
Tool[ 0, 0, 0, 0, 0, 0]
TWOLINK
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
9
Figura 5: Twolink
Twolink1 2
01 1 2 2(0) ( ) ( ) ( (0) ) )(
FT
FT X L ABH XYZ A a A CX L a= (3.4)
>> scm_twolink=========================================================Robot 'twolink' ==> RR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, 0, a1, 0, 0][ L1, 0, 0, a2, 0, 0]
Final Transformation[ L2, 0, 0, 0, 0, 0]
Tool[ 0, 0, 0, 0, 0, 0]
UW
Figura 6: UW
UW1 2 3
02 2 3 31 1 ( ) ( /(0) ( ) ( ) ( ) ( ) ( ) 2)
FT
FTH XYZ A a X L B a X X L C piL B a= − − (3.5)
>> scm_uw=========================================================Robot 'UW'==> RRR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, 0, a1, 0, 0][ L1, 0, 0, 0, -a2, 0][ L2, 0, 0, 0, -a3, 0]
Final Transformation[ L3, 0, 0, 0, 0, pi/2]
Tool[ 0, 0, 0, 0, 0, 0]
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
10
SCARA
Figura 7: Scara
Scara1 20
0 1 1 2
1 2
0 1 1 2
3 4
2 3 4
3
3 2 4
3( ) ( ) ( ) ( )
( ) (
( ( )) ( ) ( )
( ) ( )) ( )
)
( ))
(
(
FT
FT Z L C piH Z L A a X L A a
Z L A a
X L Z d A a
Z d X L A aX L A a
= −
= −
− − −
− −1 2
0 1
3
3
4
3 4
32 41 2( ) ( ) ( ) ( ) (0) ( ) (
( ) (
)) (( ()
)
)
FT
FT
Z d ABCZ L A a X L
Z L C pi
Z L C pa A iX LA a= − −− −
− (3.6)
>> scm_scara=========================================================Robot 'scara' ==> RRPR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, L0, a1, 0, 0][ L1, 0, 0, -a2, 0, 0][ 0, 0, -d3, 0, 0, 0][ L2, 0, 0, -a4, 0, 0]
Final Transformation[ 0, 0, -L3, 0, 0, pi]
Tool[ 0, 0, 0, 0, 0, 0]
SCORBOT
Figura 8: Scorbot
Scorbot1 2 3 4 50
0 1 1 2 2 3 3 4 4 5 5( ) ( ) ( ) ( ) ( ) (0) (0( ) ( ) ( ) ( ) ) )( ( )FT
FT XYH Z L A a X L Y L B a X L B a X L B a Z L A Z ABCa= − − − −(3.7)
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
11
>> scm_scorbot=========================================================Robot 'scorbot' ==> RRRRR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, L0, a1, 0, 0][ L1, -L2, 0, 0, -a2, 0][ L3, 0, 0, 0, -a3, 0][ L4, 0, 0, 0, -a4, 0][ 0, 0, L5, a5, 0, 0]
Final Transformation 0 0 0 0 0 0
Tool 0 0 0 0 0 0
CLOOS
Figura 9: Cloos
Cloos1 2 3 4 5 60
1 2 1 3 2 4 5 3 6(0) ( ) (0) ( ) ( ) ( ) (0) ( )( ) ( ) (0) ( ) ( ) ( )FT
FTH XYZ A a XYZ B a X L B a Z L A a XYZ B a Z L YZ Ca iA X p= − − − −(3.8)
>> scm_cloos=========================================================Robot 'cloos' ==> RRRRRR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, 0, a1, 0, 0][ 0, 0, 0, 0, -a2, 0][ L1, 0, 0, 0, a3, 0][ 0, 0, L2, a4, 0, 0][ 0, 0, 0, 0, -a5, 0][ 0, 0, -L3, -a6, 0, 0]
Final Transformation 0 0 0 0 0 3.1416
Tool 0 0 0 0 0 0
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
12
KR100P
Figura 10: Kr100p
KR100P1 2 3
3
4 5 60
0 1 1 2 2 3 54 4 5 6( ) ( ) ( ) ( ( ) () ( ) ( ) ( ) (0) ( ) ( ) ( ) (0) ( /2))FT
FT XYH Z L A a X L B a X ZL B a C a XYZ B a X LL a Z piL C BX= − − −(3.9)
>> scm_kr100p=========================================================Robot 'kr100p' ==> RRRRRR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, L0, -a1, 0, 0][ L1, 0, 0, 0, a2, 0][ L2, 0, 0, 0, a3, 0][ L4, 0, L3, 0, 0, -a4][ 0, 0, 0, 0, a5, 0][ L5, 0, 0, 0, 0, -a6]
Final Transformation 0 0 0 0 1.5708 0
Tool 0 0 0 0 0 0
KR125
Figura 11: Kr125
KR1251 2 3 4 5 60
0 1 1 2 2 3 3 4 5 4 6 (0) ( /2)( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (0) ( ) ( ) ( )FT
FTH Z L A a X L B a X L B a X L C a XYZ B a X L C YZ B pia X= − − −(3.10)
>> scm_kr125=========================================================Robot 'kr125' ==> RRRRRR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, L0, -a1, 0, 0]
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
13
[ L1, 0, 0, 0, a2, 0][ L2, 0, 0, 0, a3, 0][ L3, 0, 0, 0, 0, -a4][ 0, 0, 0, 0, a5, 0][ L4, 0, 0, 0, 0, -a6]
Final Transformation 0 0 0 0 1.5708 0
Tool 0 0 0 0 0 0
KR2150K
Figura 12: Kr2150k
KR2151 2 3 4 5 6
3 40
0 1 1 2 2 3 4 5 5 6( ) ( ) ( ) ( ) ( ) ( ) ( ) (0) ( ) ( ) (0) ( /( ) ( ) 2) )(FT
FT XYZH Z L A a X L B a X L B a C a XYZ B a X L CZ piL aX L B= − −− −0K
(3.11)
>> scm_kr2150k=========================================================Robot 'kr2150k' ==> RRRRRR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, L0, -a1, 0, 0][ L1, 0, 0, 0, a2, 0][ L2, 0, 0, 0, a3, 0][ L4, 0, -L3, 0, 0, -a4][ 0, 0, 0, 0, a5, 0][ L5, 0, 0, 0, 0, -a6]
Final Transformation 0 0 0 0 1.5708 0
Tool 0 0 0 0 0 0
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
14
PUMA560
Figura 13: Puma560
1 2 3 4 5 60
1 1 2 2 3 3 4 4 5 6(0) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (0 (0) (0)) ( ) (0) ( )FT
FTH XYZ A a Y L B a X L B a X L Z L A a XYZ B a XY XYZ ABZ A a C= − − − −Puma560
(3.12)
>> scm_puma560=========================================================Robot 'puma560' ==> RRRRRR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, 0, a1, 0, 0][ 0, -L1, 0, 0, -a2, 0][ L2, 0, 0, 0, -a3, 0][ L3, 0, L4, a4, 0, 0][ 0, 0, 0, 0, -a5, 0][ 0, 0, 0, a6, 0, 0]
Final Transformation 0 0 0 0 0 0
Tool 0 0 0 0 0 0
PUMA600
Figura 14: Puma600
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
15
Puma6001 2 3 4 5 60
0 1 1 2 2 3 3 4 5 4 6( (0) ( )) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (0) ( ) ( ) ( )FT
FTH Z L A a Y L B a X L B a Z L A a XYZ B a Z L A XYZ C pia= − − − − − − − −(3.13)
>> scm_puma600=========================================================Robot 'puma600' ==> RRRRRR=========================================================SCM Joint Parameters X Y Z A B C[ 0, 0, L0, a1, 0, 0][ 0, -L1, 0, 0, -a2, 0][ L2, 0, 0, 0, -a3, 0][ 0, 0, -L3, -a4, 0, 0][ 0, 0, 0, 0, -a5, 0][ 0, 0, -L4, -a6, 0, 0]
Final Transformation 0 0 0 0 0 3.1416
Tool 0 0 0 0 0 0
Agora, um pequeno esclarecimento sobre (3.6):
- Se as três formas de representação levam ao mesmo resultado, porque as mudanças nos frames 3 e 4?A razão é que a principal ferramenta, o arquivo-M SCM, é um pouco exigente!
Para juntas prismáticas as únicas possibilidades são:
1 [ , 0, 0, 0, 0, 0] ( ) (0)
2 [0, , 0, 0, 0, 0] ( ) (0)
3 [0, 0, , 0, 0, 0] ( ) (0)
i i
i i
i i
d X d ABC
d Y d ABC
d Z d ABC
→ ± = ± → ± = ± → ± = ±
(3.14)
Juntas rotativas não admitem valores de offset:
1 [ , , , 0, ix y z a k→ ± , 0] ( ) ( ) ( ) ( iX x Y y Z z B a k= ± )
2 [ , , , , 0, ]ix y z a k→ ± = ( ) ( ) ( ) ( ) ( )iX x Y y Z z A a C k±
(3.15)
Devido a ausência de variáveis de junta, transformações do tipo (3.15) são admitidas apenas no frameTransformação Final(FT). Uma mensagem de erro será emitida nos casos onde este detalhe não forobservado3.
Resumindo, é como se o Sistema Coordenado Móvel fosse conduzido à última variável de junta da cadeiacinemática apenas por translações. A partir daí (FT), as rotações são permitidas para o correto “acoplamento”com o sistema coordenado final.Se for permitido ao Sistema Coordenado Móvel realizar rotações e translações apenas sobre os eixos X e Z( xH e zH ), com a exigência de que o eixo Z coincida exatamente com os eixos de giro ou de deslocamentodas juntas, obteremos os parâmetros de Denavit & Hartenberg de uma forma simples. O “toolbox SCM”provê um conversor de parâmetros SCM para DH denominado SCM2DH e um arquivo auxiliar DHCONVpara o tratamento de operações básicas.
3Verify=1 (Default) Pretende auxiliar na detecção de falhas. Seu valor pode ser alterado para 0 (zero), casonenhuma mensagem de erro se verifique quando da utilização do arquivo-M SCM.
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
16
3.1.1 – REFERÊNCIA RÁPIDATabela 1
SCM TOOLBOXDHCONV D&H conversõesGEO Operador GeométricoH2J Transformação Homogênea p/ Matriz JacobianaHRX Rotação homogênea sobre o eixo XHRY Rotação homogênea sobre o eixo YHRZ Rotação homogênea sobre o eixo ZHTX Translação homogênea sobre o eixo XHTY Translação homogênea sobre o eixo YHTZ Translação homogênea sobre o eixo ZIK2Q Auxiliar: Cinemática InversaQRAND Cria vetores numéricos formatados de variáveis de juntaS2D Valores simbólicos (sym) p/ Valores numéricos (double)SCM2DH Parâmetros SCM p/ Parâmetros D&H modificadosSCM Sistema Coordenado Móvel (Cinemática de manipuladores)SCM_MENU1 Auxiliar: Demonstração do método SCMSCM_MENU2 Auxiliar: Demonstração do método SCMSCM_MENU3 Auxiliar: Demonstração do método SCMSCMDEMO Demonstração do método SCMSCZIP Notação simplificada: ( ) ( )n n n nsen q s ecos q c= =SCM_manipulador Script (modelo de um manipulador)FIG_manipulador Figura.bmp
Uma maneira simples de se começar a utilizar o “toolbox SCM”, é digitar no prompt de comandos doMATLAB:
>> scmdemo
Figura 15: Menu de acesso aos modelos
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
17
Qualquer modelo selecionado levará a um novo menu, que exceto pela descrição do manipulador, é comumpara todos:
Figura 16: Opções disponíveis para verificação4
Pode-se também utilizar os arquivos-M contidos na Tabela 1 de forma individual, sempre após ocarregamento de um modelo (script). Segue uma breve descrição de como utilizá-los:
SCM
• Cinemática Direta
>> S0 = scm (manipulator, 0)
• Jacobiana (J0)
>> S1 = scm (manipulator, 1)
• Jacobiana (Jn)
>> S2 = scm (manipulator, 2)
• Transformação Inversa = (Cinemática Direta) ^ -1
>> S3 = scm (manipulator, -1)
• Cinemática Inversa (manipulador, destino)
>> Si = scm (manipulator, [ ]Valores Numéricos
H ou x y z a b c )
4 Algumas opções podem levar a um novo menu. Os botões da figura atualmente sem identificação serãoanimados de acordo com a escolha efetuada.
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
18
• Cinemática Inversa (manipulador, destino, origem)
>> Si = scm (manipulator, 1[ ], [ ... ]Valores Numéricos
nH ou x y z a b c q q )
SCM2DH
• >> DH = scm2dh(manipulator)
DHCONV
• Modificados p/ Clássicos ou Clássicos p/ Modificados
>> DH = dhconv (DH)ou
>> DH = dhconv (DH, 'exc')
• Modificados p/ Clássicos
>> SDH = dhconv (DH, 'm2s')
• Clássicos p/ Modificados
>> MDH = dhconv (DH, 's2m')
• Modificados p/ Transformação Homogênea
>> H = dhconv (DH, 'm2h')
• Clássicos p/ Transformação Homogênea
>> H = dhconv (DH, 's2h')
H2J
• J0
>> J0 = h2j (H, manipulator)ou
>> J0 = h2j (H, 1[ ... ]Variáveis Simbólicas
nq q )
• Jn
>> Jn = h2j (H, manipulator, 'n')ou
>> Jn = h2j (H, 1[ ... ]Variáveis Simbólicas
nq q , 'n')
HRX
• >> HR = hrx(c)
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
19
• >> HR = hrx(c,0)
HRY
• >> HR = hry(b)
• >> HR = hry(b,0)
HRZ
• >> HR = hrz(a)
• >> HR = hrz(a,0)
HTX
• >> HT = htx(x)
HTY
• >> HT = hty(y)
HTZ
• >> HT = htz(z)
IK2Q
• >> q = ik2q(Si)
• rad π→
>> q = ik2q(Si,'rad')
• 180deg →
>> q = ik2q(Si,'deg')
GEO
• >> Frame = geo(H)
• >> H = geo(Frame)
• >> H = geo (A, B)5
5 A = Frame ou H; B = Frame ou H
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
20
QRAND
• >> q = qrand (manipulator)
• >> q = qrand (manipulator, 1[ ... ]Valores Numéricos
nq q )
S2D
• >> D0 = s2d(M,
()qrand
q )
• >> D0 = s2d(M,
()qrand
q , 'var')
SCZIP
• >> SC0 = sczip (M)
• >> SC0 = sczip (M, manipulator)
3.1.2 – ALGORITMOS
• Cinemática Direta e (Cinemática Direta) ^ -1:
Aplicação direta de (2.5) e (2.6).
• Cinemática Inversa:
A função foi escrita baseada no arquivo-M “IKINE” (the Robtics Toolbox for MATLAB), de autoriade Peter I. Corke, cuja solução é computada interativamente usando-se a pseudo-inversa da matrizjacobiana do manipulador.Alterações efetuadas:
1. Não utilização de “máscaras” em manipuladores com menos de 6 DOF: - Em algumasconfigurações muito próximas às regiões singulares, a solução pode não convergir.Alterando-se o ponto de origem com pequenos incrementos nas juntas críticas, pode-sechegar a uma solução convergente.
2. Aumento da variável stol de 1e-12 para 1e-6: - Outro artificio para a solução de algunscasos específicos de não convergência e que não interferiu na confiabilidade dos dadoscalculados.
3. A solução é conferida: - Se forem atribuídos valores muito elevados para os elos, a soluçãopode conter discrepância para os valores de orientação.
• Matriz Jacobiana
Relações de velocidade na extremidade do manipulador (FT)6
6 Com ferramenta acoplada FT = Transformação Final * Ferramenta
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
21
1
2
n
qqdq q
dtq
= = ⇒
Velocidade no espaço das juntas (3.16)
[ ][ ]
VetorVelocidade Linear
FT
FT x
VetorVelocidade Angulary
z
xy
v zX
w
= = ⇒ Ω Ω
Ω
Velocidade no espaço cartesiano (3.17)
A matriz jacobiana relaciona X e q :
( )k kX J q q= (3.18)
com k indicando o frame de representação e será visualizada com o seguinte formato:
1 1 1
1 2
2 2 2
1 2
6 6 6
1 2
( )
n
n
n
X X Xq q qX X Xq q qJ q
X X Xq q q
∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂ ∂= ∂ ∂ ∂ ∂ ∂ ∂
…
…
… … …
…
(3.19)
Apesar da aparência de (3.19), podemos montar cada coluna de ( )J q sem diferenciar qualquermatriz de transformação homogênea. Relembrando que cada frame de dados (1 x 6) de “parâmetrosSCM” admite apenas uma variável de junta ( )i i iq a ou d , o respectivo vetor velocidade7 (angularou linear) pode ser encontrado através de uma simples inspeção:
1 11( )i i i i
i i i i ix R x u q− −−= = (3.20)
Uma nova verificação sobre (3.1) nos permitirá obter o vetor velocidade para cada frame domanipulador de Stanford:
7 Vetor velocidade do frame [i] medido com relação ao frame [i-1] e expresso no frame [i]
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
22
3 5 61 2 4
1 1 2 2 3 3 4 4 5 5 6 6
0 0 0 0 0 00 ; 1 ; 0 ; 0 ; 1 ; 01 0 1 1 0 1
u u uu u u
x a x a x d x a x a x a = = = = = =
(3.21)
De maior interesse, entretanto, é o vetor unitário iu .A notação genérica acima não nos permite distinguir entre juntas rotativas e prismáticas. Umpequeno ajuste faz-se necessário para corrigir este inconveniente:
iau → Vetor unitário para uma junta rotativa
idu → Vetor unitário para uma junta prismática
As colunas da matriz jacobiana|ni são obtidas das seguinte forma:
1. Frame de representação 0 (Base):
0 0 00
0
( ( ))i i
i
FTi
i a i di
i a
R u p R uJ
R u
× +=
(3.22)
2. Frame de representação FT (Ferramenta):
( ) ( )i ii i i i
i i
FT FT FT FT FT FT
FT
FT FT
i a i d i a i di
i a i a
R u p R u p R u R uJ
R u R u− × + × +
= =
(3.23)
O vetor posição p para os dois casos acima, foi obtido das transformações homogêneas:
(a) 0FT
iiHR H → transformação utilizada em (3.22). Vide (2.1).
(b) FTFT
iiHR H → que após ser “simplificada”:
1 1 1( ) ( ) ( )FT FT FTFT FT FT
i i ii i iHR H H HR H HR− − −= = → foi utilizada em (3.23).
Vide (2.7).
H2J
Segue fielmente o proposto em (3.19). A matriz 0FTH contém toda a informação necessária
para descrever a posição e a orientação do frame [FT] relativo ao frame [0]. Então, a derivadadesta matriz 0
FTH conterá toda a informação necessária para descrever a velocidade linear e
angular do frame [FT] relativo ao frame [0]. Exatamente o necessário para descrever 0 ( )J q .
A velocidade linear é obtida diretamente FTp v⇒ = e a velocidade angular, através daconhecida relação :
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
23
0.0
0
MatrizVelocidade Angular
z yA A
B z x B
y x
R R −Ω Ω = Ω −Ω −Ω Ω
(3.24)
• Parâmetros DH
Uma grande quantidade de material valioso sobre robótica aborda este tema ou o torna uma peçaimprescindível sem a qual não é possível seguir adiante. O “método SCM” pode auxilia-lo nadeterminação dos parâmetros DH para uma vasta gama de manipuladores, seja de uma forma intuitivacom o auxílio de lápis e papel, ou utilizando o arquivo-M SCM2DH . Sobre este último, gostaria desalientar, que algumas restrições em SCM são permitidas em DH:
1. Valores de offset8 não apenas para juntas rotativas, mas também para as prismáticas;2. Frames sem variáveis de junta não apenas no final (ferramenta) como também no início
(base) e em posições intermediárias dependendo é claro, da complexidade do modelo. SCM2DH fornece os dados no formato modificado (2.14): - Cada frame começa com uma transformação homogênea sobre o eixo X (2.10) e termina com uma transformação homogênea sobre o eixo Z (2.12). Utilizando DHCONV os parâmetros podem ser visualizados no formato standard (2.13).
4 – CONCLUSÃO
Espero que você leitor, esteja convencido como eu, de que realmente podemos dispor os sistemascoordenados na estrutura dos robôs de uma forma aleatória. A “viagem” do Sistema Coordenado Móvel doframe de referência ao frame final pode ser realizada de diferentes maneiras e com uma única regra a serimposta:- Que se oriente exatamente como o frame final.Sob este ponto de vista, considero o conjunto de regras para a obtenção dos parâmetros DH, um casoparticular do “método SCM” que possui apenas uma vantagem:- As implicações de natureza computacional já estão bem fundamentadas. Por favor, não seja muito exigente com o “toolbox SCM”. Considere-o como uma tentativa de expressar o“método SCM” em sua forma mais simples, utilizando apenas elementos já conhecidos.
5 - LINKS
• Vijay Kumar http://www.cis.upenn.edu/~kumar/ http://www.seas.upenn.edu/~meam520/notes02/ http://www.seas.upenn.edu/~meam620/Handouts/
• J. M. Hollerbach http://www.cs.utah.edu/~jmh/ http://www.cs.utah.edu/classes/cs5310/syllabus.html
• Jacob Rosen http://brl.ee.washington.edu/Education/EE543/Ee543_2001/EE543_2001.html http://brl.ee.washington.edu/Publications/Publications_Index/All_Reports_Index.html
8 A escolha do sinal de um offset de giro é determinante na obtenção dos parâmetros DH, porém não altera oresultado final.
SISTEMA COORDENADO MÓVEL
Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005
24
• P. I. Corke http://www.cat.csiro.au/ict/staff/pic/robot/
• Vítor Santos http://www.mec.ua.pt/activities/disciplinas/RoboticaIndustrial/
• Leonardo Tavares http://200.132.57.123/~tavares/
• Alberto Adade Filho http://www.mec.ita.cta.br/~adade/
6 – AGRADECIMENTOS
A Deus, pelo dom maravilhoso de aprender! A todos os que partilham o saber!