














Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Cinemática diferencial
Tipologia: Notas de estudo
1 / 22
Esta página não é visível na pré-visualização
Não perca as partes importantes!















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:
Av B = d(
B)/dt
Figura 3.1. Velocidade linear AvB.
xA
yA
zA
xB
yB
zB
B
Velocidade Angular :
A velocidade com que um corpo gira em relação a um referencial {A} é um atributo do referencial {B} fixo no mesmo. Para representar a velocidade de rotação de {B} em relação a {A}, duas abordagens são adotadas comumente: a derivada dos ângulos de orientação e o vetor de velocidade angular.
Derivada dos ângulos de orientação:
Seja a de {B} em relação a {A} especificada através de uma tripla de ângulos de Euler AΦB = [φ θ ψ]T. A velocidade de rotação de {B} em relação a {A} pode ser expressa pela derivada de AΦB em relação ao tempo:
dAΦB/dt = [dφ/dt dθ/dt dψ/dt]T
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.
φ
φ
θ
dφ/dt
xA
yA
zA
dθ/dt
dψ/dt
xA
yA
zA
xB
yB
zB
xC
zC
yC
Figura 3.4. Relação entre dAΦB/dt e o vetor de velocidade angular AωB.
Velocidade Linear Relativa:
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:
AP C =^
CB
Figura 3.5. Posições relativas entre referenciais móveis.
dψ/dt
φ
φ
θ
dφ/dt
xA
yA
zA
dθ/dt
Bω A
Derivando a expressão acima podemos obter o vetor velocidade linear de {C} em relação a {A} a partir das velocidades relativas de {B} em relação a {A} e de {C} em relação a {B}:
d(APC)/dt = d(APB)/dt + d(ARB.BPCB)/dt
⇒ AvC = AvB + d(ARB.BPCB)/dt
⇒ AvC = 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:
d(ARB)/dt.BPC = [d(AxB)/dt d(AyB)/dt d(AzB)/dt].BPC
Para determinar as derivadas que compõem as colunas de d(ARB)/dt, considere o referencial {B} girando em relação a {A} com velocidade angular AωB. Para efeito de simplificação, considere que {A} e {B} possuem a mesma origem (APB = 0), diferindo apenas na sua orientação (ARB variando em função de AωB). Dado um ponto BP com coordenadas fixas em {B}, a sua representação em {A} AP será também função de AωB.
Figura 3.6. Velocidade de um ponto fixo em um referencial que gira.
AP(t) AP(t+dt)
dAP(t)
AωB
AωBdt
θ
APsen(θ)
Aceleração Linear:
Definimos o vetor de aceleração linear AvB’ de um referencial corpo rígido B relativa a um referencial {A}como a derivada temporal do vetor de velocidade linear AvB de um referencial{B} relativa a {A}, onde {B} é fixo no corpo B:
AvB’ = d(AvB)/dt = [d(AvBx)/dt d(AvBy)/dt d(AvBz)/dt]T
Aceleração Angular:
Definimos o vetor de aceleração angular AωB’ de um corpo rígido B relativa a um referencial {A}como a derivada temporal do vetor de velocidade angular AωB de um referencial {B} relativa a {A}, onde {B} é fixo no corpo:
Aω B’ = d( Aω B)/dt = [d( Aω Bx)/dt^ d( Aω By)/dt^ d( Aω Bz)/dt] T
Aceleração linear relativa:
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:
Av C’ = d Av C/dt = d[ Av B +^ Aω B×(
B.d(
CB)/dt]/dt
⇒ AvC’ = dAvB/dt + (dAωB/dt)×(ARB.BPCB) + AωB×d(ARB.BPCB)/dt + d(ARB.d(BPCB)/dt)/dt
⇒ AvC’ = AvB’ + AωB’×(ARB.BPCB) + AωB× (dARB/dt).BPCB + AωB×ARB.(dBPCB/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:
Av C’ =^ Av B’ +^
B.d
CB)/dt (^2) + Aω B’×(
Aω B×(^ Aω B×
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).
zi xi
Elo i-
zi-
xi-
z (^0) x 0
y 0
i-
i
i- (^1) P i
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’ = d Aω C/dt = d[ Aω B +^
Bω CB]/dt = d Aω B/dt + d(
Bω CB)/dt
⇒ AωC’ =^ AωB’ + (dARB/dt).BωCB +^ ARB.dBω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’ +^
B.d Bω CB/dt +^ Aω B×^
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).
Considerando o manipulador robótico como uma cadeia cinemática aberta constituída por corpos rígidos (elos) interligados por juntas, utilizando as expressões obtidas para velocidades relativas entre referenciais móveis é possível determinar as velocidades relativas entre os elos do robô a partir das velocidades das juntas. A figura abaixo mostra a relação entre referenciais de dois elos consecutivos da cadeia cinemática, {i-1} e {i} e o referencial fixo na base do manipulador. Note que a posição de {i} em relação a {i-1} é dada pelo vetor i-1Pi = [ai-1 -sαi-1.di cαi-1.di]T, o qual, para juntas prismáticas, varia em função do deslocamento da junta i, d (^) i.
Figura 3.8. Posições relativas entre os elos móveis {i-1}, {i} e a base fixa {0}.
Multiplicando as equações recursivas de velocidade por iR 0 , é possível transformá- las de modo a que as velocidades do elo {i} sejam expressas apenas em função das velocidades do elo anterior {i-1) e da velocidade da junta i, dqi/dt.
Velocidade Angular em referencial de elo:
iR 0. (^0) ωi = iR 0 ( (^0) ωi-1 + 0 Ri.izi.dθi/dt) = iRi-1.i-1R 0. (^0) ωi-1 + iR 0. (^0) Ri.izi.dθi/dt
⇒ iωi = iRi-1.i-1ωi-1 + izi.dθi/dt
Velocidade Linear em referencial de elo:
iR
(^0) v i =^ iR 0 .( (^0) v i-1 +^ (^0) ω i-1×(
i-1. i-1P i) +^
i. iz i.d(di)/dt) = = iRi-1.i-1R 0.^0 vi-1 + iRi-1.i-1R 0 .[^0 ωi-1×(^0 Ri-1.i-1Pi)] + iR 0.^0 Ri.izi.d(di)/dt = = iRi-1.i-1vi-1 + iRi-1.[(i-1R 0. 0 ωi-1)×( i-1R 0.^0 Ri-1.i-1Pi)] + iR 0.^0 Ri.izi.d(di)/dt = iRi-1.i-1vi-1 + iRi-1.[i-1ωi-1×i-1Pi] + izi.d(di)/dt
⇒ ivi = iRi-1.(i-1vi-1 + i-1ωi-1×i-1Pi) + izi.d(di)/dt
De forma análoga ao procedimento feito acima para as velocidades dos elos, fazendo as mesmas substituições nas expressões obtidas para acelerações relativas em referenciais móveis, podemos facilmente obter equações recursivas que permitem computar as acelerações de um elo a partir das acelerações e velocidades do elo anterior e das acelerações e velocidades da junta associada. Para uma junta rotacional, a aceleração de rotação do elo {i} em relação ao elo anterior {i-1}, i-1ωi,i-1, é um vetor na direção do eixo zi da junta i, de magnitude igual à aceleraçãode rotação da mesma dθi/dt. Assim, expressando este vetor no referencial {i-1}, temos a seguinte substituição:
d(BωCB)/dt → d(i-1ωi,i-1)/dt = i-1Ri.izi.d^2 θi/dt^2
Para uma junta prismática, a aceleração de translação do elo {i} em relação ao elo {i-1}, d^2 (i-1Pi)/dt^2 , é um vetor na direção do eixo zi da junta i, de magnitude igual à aceleração de translação da mesma d^2 (di)/dt^2. Assim, expressando este vetor no referencial {i-1}, temos a seguinte substituição:
d^2 (BPCB)/dt^2 → d^2 (i-1Pi)/dt^2 = i-1Ri.izi.d^2 (di)/dt^2
Aceleração Angular em referencial de base:
(^0) ω i’ =^ (^0) ω i-1’ +^
i-1. i-1R i. iz i.d (^2) θ i/dt (^2) + 0 ω i-1×^
i-1. i-1R i. iz i.dθi/dt
⇒ 0 ωi’ = 0 ωi-1’ + 0 Ri.izi.d^2 θi/dt^2 + 0 ωi-1× 0 Ri.izi.dθi/dt
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.
Aceleração Linear em referencial de base:
(^0) v i’ =^ (^0) v i-1’ +^
i-1. i-1R i. iz i.d (^2) (d i)/dt (^2) + 0 ω i-1’×(
i-1. i-1P i) +^ (^0) ω i-1×(^ (^0) ω i-1×
i-1. i-1P i) +
⇒ 0 vi’ = 0 vi-1’ + 0 ωi-1’×(^0 Ri-1.i-1Pi) + 0 ωi-1×( 0 ωi-1×^0 Ri-1.i-1Pi) + 0 Ri.izi.d^2 (di)/dt^2 +
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.
Multiplicando as equações recursivas de aceleração por iR 0 , é possível transformá- las de modo a que as acelerações do elo {i} sejam expressas apenas em função da acelerações e velocidades do elo anterior {i-1) e da aceleração e velocidade da junta i, dqi/dt.
Aceleração Angular em referencial de elo:
iR 0. (^0) ωi’ = iR 0 .( (^0) ωi-1’ + 0 Ri.izi.d (^2) θi/dt (^2) + 0 ωi-1× 0 Ri.izi.dθi/dt) =
= iR 0.^0 ωi-1’ + iR 0.^0 Ri.izi.d^2 θi/dt^2 + iR 0 .[^0 ωi-1× 0 Ri.izi.dθi/dt] = = iRi-1.i-1R 0.^0 ωi-1’ + izi.d^2 θi/dt^2 + [(iR 0.^0 ωi-1)×( iR 0.^0 Ri.izi.dθi/dt)] = = iRi-1.i-1ωi-1’ + izi.d^2 θi/dt^2 + [(iRi-1.i-1R 0.^0 ωi-1)×( izi.dθi/dt)]
⇒ iωi’ = iRi-1.i-1ωi-1’ + izi.d^2 θi/dt^2 + (iRi-1.i-1ωi-1)×( izi.dθi/dt)
Aceleração Linear em referencial de elo:
iR
(^0) v i’ =^ iR 0 .{ (^0) v i-1’ +^ (^0) ω i-1’×(
i-1. i-1P i) +^ (^0) ω i-1×(^ (^0) ω i-1×
i-1. i-1P i) +^
i. iz i.d (^2) (d i)/dt
c 12 -s 12 0 (L 1 c 1 +L 2 c 12 ) s 12 c 12 0 (L 1 s 1 +L 2 s 12 ) 0 0 1 0 0 0 0 1
Velocidades angulares:
(^0) ω 0 = [0^0 0] T (^) (condição inicial)
(^1) ω 1 =^
(^0) ω 0 +^ (^1) z 1 .dθ 1 /dt = [0^0 dθ 1 /dt] T
(^2) ω 2 = 2 R 1. (^1) ω 1 + 2 z 2 .dθ 2 /dt = [0 0 (dθ 1 /dt+ dθ 2 /dt)]T
(^3) ω 3 =^
(^2) ω 2 +^ (^3) z 3 .dθ 3 /dt = [0^0 (dθ 1 /dt+ dθ 2 /dt)] T
⇒ 0 ω 3 = 0 R 3.^3 ω 3 = [0 0 (dθ 1 /dt+ dθ 2 /dt)]T
Velocidades lineares (como todas as juntas são rotacionais, d(di)/dt = 0):
(^0) v 0 = [0^0 0] T (^) (condição inicial).
(^1) v 1 = 1 R 0 .( (^0) v 0 + 0 ω 0 × (^0) P 1 ) = [0 0 0]T
(^2) v 2 =^
(^1) v 1 +^ (^1) ω 1 ×
2 ) = [(L 1 s 2 dθ 1 /dt)^ (L 1 c 2 dθ 1 /dt)^ 0] T
(^3) v 3 =^
(^2) v 2 +^ (^2) ω 2 ×
3 ) = [(L 1 s 2 dθ 1 /dt)^ (L 1 c 2 dθ 1 /dt+L 2 (dθ 1 /dt+dθ 2 /dt))^ 0] T
(^0) v 3 =^
(^3) v 3 = [(-L 1 s 1 dθ 1 /dt-L 2 s 12 (dθ 1 /dt+dθ 2 /dt))^ (L 1 c 1 dθ 1 /dt+L 2 c 12 (dθ 1 /dt+dθ 2 /dt))^ 0] T
Acelerações angulares:
(^0) ω 0 ’ = [0^0 0] T (^) (condição inicial)
(^1) ω 1 ’ =^
(^0) ω 0 ’ +^ (^1) z 1 .d (^2) θ 1 /dt
(^0) ω 0 )×(^ (^1) z 1 .dθ 1 /dt) = [0^0 d (^2) θ 1 /dt
(^2) ω 2 ’ =^
(^1) ω 1 ’ +^ (^2) z 2 .d (^2) θ 2 /dt
(^1) ω 1 )×(^ (^2) z 2 .dθ 2 /dt) = [0^0 (d (^2) θ 1 /dt (^2) + d (^2) θ 2 /dt
(^3) ω 3 ’ = 3 R 2. (^2) ω 2 ’ + 3 z 3 .d (^2) θ 3 /dt (^2) + ( (^3) R 2. (^2) ω 2 )×( 3 z 3 .dθ 3 /dt) = [0 0 (d (^2) θ 1 /dt (^2) + d (^2) θ 2 /dt (^2) )]T
⇒ 0 ω 3 = 0 R 3.^3 ω 3 = [0 0 (d^2 θ 1 /dt^2 + d^2 θ 2 /dt^2 )]T
Acelerações lineares (como todas as juntas são rotacionais, d(di)/dt = 0 e d^2 (di)/dt^2 = 0):
Para incluir o efeito da gravidade quando se analisa o comportamento dinâmico do robô, faremos uso do seguinte artifício: assumiremos que a base do robô sofre uma aceleração constante para cima igual à aceleração da gravidade g.
(^0) v 0 ’ = [0 g 0]T (^) (condição inicial)
(^1) v 1 ’ = 1 R 0 .[ (^0) v 0 ’ + 0 ω 0 ’× (^0) P 1 + 0 ω 0 ×( (^0) ω 0 × (^0) P 1 )] = [s 1 g c 1 g 0]T
(^2) v 2 ’ =^
(^1) v 1 ’ +^ (^1) ω 1 ’×
(^1) ω 1 ×( (^1) ω 1 ×
= [(s 12 g+L 1 s 2 d^2 θ 1 /dt^2 -L 1 c 2 (dθ 1 /dt)^2 ) (c 12 g+L 1 c 2 d^2 θ 1 /dt^2 +L 1 s 2 (dθ 1 /dt)^2 ) 0]T
(^3) v 3 ’ =^
(^2) v 2 ’ +^ (^2) ω 2 ’×
(^2) ω 2 ×( (^2) ω 2 ×
⇒ 3 v3x’ = s 12 g+L 1 s 2 d^2 θ 1 /dt^2 -L 1 c 2 (dθ 1 /dt)^2 -L 2 (dθ 1 /dt+dθ 2 /dt)^2 ⇒ 3 v3y’ = c 12 g+L 1 c 2 d^2 θ 1 /dt^2 +L 1 s 2 (dθ 1 /dt)^2 +L 2 (d^2 θ 1 /dt^2 +d^2 θ 2 /dt^2 ) ⇒ 3 v3z’ = 0
(^0) v 3 ’ =^
(^3) v 3 ’
⇒ 0 v3x’ = -L 1 s 1 d^2 θ 1 /dt^2 +L 1 c 1 (dθ 1 /dt)^2 -L 2 c 12 (dθ 1 /dt+dθ 2 /dt)^2 -L 2 s 12 (d^2 θ 1 /dt^2 +d^2 θ 2 /dt^2 ) ⇒ 0 v3y’ = L 1 c 1 d^2 θ 1 /dt^2 -L 1 s 1 (dθ 1 /dt)^2 -L 2 s 12 (dθ 1 /dt+dθ 2 /dt)^2 +L 2 c 12 (d^2 θ 1 /dt^2 +d^2 θ 2 /dt^2 ) + g ⇒ 0 v3z’ = 0
A seguir, derivaremos expressões matriciais compactas para as velocidades de elo. Desta forma, as expressões resultantes serão mais fáceis de manipular. Com este objetivo, definiremos o operador matricial produto vetorial equivalente. Dados dois vetores v e p, o seu produto vetorial pode ser expresso matricialmente da seguinte forma:
v×p = [v×].p
onde [v×] é o operador matricial produto vetorial, definido como:
[v×] =
0 -vz vy vz 0 -vx -vy vx 0
Este operador possui as seguintes propriedades:
a) [v×]T^ = -[v×]
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]
i =^ i[R] 0 .[
i,i-1]
i-1 +^ i[R]
i.dqi/dt =^ i[R] 0 .[
i,i-1]
i-1. i-1V i-1 +^ iZ i.dqi/dt
⇒ iVi = [i-1Li]T.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-1L i =^ i-1[R]
i,i-1.
i =^ i-1R i [i-1Pi×].i-1Ri 0 i-1Ri
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:
dP/dt = J(q).dq/dt = [∂f(q)/∂qT].dq/dt
∂f 1 (q)/∂q 1 ... ∂f 1 (q)/∂qM ⇒ J(q) = [∂f(q)/∂qT] = :^ : ∂fN(q)/∂q 1 ... ∂fN(q)/∂qM
Singularidades do mecanismo:
O Jacobiano contém importante informação estrutural sobre o mecanismo do robô manipulador. O número de linhas linearmente independentes de J(q) é igual ao número de graus de liberdade controláveis em espaço cartesiano. O número de colunas de J(q) é igual ao número de graus de liberdade em espaço de juntas. Seja V o vetor de velocidades em espaço cartesiano e dq/dt o vetor de velocidades em espaço de juntas, então:
V = J(q).dq/dt
A partir da expressão acima, é possível expressar as velocidades de junta em função das velocidades em espaço cartesiano. Multiplicando os dois lados por J(q)T^ e isolando dq/dt:
J(q)T.V = J(q)T.J(q).dq/dt ⇒ dq/dt = [J(q)T.J(q)]-1.J(q)T.V
Se M é maior do que N, os graus de liberdade disponíveis em espaço de juntas são insuficientes para controlar todos os graus de liberdade em espaço cartesiano e só é possível alcançar objetivos dentro de um subespaço de trabalho. Se M é menor do que N, o número de graus de liberdade em espaço de juntas excede o necessário para realizar a tarefa, ou seja, o manipulador é redundante. Se M é igual a N, o numero de graus de liberdade em espaço de juntas é suficiente para atingir objetivos gerais em espaço cartesiano, desde que J(q) seja de rank completo. Neste caso, a expressão acima pode ser simplificada como:
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:
⇒ conjunto de configurações singulares = {q / det(J(q)) = 0}
As singularidades podem ser:
Numa singularidade, o manipulador perde um ou mais graus de liberdade em espaço cartesiano. Neste caso, existirão direções ao longo das quais é impossível movimentar a ferramenta, independente da velocidade das juntas:
dq/dt = J(q)-1.V → ∞
Se não tratadas adequadamente no controlador, as singularidades podem levar à geração de referências de velocidades de junta muito elevadas que podem sobrecarregar os atuadores. Em uma aplicação real, nas vizinhanças de uma singularidade, o jacobiano torna-se mal condicionado numericamente. Assim, na prática, é necessário implementar métodos de medição da distância às singularidades e técnicas para contorná-las.
Exemplo: Para um manipulador planar de dois graus de liberdade, determine: a) o jacobiano relacionando velocidades de junta a velocidades em referencial de ferramenta e velocidades de junta a velocidades em referencial de base; b) as singularidades do mecanismo; c) as velocidades de junta necessárias para fazer com que a garra se movimente ao longo do eixo x com velocidade 0 v3x.
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:
dθ 1 /dt = (1/L 1 .L 2 .s 2 ).^ (L 2 c 12 )^ (L 2 s 12 )^.^0 v3x dθ 1 /dt (-L 1 c 1 -L 2 c 12 )^ (-L 1 s 1 -L 2 s 12 )^0
⇒ dθ 1 /dt = 0 v3x.c 12 /(L 1 .s 2 ) dθ 2 /dt = 0 v3x.(-L 1 c 1 -L 2 c 12 )/(L 1 .L 2 .s 2 )
Verifica-se que, para θ 2 →0, dθ 1 /dt e dθ 2 /dt → ∞.
Cálculo do jacobiano:
Determinando a velocidade da garra recursivamente , a partir das velocidades de junta, iniciando da base do manipulador, temos:
⇒ iVi = [i-1Li]T.i-1Vi-1 + iZi.dqi/dt
(^0) V 0 = 0 (^1) V 1 =^
1
1 .dq 1 /dt =^
2 1 .dq^1 /dt V 2 = 1 L 2 T.^1 V 1 + 2 Z 2 .dq 2 /dt = 1 L 2 T.^1 Z 1 .dq 1 /dt + 2 Z 2 .dq 2 /dt (^3) V 3 =^
3,
3 .dq 3 /dt =^
3
2
1 .dq 1 /dt +^
3,
2 .dq 2 /dt +^
3 .dq 3 /dt : :
Adotando a seguinte nomenclatura: iLk = iLi+1.i+1Li+2. .... k-2Lk-1.k-1Lk, ou, de forma análoga, kL i =^ iL k T (^) = k-1L k T.k-2L k- T. .... i+1L i+ T.i+1L i T, a seguinte lei de formação pode ser derivada
das equações acima para a velocidade da ferramenta:
N+1V N+1 =^
1 .dq 1 /dt+^
2 .dq 2 /dt+ ...+
N-1.dqN-1/dt+^
N.dqN/dt
⇒ N+1VN+1 = [N+1L 1.^1 Z 1 N+1L 2.^2 Z 2 ... N+1LN.NZN].[ dq1/dt dq 2 /dt ... dqN/dt]T
como N+1VN+1 = N+1J(q).dq/dt,
N+1J(q) = [N+1L 1. (^1) Z 1 N+1L 2. (^2) Z 2 ... N+1LN.NZN]
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+ através de 0 VN+1 = 0 [R]N+1.N+1VN+1 e 0 VN+1 = 0 J(q).dq/dt, temos:
(^0) V N+1 =^
N+1J(q).dq/dt = 0 J(q).dq/dt
⇒ 0 J(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+1J i(q) é calculada partindo da ferramenta, (referencial {N+1}), até a base, (referencial {0}):
Cálculo recursivo do Jacobiano:
Jacobiano quando a orientação é dada por ângulos de Euler:
Considere a orientação da garra em relação à base expressa através de uma tripla de ângulos de Euler ZYZ, 0 ΦN+1 = [φ θ ψ]T, de tal modo que a velocidade angular da ferramenta em relação à base seja descrita pela derivada temporal d(^0 ΦN+1)/dt. Considere a posição da garra em relação à base dada expressa através do vetor de posição 0 PN+1, de tal modo que a velocidade linear da ferramenta em relação à base seja descrita pela derivada temporal d(^0 PN+1)/dt. Definimos o vetor de localização generalizado da ferramenta em relação à base como:
(^0) L Φ = [
N+
N+
A partir de 0 LΦ, podemos definir o vetor de velocidades generalizadas em eixos móveis como:
(^0) V Φ = d
Φ/dt = [(d(
N+1)/dt.) T (^) (d( (^0) P N+1)/dt)
Da mesma forma que para as velocidades generalizadas 0 VN+1, podemos obter a relação entre 0 VΦ e o vetor de velocidades de junta dq/dt, através de uma matriz jacobiana 0 JΦ(q):
(^0) V Φ =^
Φ(q).dq/dt
onde 0 JΦ(q) = ∂^0 LΦ(q)/∂qT.
A derivada d(^0 PN+1)/dt representa a velocidade linear da ferramenta, 0 vN+1. Por outro lado, o vetor de velocidade angular da ferramenta 0 ωN+1 se relaciona com d^0 ΦN+1/dt através da matriz RΦ:
(^0) ω N+1 =
0 -sφ cφsθ 0 cφ sφsθ 1 0 cθ
d^0 ΦN+1/dt = RΦ.d^0 ΦN+1/dt