Você está na página 1de 36

Tópicos Especiais em Controle

ROBÓTICA MÓVEL
Prof. Pedro Baptista Fernandes
Aula 2

Posição e Orientação
Pose
• A pose de um objeto significa a posição do objeto em um espaço e a sua
orientação;
• Para descrever a pose de um objetos em um espaço 3D, são necessárias 6
dimensões: 3 para a descrição da posição e 3 para a descrição da orientação.
Pose
• Para representar um objeto, devemos indicar sua orientação;
• Normalmente é criado um novo sistema de coordenadas, chamado de frame (ou
quadro);
• Para diferenciar os diferentes frames, utiliza-se a notação {B};
• A pose da nova coordenada {B} é representada por 𝜉𝐵 .
Pose
• Quando há duas coordenadas {A} e {B}, a orientação do objeto B em relação ao
objeto A é representado por 𝐴𝜉𝐵 ;
• O parâmetro 𝐴𝜉𝐵 pode ser entendido como a movimentação necessária para o
objeto {A} assumir a mesma pose de {B};
• O ponto P pode ser descrita em relação às coordenadas {A} e {B}, como 𝐴𝑝 e 𝐵𝑝,
sendo que:

𝐴𝑝 = 𝐴𝜉𝐵 ∙ 𝐵𝑝
Pose
• Em casos de três coordenadas, pode-se fazer:

𝐴𝜉 = 𝐴𝜉𝐵 ⊕ 𝐵𝜉𝐶
𝐶

𝐴𝑝 = 𝐴𝜉
𝐵 ⊕ 𝐵𝜉𝐶 ∙ 𝐶𝑝
Pose

𝜉𝐹 + 𝐹𝜉𝐵 = 𝜉𝑅 + 𝑅𝜉𝐶 + 𝐶 𝜉𝐵

𝜉𝐹 + 𝐹𝜉𝑅 = 𝜉𝑅
Álgebra de Pose
𝑋
𝜉𝑌 ⊕ 𝑌𝜉𝑍 = 𝑋𝜉𝑍

𝑋
𝜉𝑌 =⊖ 𝑌𝜉𝑋

𝜉1 ⊕ 𝜉2 ≠ 𝜉2 ⊕ 𝜉1

𝜉1 ⊖ 𝜉1 = 0

𝑋
𝑝𝐾 = 𝑋𝜉𝑌 ∙ 𝑌𝑝𝐾
Exemplo
a) 𝐴𝜉𝐵 ⊕ 𝐵𝜉𝐶 ⊕ 𝐶 𝜉𝐷

b) 𝐴𝜉𝐵 ⊕ 𝐶 𝜉𝐵 ⊕ 𝐶 𝜉𝐷

c) 𝐴
𝜉𝐵 ⊕ 𝐵𝜉𝐶 ∙ 𝐶 𝑝𝐷
Duas dimensões
• Um vetor da origem ao ponto p é dado por:

𝑝 = 𝑋𝑥ො + 𝑌𝑦ො
Duas Dimensões
• A referência {B} é representada por 𝐴𝜉𝐵 que é dado por

𝐴
𝜉𝐵 ~ 𝑥, 𝑦, 𝜃
• Cria-se um novo quadro {V}, com eixos paralelos aos da
referência {A}, mas com mesma origem de {B}
Rotação • Podemos expressar P em relação a {V} como

𝑝𝑉 = 𝑝𝑣𝑥 𝑥ො𝑣 + 𝑝𝑣𝑦 𝑦ො𝑣

• Os vetores unitários para a coordenada {B} podem ser


representados por:

𝑥ො𝐵 = 𝑐𝑜𝑠𝜃𝑥ො𝑣 + 𝑠𝑒𝑛𝜃𝑦ො𝑣


𝑦ො𝐵 = −𝑠𝑒𝑛𝜃 𝑥ො𝑣 + 𝑐𝑜𝑠𝜃𝑦ො𝑣

• Para representar P em relação a {B}

𝑝𝐵 = 𝑝𝑏𝑥 𝑥ො𝐵 + 𝑝𝑏𝑦 𝑦ො𝐵


𝑝𝐵 = 𝑝𝑏𝑥 𝑥ො𝐵 + 𝑝𝑏𝑦 𝑦ො𝐵
Rotação
𝑝𝐵 = 𝑝𝑏𝑥 𝑐𝑜𝑠𝜃𝑥ො𝑣 + 𝑠𝑒𝑛𝜃𝑦ො𝑣 + 𝑝𝑏𝑦 −𝑠𝑒𝑛𝜃 𝑥ො𝑣 + 𝑐𝑜𝑠𝜃𝑦ො𝑣

• Como 𝑝𝐵 e 𝑝𝑉 são o mesmo ponto:

