Você está na página 1de 5

27/3/10

Robótica 4a Aula

Prof. Reinaldo Bianchi Parte B


Centro Universitário da FEI
2010

Robotics Toolbox para o Matlab Demos

  Toolbox de livre distribuição:   Copie o toolbox de :


–  http://petercorke.com/ –  w:\eng\ele\bianchi\robotica\robot.zip
Robotics_Toolbox.html   para o seu diretório f: e unzipe-o.
  Possui modelo de alguns   Mude de diretorio no matlab:
manipuladores prontos: –  cd f:\robot
–  PUMA560
  Execute as demos do toolbox:
–  Stanford Arm
–  rtdemo
  Permite criar seu próprio modelo.

Criando um robô no Matlab Notação Danevit-Hartenberg


Ângulos em radianos
  Criando os links:   ai: a distância entre os eixos zi-1 e zi
– Link = link([αi ai θi di tipo]) medida sobre o eixo xi.
–  onde tipo (que é opcional)=   αi: o ângulo entre os eixos zi-1 e zi
•  0 para Rotacional (default) e medida sobre o eixo xi.
•  1 para Prismática
  di: a distância entre a origem do
  Criando o robô: sistema de referência i - 1 ao eixo xi,
– r = robot({Link1 Link2 ...}) medida sobre o eixo zi-1 .
  θi: o ângulo entre os eixos xi-1 e xi
medidos sobre o eixo zi-1.

1
27/3/10

Funções Funções
associadas associadas
ao link ao robot

Criando um manipulador 2R Comandos para criar um 2R

  Queremos criar o seguinte manipulador   Criando os links:


2R: – L1 = link([0 1 0 0 0])
–  2 juntas rotacionais no eixo z – L2 = link([0 1 0 0 0])
–  links de 1 metro cada.   Criando o robô:
  Parâmetros D-H: – r = robot({L1 L2})

Gerou um robô... Para visualizar o robô


L1 =

0.000000 1.000000 0.000000 0.000000 R (std)   plot(r, q):


L2 =
–  Desenha o robô r na posição q, um vetor
0.000000 1.000000 0.000000 0.000000 R (std)
que define os ângulos das juntas.
  drivebot(r):
r =
–  Permite visualizar e modificar os valores
noname (2 axis, RR)
grav = [0.00 0.00 9.81] standard D&H parameters das juntas.
alpha A theta D R/P   Use as ferramentas para:
0.000000 1.000000 0.000000 0.000000 R (std)
0.000000 1.000000 0.000000 0.000000 R (std) –  Ampliar, Reduzir, Girar.

2
27/3/10

plot(r, [0 0]) Caixa para controlar o robô

Robô Puma 560

  O toolkit possui uma função que cria um


robo tipo Puma 560:
  Criando um robô PUMA:
– puma560
  Exibindo o robô :
– plot(p560, [0 0 0 0 0 0])
  Note que o nome do robô criado é p560

plot(p560, qz) Computando a cinemática direta

  A função fkine é usada para computar


a cinemática direta:
– fkine(robot, q)
onde:
– robot = modelo do robô.
– q = vetor da posição das juntas.
–  RETORNA: a matriz de transformação...
  Teste:
– fkine(r, [0 0])

3
27/3/10

fkine(r, [0 0]) plot(r, [0 0])

  ans =

  1 0 0 2
  0 1 0 0
  0 0 1 0
  0 0 0 1

fkine(r, [0 pi/2]) plot(r, [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

Ou seja... A função transl

  A matriz retorna:   A função transl(m) retorna o


  - - - X componente translacional de uma
  - - - Y matriz de transformação homogênea.
  Use:
  - - - Z
– m = fkine(r, [pi/4 pi/2])
  - - - 1
– transl(m)

4
27/3/10

Exercício: Exercício 2: PUMA

  Calcular a posição do manipulador 2R   Crie um robô PUMA:


para os pontos: –  puma560 %define um robô puma
–  (0 0), (π/8 0), (π/4 0), (3π/8 0), (π/2 0),   Brinque com ele:
–  (π/2 π/8), (π/2 π/4), (π/2 3π/8), (π/2 π/2), –  drivebot(p560) % permite controle
–  (π/2 5π/8), (π/2 3π/4), (π/2 7π/8), (π/2 π)   Calcule a cinemática direta para o
puma, em algumas posições diferentes
  E plote em um gráfico... a sua escolha.
–  plot ([x1 x2 ...], [y1 y2 ..])

Exercício 3: 2 pumas animados Exercício 4:


puma560   Construa um robô 1R + 1P como o da
p560b = p560; figura
p560b.name = 'Another Puma 560';
p560b.base = transl([-.05 0.5 0]);
plot(p560, qr);
plot(p560b, qr);
t = [0:0.2:10];
jt = jtraj(qr, qstretch, t);
plot(p560, jt);
plot(p560b, jt);
end

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.

Você também pode gostar