Escolar Documentos
Profissional Documentos
Cultura Documentos
CINEMÁTICA DIFERENCIAL
Neste capítulo abordamos a descrição do movimento do robô manipulador sem
levar em conta os esforços que o produzem. Um importante problema cinemático associado
ao movimento do robô é o mapeamento de velocidades e acelerações entre espaço
cartesiano e espaço de juntas. Este problema pode ser descrito matematicamente através de
uma matriz, que incorpora importantes informações estruturais sobre o comportamento do
robô, a qual é denominada matriz jacobiana, ou simplesmente jacobiano. Um problema
análogo é o mapeamento de esforços estáticos (com o manipulador parado). Este problema
consiste em determinar o mapeamento entre os esforços a que a garra é submetida quando
manipulando objetos (esforços em espaço cartesiano) e os esforços correspondentes
exercidos pelos atuadores das juntas. Este problema está diretamente relacionado ao
mapeamento definido pelo jacobiano para velocidades.
Velocidade Linear:
Considere um corpo rígido com um referencial {B} fixo no mesmo. Seja a posição
do corpo em relação a um referencial {A} dada pelo vetor de posição APB, a velocidade
com que o corpo se translada em relação a {A} é um atributo do ponto de origem APB.
Assim, a velocidade linear de {B} em relação a {A}, AvB, é definida pela derivada temporal
de APB:
A
vB = d(APB)/dt
zB
zA
yB
A xB
PB
yA
xA
zA
dφ/dt
θ
dψ/dt
dθ/dt
φ
yA
φ
xA
Figura 3.2. Rotação representada pela derivada dos ângulos de Euler ZYZ.
Nesta representação, a integral de dAΦ B/dt corresponde obviamente ao vetor AΦ B, que tem
um significado físico claro. Por outro lado, dAΦ B/dt é um vetor de componentes de rotação
não ortogonais em torno de eixos de um referencial torto, os quais variam de acordo com
valor corrente de AΦ B.
Vetor de Velocidade Angular:
zAB
A
ωB
yAB
yA
xA xAB
A partir da figura abaixo, pode-se verificar que o vetor de velocidade angular AωB se
relaciona com o vetor dAΦ b/dt através da expressão matricial:
0 -sφ cφsθ
A
ωB = 0 cφ sφsθ dAΦ B/dt = RΦ.dAΦ B/dt
1 0 cθ
zA
dφ/dt dψ/dt
θ dθ/dt
φ
yA
φ
xA
Figura 3.4. Relação entre dAΦ B/dt e o vetor de velocidade angular AωB.
Considere três referenciais móveis {A}, {B} e {C}. Denote APB a posição de {B}
relativa a {A}, BPCB a posição de {C} relativa a {B} e APC a posição de {C} relativa a {A}.
Esta última pode ser obtida a partir de APB e BPC através de uma simples soma vetorial,
desde que os dois vetores sejam expressos no mesmo sistema de coordenadas.
Representando BPCB em {A} através da matriz de rotação ARB, que especifica a orientação
de {B} relativa a {A}, temos:
A
PC = APB + ARB.BPCB
yC
xC
yB
A
yA PC B
PCB zC
xB
A
PB
xA zB
zA
⇒ A
vC = AvB + d(ARB.BPCB)/dt
⇒ A
vC = AvB + d(ARB)/dt.BPCB + ARB.d(BPCB)/dt
O segundo termo do lado direito da equação acima, que envolve a derivada e ARB, é uma
componente de velocidade que aparece quando ARB varia, ou seja, quando {B} está girando
em relação a {A}. Isto gera uma componente de velocidade linear de {C} em relação a
{A}, mesmo se {B} não se translade em relação a {A} e {C} não faça o mesmo em relação
a {B}. Detalhando o termo d(ARB)/dt.BPC:
A
ωB
APsen(θ)
A
ωBdt
d AP(t)
A
A
P(t) P(t+dt)
d(AP)/dt = AωB×AP
Desta forma, para o caso particular em que o vetor AP for igual aos eixos do referencial {B}
expressos em {A}, AxB, AyB e AzB, temos:
Assim:
Desta forma, a velocidade linear relativa de {C} em relação a {A} pode ser expressa como:
A
vC = AvB + AωB×(ARB.BPCB) + ARB.d(BPCB)/dt
De forma análoga ao caso linear, denote AωB a velocidade angular de {B} relativa a
{A}, BωCB a velocidade angular de {C} relativa a {B} e AωC a velocidade angular de {C}
relativa a {A}. Esta última pode ser obtida a partir de AωB e BωCB através de uma simples
soma vetorial, desde que os dois vetores sejam expressos no mesmo sistema de
coordenadas. Representando BωCB em {A} através da matriz de rotação ARB, que especifica
a orientação de {B} relativa a {A}, temos:
A
ωC = AωB + ARB.BωCB
ωC
A
yB yC
B
ωCB
xC
yA ωB
A
A
ωB
xB
xA zB zC
zA
Aceleração Linear:
Aceleração Angular:
Considere três referenciais móveis {A}, {B} e {C}. Denote AvC’ a aceleração linear de {C}
relativa a {A}. Esta pode ser obtida derivando a expressão correspondente da velocidade
linear AvC, função de AvB, AωB e dBPCB/dt:
A
vC’ = dAvC/dt = d[AvB + AωB×(ARB.BPCB) + ARB.d(BPCB)/dt]/dt
Usando a identidade derivada anteriormente para a derivada de uma matriz de rotação ARB
vezes um vetor BV: d(ARB)/dt.BV = AωB×(ARB.BV), temos:
A
vC’ = AvB’ + ARB.d2(BPCB)/dt2 + AωB’×(ARB.BPCB) + AωB×( AωB×ARB.BPCB) +
+ 2.(AωB×ARB.d(BPCB)/dt)
Os dois primeiros termos do lado direito representam a soma vetorial das acelerações
lineares de {B} e {C} expressas em {A}. O terceiro termo é uma componente de aceleração
linear devido à aceleração angular de {B} e a que {C} está a uma distância BPC de {B}. Os
dois últimos termos representam componentes de aceleração linear coriolis (produtos de
velocidades) e centrífuga (velocidades ao quadrado).
Aceleração angular relativa:
Considere três referenciais móveis {A}, {B} e {C}. Denote AωC’ a aceleração linear de {C}
relativa a {A}. Esta pode ser obtida derivando a expressão correspondente da velocidade
linear AωC, função de AωB, e BωCB:
A
ωC’ = dAωC/dt = d[AωB + ARB.BωCB]/dt = dAωB/dt + d(ARB.BωCB)/dt
Usando a identidade derivada anteriormente para a derivada de uma matriz de rotação ARB
vezes um vetor BV: d(ARB)/dt.BV = AωB×(ARB.BV), temos:
A
ωC’ = AωB’ + ARB.dBωCB/dt + AωB× ARB.BωCB
Os dois primeiros termos do lado direito representam a soma vetorial das acelerações
angulares de {B} e {C} expressas em {A}. O último termo representa componentes de
aceleração angular coriolis (produtos de velocidades) e centrífuga (velocidades ao
quadrado).
zi
zi-1
xi
z0 x0
Figura 3.8. Posições relativas entre os elos móveis {i-1}, {i} e a base fixa {0}.
Utilizando as expressões obtidas para velocidades relativas entre referenciais
móveis, podemos determinar as velocidades lineares e angulares do elo {i} em relação à
base a partir das velocidades lineares e angulares do elo anterior, (o elo {i-1}) e da
velocidade relativa entre ambos, a qual é dependente da velocidade da junta {i}. Nas
equações de velocidade angular relativa e de velocidade linear relativa faremos a seguinte
substituição de referenciais: {A} por {0}, {B} por {i-1} e {C} por {i}. Para uma junta
rotacional, a velocidade de rotação do elo {i} em relação ao elo {i-1}, i-1ωi,i-1, é um vetor na
direção do eixo zi da junta i, de magnitude igual à velocidade de rotação da mesma dθi/dt.
Assim, expressando este vetor no referencial {i-1}, temos a seguinte substituição:
B
ωCB → i-1ωi,i-1 = i-1Ri.izi.dθi/dt
Note que, para uma junta prismática, o termo d(θi)/dt é zero. Portanto, no caso em que a
junta i é prismática, o último termo da equação acima será nulo.
Note que, para uma junta rotacional, o termo d(di)/dt é zero. Portanto, no caso em que a
junta i for rotacional, o último termo da equação acima será nulo.
Para uma junta prismática, a aceleração de translação do elo {i} em relação ao elo
{i-1}, d2(i-1Pi)/dt2, é um vetor na direção do eixo zi da junta i, de magnitude igual à
aceleração de translação da mesma d2(di)/dt2. Assim, expressando este vetor no referencial
{i-1}, temos a seguinte substituição:
Note que, para uma junta prismática, o termo d(θi)/dt e sua derivada são iguais a zero.
Portanto, no caso em que a junta i é prismática, os últimos dois termos da equação acima
serão nulos.
Note que, para uma junta rotacional, o termo d(si)/dt e sua derivada são iguais a zero.
Portanto, no caso em que a junta i é rotacional, os últimos dois termos da equação acima
serão nulos.
+ 2.[0ωi-1×(0Ri.izi.d(di)/dt)]} =
= iR0.0vi-1’ + iR0.[0ωi-1’×(0Ri-1.i-1Pi)] + iR0.[0ωi-1×( 0ωi-1×0Ri-1.i-1Pi)] +
+ iR0.0Ri.izi.d2(di)/dt2 + 2. iR0.[0ωi-1×(0Ri.izi.d(di)/dt)] =
R0.0vi’ = iRi-1.i-1R0.0vi-1’ + iRi-1.[ (i-1R0.0ωi-1’)×( i-1R0.0Ri-1.i-1Pi)] +
i
L2
y3
i ai-1 αi-1 di θi
1 0 0 0 θ1 L1 y2 θ2 x3
2 L1 0 0 θ2 y0 x1 x2
3 L2 0 0 0 y1
θ1
x0
cθ 2 -sθ 2 0 L1
1
T2 = sθ 2 cθ2 0 0
0 0 1 0
0 0 0 1
1 0 0 L2
2
T3 = 0 1 0 0
0 0 1 0
0 0 0 1
c12 -s12 0 (L1c1+L2c12)
⇒ T3 =
0
s12 c12 0 (L1s1+L2s12)
0 0 1 0
0 0 0 1
Velocidades angulares:
ω0 = [0 0 0]T
0
(condição inicial)
0
v3 = 0R3.3v3 = [(-L1s1dθ 1/dt-L2s12(dθ1/dt+dθ2/dt)) (L1c1dθ 1/dt+L2c12(dθ 1/dt+dθ2/dt)) 0]T
Acelerações angulares:
ω0’ = [0 0 0]T
0
(condição inicial)
⇒ 3v3x’ = s12g+L1s2d2θ1/dt2-L1c2(dθ1/dt)2-L2(dθ1/dt+dθ2/dt)2
⇒ 3v3y’ = c12g+L1c2d2θ1/dt2+L1s2(dθ1/dt)2+L2(d2θ1/dt2+d2θ2/dt2)
⇒ 3v3z’ = 0
0
v3’ = 0R3.3v3’
v×p = [v×].p
0 -vz vy
[v×] = vz 0 -vx
-vy vx 0
a) [v×]T = -[v×]
b) Dados dois referenciais {A} e {B},
Usando o operador matricial para o produto vetorial e lembrando que 0Ri = (iR0)T, as
equações para velocidades de elo angulares e lineares em referencial de base podem ser
escritas como:
ωi = 0ωi-1 + 0Ri.izi.dθi/dt
0
onde, 0Vi = [0ωiT 0viT]T é o vetor de velocidades generalizadas do elo {i} expresso em
referencial de base. O escalar qi é a variável da junta i, (q i = θi, se a junta i for rotacional ou
qi = di, se a junta i for prismática). A matriz 6×6 de localização do elo {i} em relação ao elo
{i-1}, expressa em referencial de base, é dada por:
0
Li,i-1 = I [(0Ri-1.i-1Pi)×]
0 I
onde a mascara da junta i é escolhida como iZi = [0 0 1 0 0 0]T se a junta i for rotacional
e iZi = [0 0 0 0 0 1] T caso a junta i for prismática. A matriz de rotação generalizada 6×6,
0
[R]i, permite mapear velocidades generalizadas expressas no elo {i} para a sua
representação em referencial de base:
0 0
[R]i = Ri 0
0
0 Ri
⇒ 0Vi = 0[R]i.iVi
onde iVi = [iωiT ivi]T é o vetor de velocidades generalizadas do elo {i} expresso no seu
próprio referencial.
Multiplicando a equação recursiva de velocidades generalizadas por i[R]0 = 0[R]i-1 = 0[R]iT,
podemos obter uma representação equivalente, onde as velocidades generalizadas estão
expressas no seu próprio referencial:
i
[R]0.0Vi = i[R]0.[0Li,i-1]T.0Vi-1 + i[R]0.0Zi.dqi/dt = i[R]0.[0Li,i-1]T.0[R]i-1.i-1Vi-1 + iZi.dqi/dt
onde, a matriz 6×6 de localização do elo {i} em relação ao elo {i-1}, expressa em seu
próprio referencial, é dada por:
[i-1Pi×].i-1Ri
i-1
Li = i-1[R]0.0Li,i-1.0[R]i = i-1
Ri
i-1
0 Ri
3.8. Jacobiano:
A matriz jacobiana:
Dada a função P = f(q), que relaciona o vetor qN×1 com o vetor PM×1, a matriz jacobiana
M×N, ou simplesmente Jacobiano, mapeia a derivada de q na derivada de P:
Singularidades do mecanismo:
V = J(q).dq/dt
dq/dt = J(q)-1.V
Verifica-se que, se para uma dada configuração q, a matriz J(q) for singular, a matriz J(q)
não é mais de rank completo e a inversão não é possível. As configurações para as quais
isto acontece são denominadas Singularidades do Mecanismo:
dq/dt = J(q)-1.V → ∞
a) Como o robô consegue apenas controlar a posição da ferramenta no plano (x,y) a partir
do vetor de variáveis de junta q = [θ1 θ2]T, definiremos nossa tarefa de posicionamento em
espaço cartesiano como P = [x y]T. Desta maneira, as velocidades em espaço cartesiano
expressas em referencial de ferramenta e em referencial de base são, respectivamente:
3
(dP/dt) = [3v3x 3v3y] =
= [(L1s2dθ1/dt) (L1c2dθ 1/dt+L2(dθ1/dt+dθ2/dt))]T
0
(dP/dt) = [0v3x0v3y] =
= [(-L1s1dθ 1/dt-L2s12(dθ1/dt+dθ2/dt)) (L1c1dθ 1/dt+L2c12(dθ 1/dt+dθ2/dt))]T
q = 0J(q)-1.0V3x
0
dθ1/dt = (1/L1.L2.s2). (L2c12) (L2s12) . v3x
dθ1/dt (-L1c1-L2c12) (-L1s1-L2s12) 0
Cálculo do jacobiano:
Adotando a seguinte nomenclatura: iLk = iLi+1.i+1Li+2. ... . k-2Lk-1.k-1Lk, ou, de forma análoga,
k
Li = iLkT = k-1LkT.k-2Lk-1T. ... . i+1Li+2T.i+1LiT, a seguinte lei de formação pode ser derivada
das equações acima para a velocidade da ferramenta:
N+1
VN+1 = N+1L1.1Z1.dq 1/dt+ N+1L2.2Z2.dq2/dt+ ...+N+1LN-1.N-1ZN-1.dqN-1/dt+ N+1LN.NZN.dqN/dt
onde cada coluna i do jacobiano é dada por N+1Ji(q) = N+1Li.iZi. Por outro lado, como as
velocidades da garra expressas em referencial de base podem ser obtidas a partir de N+1VN+1
através de 0VN+1 = 0[R]N+1.N+1VN+1 e 0VN+1 = 0J(q).dq/dt, temos:
0
VN+1 = 0[R]N+1.N+1VN+1 = 0[R]N+1.N+1J(q).dq/dt = 0J(q).dq/dt
⇒ 0J(q) = 0[R]N+1.N+1J(q)
Assim, temos o seguinte procedimento recursivo para cálculo do jacobiano (em referencial
de ferramenta) de robôs manipuladores seriais genéricos de N juntas, onde cada coluna
N+1
Ji(q) é calculada partindo da ferramenta, (referencial {N+1}), até a base, (referencial
{0}):
Cálculo recursivo do Jacobiano:
1) i = N+1
N+1
2) LN+1 = I
3) i = i-1
i
4) LN+1 = iLi+1.i+1LN+1
N+1
5) Ji(q) = N+1Li.iZi
6) enquanto i > 1, volte ao passo 3)
LΦ = [0Φ N+1T
0 0
PN+1T]T
Da mesma forma que para as velocidades generalizadas 0VN+1, podemos obter a relação
entre 0VΦ e o vetor de velocidades de junta dq/dt, através de uma matriz jacobiana 0JΦ(q):
0
VΦ = 0JΦ(q).dq/dt
A derivada d(0PN+1)/dt representa a velocidade linear da ferramenta, 0vN+1. Por outro lado,
o vetor de velocidade angular da ferramenta 0ωN+1 se relaciona com d0Φ N+1/dt através da
matriz RΦ:
0 -sφ cφsθ
ωN+1 =
0
0 cφ sφsθ d0Φ N+1/dt = RΦ.d0ΦN+1/dt
1 0 cθ
Lembrando que 0VN+1 = [0ωN+1T 0
vN+1T]T, temos:
0
VN+1 = TΦ .0VΦ
TΦ = RΦ 0
0 I
Por outro lado, 0VN+1 = 0J(q).dq/dt. Assim, comparando estas duas expressões, temos
0
J(q) = TΦ.0JΦ(q)
φ
y
(x,y)
θ3
L3
L2 θ
2
L1
θ1
x
Figura 3.10. Robô manipulador articulado planar com três graus de liberdade.
φ = θ 1 + θ2 + θ 3