You are on page 1of 9

TUTORIAL ROBOTICS TOOLBOX 1! INTRODUO ! !

! Tutorial referente Toolbox de robtica para Matlab desenvolvida por Peter Corke que est disponvel sob licena LGPL. Essa Toolbox permite a modelagem e controle de robs industriais e facilita o aprendizado dos parmetros de Denavit-Hartenberg para o estudo acadmico. 2! INSTALAO ! ! Deve-se! fazer!o! download!mediante! cadastro! no! site: (http://petercorke.com/ Robotics_Toolbox.html).! O! arquivo! obtido! deve!ser extrado, resultando na pasta robot que deve ser movida para a pasta de trabalho do Matlab (usualmente Meus Documentos/MATLAB). ! Uma vez movida a pasta, deve-se abrir o Matlab e adicionar tal pasta para que faa parte da rea de trabalho do Matlab de forma denitiva, para isso deve-se acessar o menu File -> Set Path...

Figura 1 Adicionando-se diretrio padro no Matlab.

! Em seguida seleciona-se a opo Add Folder... e busca-se a pasta robot extrada anteriormente. Aps conrmar, a pasta ir aparecer na lista de diretrios padro, para concluir a adio basta clicar no boto Save.

Figura 2 Conrmando adio da pasta.

ARTHUR SCHULER DA IGREJA!

PLOTAR UM ROB MODELADO

A modelagem dos robs atravs dos parmetros de Denavit-Hartenberg !seguem a seguinte a janela em seguida. Pode-se fechar ordem:
3! PLOTAR UM ROB MODELADO

! A modelagem dos robs atravs dos parmetros de Denavit-Hartenberg seguem a seguinte ordem (exemplo):

Link 1

ALFAi 0

Ai 1

!i !1

Di 0

Figura 3 Exemplo de rob com 2 graus de liberdade.

* No manual que acompanha a Toolbox a ordem dos parmetros est demonstrada como (am alfa, d, theta) sendo que est incorreto. um vetor: Deve-se descrever cada junta como ! !>> L1=link([0 1 0se 0], 'standard') Nota-se que 0 trata de um rob com 2 juntas rotacionais em funo da grandeza ! estar expressa como varivel. Deve-se descrever cada junta como um vetor:

Nota-se que se trata de um rob com 2 juntas rotacionais em funo da 2 0 1 !2 0 grandeza ! estar expressa como varivel.

>> L2=link([0 1 0 0 0], 'standard')


>> L1=link([0 1 0 0 0], 'standard') >> L2=link([0 1 as 0], 'standard') posies do vetor indicam os parmetros Onde 0 0 4 primeiras ! Onde as 4 primeiras posies do vetor indicam os parmetros cinemticos e a 5 indica se a junta rotacional (0) juntas, faz-se (1). O parmetro standard demonstra que Uma vez declaradas as ou prismtica a unio de todas: se est utilizando a notao padro de D&H. !>> r=robot({L1 L2}) Uma vez declaradas as juntas, faz-se a unio de todas: >> r=robot({L1 L2}); a declarao do rob: Para verificar !>> r Para vericar a declarao do rob: >> r
r=

cinemticos e o 5 indica se a junta rotacional (0) ou prismtica (1).

Obtendo-se:

noname (2 axis, RR) grav = [0.00 0.00 9.81] alpha 0.000000 0.000000 A 1.000000 1.000000 theta 0.000000 0.000000 standard D&H parameters D 0.000000 0.000000 R/P R R (std) (std)

! Ou seja, indica-se que o rob tem 2 eixos, ambos rotacionais, demonstrada a matriz de parmetros D&H, que a gravidade ser considerada como 9.81 e est !"#$%"&'($%)*"&+,&-."*/,& 01.23,&4& localizada no eixo z. ! ! Para plotar o primeiro rob no espao de trabalho: >> plot(r, [0 0])
ARTHUR SCHULER DA IGREJA! 2

>> plot(r, [0 0]) Para plotar o primeiro rob no espao de trabalho:


>> plot(r, [0 0])

Os valores dos vetores indicam a posio angular de cada junta, por ! Os valores dos vetores indicam a posio angular com diferena angular por para Os valores dos vetores indicam a posio angular de cada exemplo, exemplo, para plotar o rob com a segunda junta de cada junta, porjunta, de 90 plotar oexemplo, para plotar o junta com a segunda angular dediferena angular de 90 rob com a segunda rob com diferena junta com 90 graus em relao graus em relao primeira: primeira: graus em relao primeira: >> plot(r, [0 90]) >> plot(r, [0 90]) [0 90]) >> plot(r,

Figura 4 Rob com 2 graus de liberdade plotado. Figura 4 Rob com 2 graus de liberdade plotado. Figura 4 Rob com 2 graus de liberdade plotado.

Figura 5 Mesmo rob com deslocamento na segunda junta. Figura 5 Mesmo rob com deslocamento na segunda junta. Figura 5 Mesmo rob com deslocamento na segunda junta.

4!

GERAO DE TRAJETRIA PARA O ROB MODELADO

! Considerando-se o rob modelado no exemplo anterior, deve-se declarar o vetor 01.23,&4& com as!"#$%"&'($%)*"&+,&-."*/,& as juntas: posies iniciar para !"#$%"&'($%)*"&+,&-."*/,& 01.23,&4& >> posic_inicial=[0,0]; ! Em seguida, declarar o vetor com as posies nais para cada junta:
!
!

>> posic_nal=[pi/2,-pi/2]; ! Ou seja, a primeira junta de rotao ter um movimento de 0 at 90 graus e a segunda junta ter um movimento de 0 at -90 graus. ! Em seguida deve-se usar o comando jtraj para gerar a trajetria para cada junta:
ARTHUR SCHULER DA IGREJA! 3

Em seguida deve-se usar o comando jtraj para gerar a trajetria para cada junta: >> trajetoria=jtraj(posic_inicial,posic_final,400); >> trajetoria=jtraj(posic_inicial,posic_nal,400); Onde o ltimo parmetro (400) denota o tempo de movimento, ou seja, quando menor parmetro (400) denota o tempo de movimento, ou seja, quando ! Onde o ltimo o parmetro mais veloz ser a simulao. menor o parmetro mais veloz ser a simulao. Para visualizar movimentando executa-se o comando: ! Para visualizar o robo rob movimentando executa-se o comando: >> plot(r,trajetoria); >> plot(r,trajetoria);

Figura 6 Posio inicial do rob. Figura 6 Posio inicial do rob.

!"#$%"&'($%)*"&+,&-."*/,& !

01.23,&4&

Figura 7 Posio nal do rob. Figura 6 Posio final do rob.

5! EXEMPLO DE MODELAGEM ! ! Segue exemplo de modelagem utilizando-se da metodologia de D&H para um rob com 4 graus de liberdade conforme visto na Figura (8).

ARTHUR SCHULER DA IGREJA!

Figura 8 Rob proposto para a modelagem.

! Trata-se de um rob com volume de trabalho cilndrico, com um movimento rotacional na base (q1) seguido de um movimento prismtico na horizontal (q2) seguido de um movimento prismtico na vertical (q3) e que possui um movimento rotacional no efetuador (q4). Para efeito de simulao considerou-se a altura da estrutura (distncia entre x0 e x1 como tendo 2 unidade de comprimento). ! O sistemas de coordenadas foram posicionados respeitando as seguintes regras:

- Eixo zposicionado ao longo do eixo de movimento, ou seja, para movimentos rotacionais o eixo onde imagina-se o motor que realizar o movimento acoplado. Para movimentos prismticos o eixo ao longo da onde acontece o estiramento do mecanismo, por exemplo, para um cilindro pneumtico o eixo z est na direo da haste. - Eixo xposicionado perpendicular ao eixo zarbitrariamente para o sistema de coordenadas da origem. Para demais sistemas de coordenadas, deve car perpendicular ao eixo z do movimento anterior e tambm perpendicular ao eixo zdo movimento atual. Para casos de eixos zem paralelo, copia-se a direo do eixo xdo sistema de coordenadas anterior; - Eixo yposicionado perpendicular aos eixos z e x;
5.1! MODELAGEM D&H ! ! A modelagem segue o algoritmo de D&H conforme visto na pgina 204 do livro Princpios de Mecarnica de Joo Maurcio Rosrio, presente em anexo neste documento. O resultado da modelagem visto na tabela que segue:

ARTHUR SCHULER DA IGREJA!

LINK 1 2 3 4
!

ALFAi -pi/2 -pi/2 0 0

Ai 0 0 0 0

!i !1

Di 1 d2 d3 0

0 0
!4

Segue declarao do rob no Matlab:

L{1} L{2} L{3} L{4}

= = = =

%alpha link([-pi/2 link([-pi/2 link([0 link([0

a 0 0 0 0

theta 0 0 0 0

D 2 0 0 0

R/P 0],'standard'); 1],'standard'); 1],'standard'); 0],'standard');

>> modelo = robot(L,'Rob cilndrico');


! Segue declarao da gerao de trajetria, pode-se observar que apenas um movimento realizado por vez:

q1 q2 q3 q4 q5

= = = = =

[0 [pi/2 [pi/2 [pi/2 [pi/2

0 0 pi/2 pi/2 pi/2

0 0 0 pi/2 pi/2 q2, q3, q4, q5, 50) 50) 50) 50)

0]; 0]; 0]; 0]; pi/2];