𝑝𝑣𝑥 𝑥ො𝑣 + 𝑝𝑣𝑦 𝑦ො𝑣


= 𝑝𝑏𝑥 𝑐𝑜𝑠𝜃𝑥ො𝑣 + 𝑠𝑒𝑛𝜃𝑦ො𝑣 + 𝑝𝑏𝑦 −𝑠𝑒𝑛𝜃𝑥ො𝑣 + 𝑐𝑜𝑠𝜃 𝑦ො𝑣

𝑝𝑣𝑥 𝑐𝑜𝑠𝜃 −𝑠𝑒𝑛𝜃 𝑝𝑏𝑥


𝑥ො𝑣 𝑦ො𝑣 𝑝𝑣𝑦 = 𝑥ො𝑣 𝑦ො𝑣 𝑝𝑏𝑦
𝑠𝑒𝑛𝜃 𝑐𝑜𝑠𝜃
𝑝𝑣𝑥 𝑐𝑜𝑠𝜃 −𝑠𝑒𝑛𝜃 𝑝𝑏𝑥
𝑝𝑣𝑦 = 𝑠𝑒𝑛𝜃 𝑐𝑜𝑠𝜃 𝑝𝑏𝑦

𝑝𝑣𝑥 𝑉 𝑝𝑏𝑥
𝑝𝑣𝑦 = 𝑅𝐵 𝑝𝑏𝑦
Exemplo
a) Criar uma matriz de rotação para um deslocamento de 0,2 radianos;
b) Calcular a determinante da matriz R
c) Calcular a determinante de R x R
d) Usar o MATLAB, calcular o logaritmo matricial de R.
Revisão de Álgebra Matricial
Considere 𝐴 uma matriz real ou complexa 𝑛 × 𝑛. A exponencial da
matriz é definida através da série de Taylor:

𝐴𝑛
𝑒𝐴 = 𝐼 + ෍
𝑛!
𝑛=1

O raio de convergência da série é infinita, logo ela converge para


qualquer matriz 𝐴.
Revisão de Álgebra Matricial
Considere 𝐴 uma matriz complexa 𝑚 × 𝑚, com nenhum autovalor com
parte real nula ou negativa. Dessa forma, há apenas um logaritmo de 𝐴
(ln 𝐴), cujo todos autovalores estão na faixa −𝜋 < 𝐼𝑚 𝑧 < 𝜋, no plano
complexo 𝑧. O ln 𝐴 é também conhecido com logaritmo principal de 𝐴.
Se a matriz 𝐴 é real, então o seu logaritmo principal também será real.
Define-se ln 𝐴 através da seguinte série de Taylor:

𝐴−𝐼 𝑛
ln 𝐴 = ෍ −1 𝑛+1
𝑛
𝑛=1
• Como as referências {A} e {V} são paralelas:
Translação 𝑝𝑎𝑥 𝑝𝑣𝑥 𝑥
𝑝𝑎𝑦 = 𝑝𝑣𝑦 + 𝑦

𝑝𝑎𝑥 𝑐𝑜𝑠𝜃 −𝑠𝑒𝑛𝜃 𝑝𝑏𝑥 𝑥


𝑝𝑎𝑦 = 𝑝𝑏𝑦 + 𝑦
𝑠𝑒𝑛𝜃 𝑐𝑜𝑠𝜃
𝑝𝑏𝑥
𝑝𝑎𝑥 𝑐𝑜𝑠𝜃 −𝑠𝑒𝑛𝜃 𝑥
𝑝𝑎𝑦 = 𝑝𝑏𝑦
𝑠𝑒𝑛𝜃 𝑐𝑜𝑠𝜃 𝑦
1

• Através de manipulações matriciais, pode-se escrever:

𝑝𝑎𝑥 𝐴 𝑝𝑏𝑥
𝑝𝑎𝑦 = 𝑅𝐵 𝑡 𝑝𝑏𝑦
01𝑥2 1
1 1
• Dessa forma
Translação 𝐴
𝑅𝐵 𝑡
𝑝෤𝐴 = 𝑝෤𝐵 = 𝐴𝑇𝐵 𝑝෤𝐵
01𝑥2 1

• Finalmente, a matriz de transformação da pose {A} para a


pose {B} é dada por

𝑐𝑜𝑠𝜃 −𝑠𝑒𝑛𝜃 𝑥
𝐴
𝑇𝐵 = 𝑠𝑒𝑛𝜃 𝑐𝑜𝑠𝜃 𝑦
0 0 1
Translação
• A representação da pose relativa 𝜉 é dada por𝜉~𝑻 ∈ 𝑺𝑬(2) e 𝑇1 ⊕ 𝑇2 → 𝑇1 𝑇2
que é uma multiplicação simples:

