robotica-03-b-cinematica direta matlab-pos

43
Robótica Prof. Reinaldo Bianchi Centro Universitário da FEI 2016

Upload: others

Post on 17-Oct-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Robótica

Prof. Reinaldo BianchiCentro Universitário da FEI2016

Page 2: ROBOTICA-03-B-Cinematica Direta Matlab-POS

3ª Aula

Parte B - Matlab

Page 3: ROBOTICA-03-B-Cinematica Direta Matlab-POS

úúúú

û

ù

êêêê

ë

é

DDD

1000987

654

321

zrrryrrrxrrr

3x3 rotationmatrix

3x1 translation

matrix

perspective global scale

Matriz de Transformação Homogênea 3D

Page 4: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Notação de Denavit-Hartenberg

■ Um robô pode ser especificado ao se descrever os valores de 4 parâmetros para cada elo:– comprimento (i-1), torção (i-1),

offset (i) e ângulo (i).■ A definição da mecânica de um

manipulador usando estes parâmetros segue a notação de Denavit-Hartenberg.

■ A Notação D-H especifica ainda...

Page 5: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Sistemas de referências

■ Cada corpo elementar (elo) da cadeia cinemática deve ser fixado em um sistema de referência (frame).

■ Existe uma convenção para anexar sistemas de referências aos elos, dada pela Notação D-H: – Frames são numerados de acordo com o

elo ao qual ele está ligado.– Frame {i} está ligado ao elo i.

Page 6: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Notação D-H a partir dos frames

■ ai: a distância entre os eixos Zi e Zi+1medida sobre o eixo Xi.

■ ai: o ângulo entre os eixos Zi e Zi+1medida sobre o eixo Xi.

■ di: a distância entre os eixos Xi-1 e Ximedida sobre o eixo Zi.

■ qi: o ângulo entre os eixos Xi-1 e Ximedidos sobre o eixo Zi.

Page 7: ROBOTICA-03-B-Cinematica Direta Matlab-POS

úúúú

û

ù

êêêê

ë

é--

-

=

úúúú

û

ù

êêêê

ë

é

úúúú

û

ù

êêêê

ë

é -

úúúú

û

ù

êêêê

ë

é

úúúú

û

ù

êêêê

ë

é-

=

----

----

-

-

--

--

1000coscoscos

coscoscos0cos

1000100

00100001

1000010000cos00cos

100001000010

001

10000cos00cos00001

1111

1111

1

1

11

11

iiiiiii

iiiiiii

iii

i

ii

iii

ii

ii

dsensensendsensensen

asen

dsen

sena

sensen

aaaqaqaaaqaq

qq

qqqq

aaaa

Transformação para um elo.

TTTTT Pi

QP

RQ

iR

ii

11 -- =

Notação para diminuir o tamanho:sen = scos = c

Page 8: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Matriz cinemática

■ Relaciona o sistema de coordenadas solidárias à base do robô com o sistema de coordenadas associadas à sua ferramenta terminal.

■ Em coordenadas homogêneas.■ Resulta do produto das matrizes de

transformação de cada elo:– Transforma passo a passo.

nin TTTTTT !!3210 =

Page 9: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Exemplo 3: Matriz Cinemáticapara o robô 3R

Page 10: ROBOTICA-03-B-Cinematica Direta Matlab-POS

úúúú

û

ù

êêêê

ë

é -

×

úúúú

û

ù

êêêê

ë

é -

×

úúúú

û

ù

êêêê

ë

é -

=