[u1]=JTRAJ(q1, [u2]=JTRAJ(q2, [u3]=JTRAJ(q3, [u4]=JTRAJ(q4,


!

Plotar a animao do modelo:

figure plot(modelo, plot(modelo, plot(modelo, plot(modelo,

u1); u2); u3); u4);

ARTHUR SCHULER DA IGREJA!

Figura 9 Rob cilndrico ao m da simulao.

5.2! COMANDO DRIVEBOT ! ! Outro recurso interessante provido pela Toolbox o comando drivebot que permite comandar diretamente o rob atravs de uma interface interativa. Basta declarar os parmetros cinemticos do modelo e moviment-lo. ! ! Exemplo prtico para o rob anterior: %alpha link([-pi/2 link([-pi/2 link([0 link([0 a 0 0 0 0 theta 0 0 0 0 D 2 0 0 0 R/P 0],'standard'); 1],'standard'); 1],'standard'); 0],'standard');

L{1} L{2} L{3} L{4}

= = = =

>> modelo = robot(L,'Rob cilndrico'); ! Em seguida basta utilizar o comando para que o rob seja plotado e a interface de comando aparea no canto da tela. >> drivebot(modelo);

ARTHUR SCHULER DA IGREJA!

Figura 10 Painel de comando ao lado do rob plotado.

! Caso o usurio mova os valores de q, so geradas tragetrias para cada eixo e acompanha-se em tempo real a movimentao. Nos quadros x, y e z pode-se vericar a posio espacial do efetuador. Caso o rob tenha alguma junta rotacional em seu corpo ou efetuador que causem inclinao, os parmetros ax, ay e az indicam a orientao espacial do efetuador.

Figura 11 Rob aps execuo do movimento.

ARTHUR SCHULER DA IGREJA!

ANEXO 1 - ALGORITMO DE DENAVIT-HARTENBERG

ARTHUR SCHULER DA IGREJA!