Sistemas de Coordenadas
Renato Paes Leme
1
Mudança de Coordenadas
Na Robótica usa-se normalmente uma série de sistemas de coordenadas simultaneamente. Seja Σ0 o sistema de coordenadas de referência (que podemos
nos referir também como a base canônica), e sejam Σ1 , Σ2 , Σ3 , ... outros
sistemas coordenados. Cada sisterma coordenado Σi é denido por um ponto
−
→
→
de origem e por três vetores →
ni , −
oi , −
ai , que constituem uma base ortonormal
para o espaço.
O conceito de Sistemas de Coordenadas na Robótica é mais amplo. Cada
objeto, ao invés de ser representado simplesmente pela sua posição no espaço, é representado por um sistema de coordenadas. Por exemplo, dada
uma câmera ou o pulso de um manipulador, nos interessamos não somente
→
pela sua posição no espaço, dada por um vetor −
p = [px .py .pz ]> , mas pela
→
→
→
sua orientação, que é dada pelos vetores −
n, −
o, −
a ("normal", "open" e
"approach" - nomes que vêm do estudo do manipulador).
O modo mais prático (logo veremos o por quê) de representar um Sistema
de Coordenadas é através da matriz de transformação:


nx ox ax dx
ny oy ay dy 

T =
nz oz az dz 
0 0 0 1
Podemos representá-la simbolicamente por:
−
→
−
→
→
n →
o −
a −
p
T =
0 0 0 1
 
 
 
 
nx
ox
ax
px
→
→
→
−
Identicando: −
n =  ny  , −
o = oy  , −
a =  ay  e →
p =  py 
nz
oz
az
pz
1
Se Σ0 é o Sistema de Coordenadas da base e Σ1 é o Sistema de Coorde→
→
→
→
nadas com centro em −
p e com base ortonormal −
n, −
o,−
a , então a matriz T
descrita acima é a mudança de coordenadas de Σ1 para o sistema de referência Σ0 . Considere um vetor v = [vn , vo , va ]> , ou seja, com coordenadas em
Σ1 . O vetor correspondente em Σ0 é dado por:
−
→
→
→
→
d + vn −
n + vo −
o + va −
a
o que corresponde a:

  
nx ox ax dx
vn
ny oy ay dy   vo 
  
T ·v =
nz oz az dz  · va 
1
0 0 0 1
Considere agora, além de Σ0 e Σ1 um sistema de coordenadas Σ2 cujo
→
−
centro é dado pelo vetor d∗ cujas coordenadas são dadas em relação aos
vetores da base Σ1 , ou seja:
−∗
→
→
→
→
d = [d∗n , d∗a , d∗o ]> = d∗n −
n + d∗o −
o + d∗a −
a
→ −
−
→ −
→
e a base ortonormal de Σ2 é dada por vetores n∗ , o∗ , a∗ , novamente com
componentes dadas em termos dos vetores de Σ1 . Assim, a matriz:
 ∗ ∗ ∗ ∗
nx ox ax dx
−
→∗ −
→ −
→ →
−

n∗y o∗y a∗y d∗y 
n o∗ a∗ p∗
1


T2 =  ∗ ∗ ∗ ∗  =
nz oz az dz
0 0 0 1
0 0 0 1
→
representa Σ2 em função de Σ1 , ou seja, dado um vetor −
v com coor1
denadas em Σ2 , T2 v retorna esse vetor com coordenadas em Σ1 . Assim, a
transformação dada pelo produto:

 1  ∗ ∗ ∗ ∗
nx ox ax dx
nx ox ax dx
∗
∗
∗
∗



0 ny oy ay dy 
ny∗ oy∗ ay∗ dy∗ 
·
nz oz az dz 
nz oz az dz 
0 0 0 1 1
0 0 0 1 2
transforma a base Σ2 em Σ0 , logo ela é a representação do sistema de
coordenadas Σ2 , visto da base de referência. Basta ver que o produto dessas
→ −
−
→ −
→ −
→
matrizes, contém as componentes de p∗ , n∗ , o∗ , a∗ dadas em função da base
canônica (que é a base de Σ0 ).
2
→
Resumindo, dados dois sistemas de coordenadas Γ e Λ, se −
p é o vetor
que vai da origem de Γ à origem de Λ e suas componentes estão escritas em
→
→
→
função da base de Γ e −
n, −
o,−
a são os vetores da base ortonormal de Λ com
componentes em função da base de Γ, a matriz:
Γ
−
→
→
→
−
n −
o −
a →
p
TΛ =
0 0 0 1
representa:
• A tranformação que leva da base Λ para a base Γ ou,
• A representação do objeto Λ visto de Γ
e, se TΓ é uma representação de Γ na base de referência (isto é, a transformação que leva vetores com componentes em Γ para vetores com componentes na base de referência Σ0 , a transformação produto: TΓ ·Γ TΛ é a
representação do objeto Λ na base canônica.
2
Transformação Inversa
Vimos que a transformação:


nx ox ax dx
ny oy ay dy 

T =
nz oz az dz 
0 0 0 1
→
−
leva de um sistema de coordenadas com centro em d e base ortonormal
→
→
→
{−
n,−
o ,−
a } para a base canônica Σ0 com centro na origem e com a base
→
→
→
ortonormal canônica, isto é {−
x ,−
y ,−
z }. Veremos agora como calcular a
inversa dessa transformação:
Seja R a matriz 3 × 3 dada por:


nx ox ax
→ −
−
n →
o →
a
R = ny oy ay  = −
nz oz az
→
→
→
onde −
n,−
o ,−
a são representados como vetores coluna. Armo que R é uma
matriz auto-adjunta também chamada de matriz ortogonal, isto é: R> ·R = I3
onde I3 é a matriz identidade 3 × 3. Ou seja, a inversa de R é igual a sua
transposta. Podemos representar:
3


 −
→
nx ny nz
n>
→
o >
R> =  ox oy oz  = −
−
→
a>
ax ay az
→
→
→
→
→
→
onde −
n >, −
o> e−
a > são as representações de −
n, −
o,−
a como vetores linha.
Essa representação é muito útil para se calcular o produto R> · R:
−

−

→
→
→
→
→
→
→
n> n >−
n −
n >−
o −
n >−
a
→
→
→
→
→
→
→
→
→
→
o > · −
n −
o −
a = −
o >−
n −
o >−
o −
o >−
a
R> · R = −
→
−
→
−
→
→
−
→
→
−
→
>
>−
>−
>−
a
a n a o a a
→
→
Note que a expressão −
n >−
a nada mais é do que o produto escalar entre
→
−
→
n e−
a , logo:


1 0 0
R> · R = 0 1 0 = I3
0 0 1
Visto o inverso de R, podemos inverter T facilmente. Em primeiro lugar,
vamos escrever T na seguinte forma compacta:
−
→
R d
T =
0 1
Armo que o inverso de T é dado por:
T
−1
R>
=
0

→
−
→
nx ny nz −−
n> d
→ 
−
→
−
→
 ox oy oz −−
−R> · d
o>d
=
−
→
→
 ax ay az −−
1
a>d
0 0 0
1
pois:
T ·T
−1
− >
→
→ −
→ −
−
→
R d
R −R> · d
R · R> −R · R> · d + d
=
·
=
=
0 1
0
1
0
1
I3 0
=
= I4
0 1
4
Download

Sistemas de Coordenadas