24
SISTEMA COORDENADO MÓVEL Reinaldo M. do Nascimento – Julho ~ Dezembro - 2005 1 CINEMÁTICA DE MANIPULADORES ROBÓTICOS 1 Reinaldo M. do Nascimento Técnico em Eletrotécnica – CEFET-MG Técnico em Eletrônica – COTEMIG-MG [email protected] 6 [email protected]

CINEMÁTICA DE MANIPULADORES ROBÓTICOS - …read.pudn.com/downloads103/sourcecode/math/421463/Robotic... Normalmente nossos estudos em robótica se iniciam pela cinemática de robôs

  • Upload
    vukhanh

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

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!