Download - Tutorial - Robotics Toolbox (2)
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!
1
3
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: >> rr=
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!
4
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!
5
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 04
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!
6
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!
7
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!
8
ANEXO 1 - ALGORITMO DE DENAVIT-HARTENBERG
ARTHUR SCHULER DA IGREJA!
9