𝑅1 𝑡1 𝑅2 𝑡2 𝑅1 𝑅2 𝑡1 + 𝑅1 𝑡2
𝑻𝟏 𝑻𝟐 = =
01𝑥2 1 01𝑥2 1 01𝑥2 1

• Outra propriedade de 𝜉 é que 𝜉 ⊕ 0 = 𝜉, logo a pose 0 é representada pela


matriz I;
• 𝜉 ⊖ 𝜉 = 0. Das regras matriciais, 𝑻𝑻−𝟏 = 𝑰. Sendo assim, ⊖ 𝜉 → 𝑻−𝟏 .

−𝟏
𝑅 𝑡 𝑅𝑇 −𝑅𝑇 𝑡
𝑻−𝟏 = =
01𝑥2 1 01𝑥2 1
• Por fim,
𝑇 ∙ 𝑝෤ → 𝑇𝑝෤
Exemplo
• Calcular a matriz de transformação 𝑇1 com uma translação de (1, 2) e rotação de
30º.
• Calcular outra pose relativa 𝑇2 com translação (2, 1) e sem rotação;
• Calcule a pose 𝑇3 = 𝑇1 ⨁𝑇2 ;
• Calcule a pose 𝑇4 = 𝑇2 ⨁𝑇1 ;
• Considere o ponto p na posição (3, 2) em relação à referência global. Determine
as coordenadas de p em relação ao quadro {1}.
Três Dimensões

• Segundo o Teorema da Rotação de Euler, qualquer


rotação pode ser considerada como uma sequência de
rotações ao redor de diferentes eixos;
• Um problema no que diz respeito à rotação em 3D, é que
ela não é comutativa, ou seja, a ordem na qual as
rotações são aplicadas geram diferentes resultados;
Rotação
• Assim como no caso em duas dimensões, para realizar uma rotação basta fazer o
produto matricial

𝐴 𝐵
𝑥 𝑥
𝐴
𝑦 = 𝐴𝑅𝐵 𝐵
𝑦
𝐴 𝐵
𝑧 𝑧

• A diferença é que a equação matricial para o cálculo de 𝐴𝑅𝐵 depende de qual


eixo será utilizado.
Rotação

1 0 0
𝑅𝑥 𝜃 = 0 𝑐𝑜𝑠𝜃 −𝑠𝑒𝑛𝜃
0 𝑠𝑒𝑛𝜃 𝑐𝑜𝑠𝜃

𝑐𝑜𝑠𝜃 0 𝑠𝑒𝑛𝜃
𝑅𝑦 𝜃 = 0 1 0
−𝑠𝑒𝑛𝜃 0 𝑐𝑜𝑠𝜃

𝑐𝑜𝑠𝜃 −𝑠𝑒𝑛𝜃 0
𝑅𝑧 𝜃 = 𝑠𝑒𝑛𝜃 𝑐𝑜𝑠𝜃 0
0 0 1
Rotação
• Há duas classes de rotação: Euleriana e Cardaniano;
• Na rotação Euleriana, há repetição de eixos para rotacionar: XYX, ZXZ...
• Na rotação Cardaniana não há repetições: XYZ, ZXY, YZX...
• Se é desejado fazer uma sequência ZYZ:

𝑅 = 𝑅𝑧 𝜙 𝑅𝑦 𝜃 𝑅𝑧 𝜓
Rotação
• Realizar a rotação ZYZ usando os ângulos Γ 0,1, 0,2, 0,3 𝑟𝑎𝑑.
Rotação
• Na aplicação em veículos aéreos, são normalmente utilizados os ângulos de
arfagem, rolagem e guinada 𝜃, 𝜙, 𝜓 , chamados de ângulos náuticos, ou ângulos
Cardanianos ou ainda ângulos de Tait-Bryan;

• Uma ordem bastante utilizada para o cálculo do ângulo de rotação é a ZYX;


• Os ângulos de arfagem, rolagem e guinada também são conhecidos por pitch, roll
e yaw;
• Usando esse esquema, o sinal dos ângulos podem ser arbitrários, mas há uma
singularidade em 𝜃 = ± 𝜋Τ2
Rotação
• Duas referências arbitrárias estão relacionadas a uma única rotação em torno de
um determinado eixo. Por exemplo, para fazer rotação ZYX usando
Γ 0,1, 0,2, 0,3 .
• A informação de qual seria o vetor é calculado através da obtenção dos
autovalores e autovetores da matriz 𝑅.
• Toda matriz de rotação ortonormal possui um autovalor igual a 1. Este autovalor
indica o autovetor que serviu como eixo de rotação.
• Lembrando que o autovalor 𝜆 é calculado por

𝑑𝑒𝑡 𝑅 − 𝜆𝐼 = 0

• E que cada autovalor tem um autovetor 𝑣 associado de modo que

𝑅 − 𝜆𝐼 ∙ 𝑣 = 0
Rotação
• Para calcular o ângulo de rotação do autovetor, usa-se a equação:

𝑡𝑟𝑎ç𝑜 𝑅 = 1 + 2𝑐𝑜𝑠𝜃

• Se houver a informação do autovetor 𝑣 usado para a rotação e do ângulo de rotação 𝜃,


então 𝑅 pode ser obtido por:

𝑅 = 𝐼3𝑥3 + 𝑠𝑒𝑛𝜃 𝑣 + 1 − 𝑐𝑜𝑠𝜃 𝑣 2


× ×

onde

0 −𝑣3 𝑣2 −(𝑣22 + 𝑣32 ) 𝑣1 𝑣2 𝑣1 𝑣3


2
𝑣 × = 𝑣3 0 −𝑣1 ; 𝑣 × = 𝑣1 𝑣2 −(𝑣12 + 𝑣32 ) 𝑣2 𝑣3
−𝑣2 𝑣1 0 𝑣1 𝑣3 𝑣2 𝑣3 −(𝑣12 + 𝑣22 )
Rotação
• Realizar uma rotação ZYX utilizando Γ 0,1, 0,2, 0,3 ;
• Achar o vetor de rotação utilizado;
• Determinar o ângulo de rotação;
• Verificar se as respostas estão corretas utilizando o vetor e ângulo calculados.
Quaternions Unitários
• Os quaternions são uma extensão dos números complexos, denominados
números hipercomplexos.

𝑞 = 𝑠 + 𝑣 = 𝑠 + 𝑣1 𝑖 + 𝑣2 𝑗 + 𝑣3 𝑘

onde

𝑖 2 = 𝑗 2 = 𝑘 2 = 𝑖𝑗𝑘 = −1

• Os quaternions são denotados como

𝑞 = 𝑠 𝑣1 , 𝑣2 , 𝑣3
Quaternions Unitários
• Para representar rotações, são utilizados quartenions unitários (𝑞),
ሶ ou seja, que
tenham magnitude 1:

𝑞 = 𝑠 2 + 𝑣12 + 𝑣22 + 𝑣32 = 1

• Os quaternions unitários são considerado uma rotação 𝜃 ao longo de um vetor 𝑣,


de acordo com a equação

𝜃 𝜃
𝑞ሶ = 𝑐𝑜𝑠 < 𝑣𝑠𝑒𝑛 >
2 2
Quaternions Unitários
• Para o caso de quaternions unitários, a pose pode ser descrita com 𝜉~𝑞ሶ ∈ 𝕊3 e

𝑞ሶ 1 ⊕ 𝑞ሶ 2 → 𝑞ሶ 1 ∙ 𝑞ሶ 2

⊖ 𝑞ሶ 1 → 𝑞ሶ 1−1 = 𝑠 < −𝑣 >

0 → 1 < 0, 0, 0 >

𝑞ሶ ∙ 𝑣 → 𝑞ሶ ∙ 𝑣ሶ ∙ 𝑞ሶ −1

onde 𝑣ሶ = 0 < 𝑣 >.

Produto de quaternions: 𝑞1 ∙ 𝑞2 = 𝑠1 𝑠2 − 𝑣1 ∙ 𝑣2 < 𝑠1 𝑣2 + 𝑠2 𝑣1 + 𝑣1 × 𝑣2 >


Quaternions Unitários
• Calcular o quaternion unitário 𝑞ሶ para uma rotação ZYX utilizando Γ 0,1, 0,2, 0,3 ;
• Calcular a inversa de 𝑞.ሶ
Pose em 3 dimensões
• A obtenção de uma matriz de transformação é similar ao caso em 2 dimensões,
porém com a inclusão do eixo 𝑧;

𝐴 𝐵
𝑥 𝑥
𝐴
𝐴
𝑦 =
𝑅𝐵 𝑡 𝐵
𝑦
𝐴
𝑧 01𝑥3 1 𝐵
𝑧
1 1

𝐴
𝐴 𝑅𝐵 𝑡 𝐵
𝑝෤ = 𝑝෤
01𝑥3 1

𝐴
𝐴 𝑅𝐵 𝑡
𝑇𝐵 =
01𝑥3 1
Pose em 3 dimensões
• Propriedades:

𝑅1 𝑡1 𝑅2 𝑡2 𝑅1 𝑅2 𝑡1 + 𝑅1 𝑡2
𝑇1 𝑇2 = =
01𝑥3 1 01𝑥3 1 01𝑥3 1

−1
−1 𝑅 𝑡 𝑅𝑇 −𝑅𝑇 𝑡
𝑇 = =
01𝑥3 1 01𝑥3 1

• No MATLAB: Realizar a translação de 1 no eixo 𝑥, rotacionar 90° em torno do eixo


𝑥 e translacionar 1 no eixo 𝑦.