1000010000)cos()sin(

0)sin()cos(

1000010000)cos()sin(

0)sin()cos(

1000010000)cos()sin(00)sin()cos(

33

233

22

122

11

11

03

qqqq

qqqq

qqqq LL

T

úúúú

û

ù

êêêê

ë

é++++++++++-++

=

10000100

)sin()sin(0)cos()sin()cos()cos(0)sin()cos(

21211321321

21211321321

03

qqqqqqqqqqqqqqqqqq

LLLL

T

úúúú

û

ù

êêêê

ë

é++-

=

10000100

00

12211123123

21211123123

03

sLsLcccLcLsc

T

Matriz cinemática para o robô 3R

Page 11: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Robotics Toolbox para o Matlab

rvctools

Page 12: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Robotics Toolbox para o Matlab

■ Toolbox de livre distribuição (9ª edição):– http://petercorke.com/Robotics_Toolbox.ht

ml■ Possui modelo de alguns

manipuladores prontos:– PUMA560– Stanford Arm– ...

■ Permite criar seu próprio modelo.

Page 13: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Uso

■ Copie o diretório do toolbox de :– w:\eng\ele\bianchi\robotica\rvctools

■ para o diretório c:\alunos■ Mude de diretorio no matlab:

– cd c:\alunos\rvctools■ O comando abaixo deve ser executado

antes de iniciar o uso do toolbox:– startup_rvc

Page 14: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Criando um robô no Matlab

■ Criando os links:– L = Link([qi di ai ai], opção)

– onde opção (que é opcional) = • ‘standard’ – parametros padrão.• ‘r’ para Rotacional (default) e • ‘p’ para Prismática

■ Criando o robô:– r = SerialLink([Link1 Link2 ...])

Ângulos em radianos

Page 15: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Notação D-H

■ ai: a distância entre os eixos Zi e Zi+1medida sobre o eixo Xi.

■ ai: o ângulo entre os eixos Zi e Zi+1medida sobre o eixo Xi.

■ di: a distância entre os eixos Xi-1 e Ximedida sobre o eixo Zi.

■ qi: o ângulo entre os eixos Xi-1 e Ximedidos sobre o eixo Zi.

Page 16: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Métodos associados ao link

Page 17: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Propriedades associadas ao link

Page 18: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Métodosassociados ao robô

Page 19: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Propried.associadas ao robô

Page 20: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Criando um manipulador 2R

■ Queremos criar o seguinte manipulador 2R:– 2 juntas rotacionais no eixo z– links de 1 metro cada.

■ Parâmetros D-H:Link ai ai di qi1 1 0 0 q12 1 0 0 q2

Page 21: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Comandos para criar um 2R

■ Criando os links:L1 = Link([0 0 1 0])L2 = Link([0 0 1 0])

■ Criando o robô:r = SerialLink([L1 L2])

Page 22: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Gerou um robô...>> L1 = Link([ 0 0 1 0])L1 = theta=q, d= 0, a= 1, alpha= 0 (R,stdDH)

>> L2 = Link([ 0 0 1 0])L2 = theta=q, d= 0, a= 1, alpha= 0 (R,stdDH)

>> r = SerialLink([L1 L2])r = robot (2 axis, RR, stdDH) +---+-----------+-----------+-----------+-----------+

| j | theta | d | a | alpha |+---+-----------+-----------+-----------+-----------+| 1| q1| 0| 1| 0|| 2| q2| 0| 1| 0|+---+-----------+-----------+-----------+-----------+

grav = 0 base = 1 0 0 0 tool = 1 0 0 0 0 0 1 0 0 0 1 0 0

9.81 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1

Page 23: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Para visualizar o robô

■ r.plot(q):– Desenha o robô r na posição q, um vetor

que define os ângulos das juntas.■ r.teach():

– Permite visualizar e modificar os valores das juntas e gravar posições.

■ Use as ferramentas para:– Ampliar, Reduzir, Girar.

Page 24: ROBOTICA-03-B-Cinematica Direta Matlab-POS

r.plot([0 0])

-2-1

01

2

-2-1

01

2-2

-1

0

1

2

XY

Z

2R

xy z

Page 25: ROBOTICA-03-B-Cinematica Direta Matlab-POS

r.teach()

Page 26: ROBOTICA-03-B-Cinematica Direta Matlab-POS
Page 27: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Usando teach e plot

■ Voce pode usar o teach para gravar pontos, que ficam salvos na variávelqplot.

■ Depois, pode executar os movimentosde uma vez, usando:

r.plot(r.qteach)r.plot(r.qteach,'delay',1)

Page 28: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Outros métodos…

■ R.display() displays the robot parameters in human-readable form.

■ R.dyn() displays the inertial propertiesof the robot:– mass, centre of mass, inertia, gear ratio,

motor inertia and motor friction.■ Entre outras…

Page 29: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Robô Puma 560

■ O toolkit possui uma função que cria um robo tipo Puma 560:

■ Criando um robô PUMA:– mdl_puma560

■ Exibindo o robô :– p560.plot([0 0 0 0 0 0])

■ Note que o nome do robô criado é p560

Page 30: ROBOTICA-03-B-Cinematica Direta Matlab-POS

p560.plot([0 0 0 0 0 0])

Page 31: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Computando a cinemática direta

■ O método fkine é usada para computar a cinemática direta:– robot.fkine(q)onde:– robot = variável do robô.– q = vetor da posição das juntas.– RETORNA: a matriz de transformação...

■ Teste:– r.fkine([0 0])

Page 32: ROBOTICA-03-B-Cinematica Direta Matlab-POS

r.fkine([0 0])

■ ans =

■ 1 0 0 2■ 0 1 0 0■ 0 0 1 0■ 0 0 0 1

Page 33: ROBOTICA-03-B-Cinematica Direta Matlab-POS

r.plot([0 0])

Page 34: ROBOTICA-03-B-Cinematica Direta Matlab-POS

r.fkine([0 pi/2])

■ ans =

■ 0.00 -1.00 0 1.00■ 1.00 0.00 0 1.00■ 0 0 1.0000 0■ 0 0 0 1.00

Page 35: ROBOTICA-03-B-Cinematica Direta Matlab-POS

r.plot([0 pi/2])

Page 36: ROBOTICA-03-B-Cinematica Direta Matlab-POS

úúúú

û

ù

êêêê

ë

é

DDD

1000987

654

321

zrrryrrrxrrr

3x3 rotationmatrix

3x1 translation

matrix

perspective global scale

Ou seja, fkine retorna... A Matrizde Transformação Homogênea3D

Page 37: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Exercício 1:

■ Utilize a função teach para gravar os seguintes pontos:(0 0), (p/8 0), (p/4 0), (3p/8 0), (p/2 0), (p/2 p/8), (p/2 p/4), (p/2 3p/8), (p/2 p/2),(p/2 5p/8), (p/2 3p/4), (p/2 7p/8), (p/2 p)

■ E use a função plot para simular o movimento do manipulador:r.plot(r.qteach,'delay',1)

Page 38: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Exercício 2:

■ Calcular a posição do manipulador 2R usando fkine para os pontos:(0 0), (p/8 0), (p/4 0), (3p/8 0), (p/2 0), (p/2 p/8), (p/2 p/4), (p/2 3p/8), (p/2 p/2),(p/2 5p/8), (p/2 3p/4), (p/2 7p/8), (p/2 p)

■ E plote em um gráfico...– plot ([x1 x2 ...], [y1 y2 ..])

Page 39: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Exercício 3:Crie o robô da figura abaixo

Page 40: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Exercício 3:Crie o robô da figura abaixo

Page 41: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Para brincar em casa...

■ Crie um robô PUMA:– mdl_puma560 %define um robô puma

■ Brinque com ele:– P560.teach() % permite controle

■ Calcule a cinemática direta para o puma, em algumas posições diferentes a sua escolha.

Page 42: ROBOTICA-03-B-Cinematica Direta Matlab-POS

Matlab help

■ who: mostra as variáveis■ clear: limpa a memória.■ clc: limpa a tela de comando.■ cd: muda de diretório.■ home: limpa a tela.■ help general: o básico■ workspace: mostra graficamente os

objetos existentes.

Page 43: ROBOTICA-03-B-Cinematica Direta Matlab-POS

How do I put my hand here?

Fim… próxima aula (de teoria)…