Sei sulla pagina 1di 34

Robtica

Prof. Reinaldo Bianchi


Centro Universitrio da FEI
2013
3
a
Aula
Parte B
5 aula para a graduao
Robotics Toolbox para o Matlab
Toolbox de livre distribuio (9 edio):
http://petercorke.com/Robotics_Toolbox.ht
ml
Possui modelo de alguns
manipuladores prontos:
PUMA560
Stanford Arm
Permite criar seu prprio modelo.


Uso
Copie o diretrio do toolbox de :
w:\eng\ele\bianchi\robotica\rvctools
para o diretrio c:\alunos
Mude de diretorio no matlab:
cd c:\alunos\rcvtools
O comando abaixo deve ser executado
antes de iniciar o uso do toolbox:
startup_rvc
Criando um rob no Matlab
Criando os links:
L = Link([u
i
d
i
a
i
o
i
], opo)
onde opo (que opcional) =
standard parametros padro.
r para Rotacional (default) e
p para Prismtica
Criando o rob:
r = SerialLink([Link1 Link2 ...])

ngulos em radianos
Notao Danevit-Hartenberg
a
i
: a distncia entre os eixos z
i-1
e z
i

medida sobre o eixo x
i
.
o
i
: o ngulo entre os eixos z
i-1
e z
i

medida sobre o eixo x
i
.
d
i
: a distncia entre a origem do sistema
de referncia i - 1 ao eixo x
i
, medida
sobre o eixo z
i-1
.
u
i
: o ngulo entre os eixos x
i-1
e x
i

medidos sobre o eixo z
i-1
.
Mtodos associados ao link
Propriedades associadas ao link
Mtodos
associados
ao rob
Propried.
associadas
ao rob
Criando um manipulador 2R
Queremos criar o seguinte manipulador
2R:
2 juntas rotacionais no eixo z
links de 1 metro cada.
Parmetros D-H:
Link a
i
o
i
d
i
u
i
1 1 0 0
u
1
2 1 0 0
u
2
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])

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
Para visualizar o rob
r.plot(q):
Desenha o rob r na posio q, um vetor
que define os ngulos das juntas.
r.teach():
Permite visualizar e modificar os valores
das juntas e gravar posies.
Use as ferramentas para:
Ampliar, Reduzir, Girar.

r.plot([0 0])
-2
-1
0
1
2
-2
-1
0
1
2
-2
-1
0
1
2
X
Y
Z
2R
x y
z
r.teach()

Usando teach e plot
Voce pode usar o teach para gravar
pontos, que ficam salvos na varivel
qplot.
Depois, pode executar os movimentos
de uma vez, usando:
r.plot(r.qteach)
r.plot(r.qteach,'delay',1)

Outros mtodos
R.display() displays the robot
parameters in human-readable form.
R.dyn() displays the inertial properties
of the robot:
mass, centre of mass, inertia, gear ratio,
motor inertia and motor friction.
Entre outras
Rob Puma 560
O toolkit possui uma funo 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
p560.plot([0 0 0 0 0 0])
Computando a cinemtica direta
O mtodo fkine usada para
computar a cinemtica direta:
robot.fkine(q)
onde:
robot = varivel do rob.
q = vetor da posio das juntas.
RETORNA: a matriz de transformao...
Teste:
r.fkine([0 0])
r.fkine([0 0])
ans =

1 0 0 2
0 1 0 0
0 0 1 0
0 0 0 1

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

A
A
A
1 0 0 0
9 8 7
6 5 4
3 2 1
z r r r
y r r r
x r r r
3x3
rotation
matrix
3x1
translation
matrix
perspective global scale
Ou seja, fkine retorna... A Matriz
de Transformao Homognea
3D
Outros exemplos no matlab
Exerccio 1:
Utilize a funo teach para gravar os
seguintes pontos:
(0 0), (t/8 0), (t/4 0), (3t/8 0), (t/2 0),
(t/2 t/8), (t/2 t/4), (t/2 3t/8), (t/2 t/2),
(t/2 5t/8), (t/2 3t/4), (t/2 7t/8), (t/2 t)
E use a funo plot para simular o
movimento do manipulador:
r.plot(r.qteach,'delay',1)
Exerccio 2:
Calcular a posio do manipulador 2R
usando fkine para os pontos:
(0 0), (t/8 0), (t/4 0), (3t/8 0), (t/2 0),
(t/2 t/8), (t/2 t/4), (t/2 3t/8), (t/2 t/2),
(t/2 5t/8), (t/2 3t/4), (t/2 7t/8), (t/2 t)

E plote em um grfico...
plot ([x1 x2 ...], [y1 y2 ..])
Exerccio 3:
Crie o rob da figura abaixo

Exerccio 3:
Crie o rob da figura abaixo

Para brincar em casa...
Crie um rob PUMA:
mdl_puma560 %define um rob puma
Brinque com ele:
P560.teach() % permite controle
Calcule a cinemtica direta para o
puma, em algumas posies diferentes
a sua escolha.
Matlab help
who: mostra as variveis
clear: limpa a memria.
clc: limpa a tela de comando.
cd: muda de diretrio.
home: limpa a tela.
help general: o bsico
workspace: mostra graficamente os
objetos existentes.

Potrebbero piacerti anche