Você está na página 1de 42

Robótica Móvel

Descrição espacial e Transformações rígidas


Prof. Douglas G. Macharet
douglas.macharet@dcc.ufmg.br
Introdução

▪ Ciências e engenharias: é essencial identificar e manipular


representações matemáticas de quantidades físicas e reais
▪ Robótica: Posições e Orientações
▪ Partes, ferramenta e o próprio robô
▪ Demais elementos no ambiente
▪ É necessário adotar uma convenção geral
Sistema de Sistemas de
coordenadas geral coordenadas locais

Robótica Móvel - Descrição espacial e Transformações rígidas 2


Introdução

Sistemas de
coordenadas locais

𝑦𝐼

𝑥𝐼

Sistema de coordenadas geral

Fonte: https://gramaziokohler.github.io/compas_fab/latest/examples/01_fundamentals/02_coordinate_frames.html

Robótica Móvel - Descrição espacial e Transformações rígidas 3


Introdução

Fonte: Pandey G, McBride JR, Eustice RM. Ford Campus vision and lidar data set. The International Journal of Robotics Research. 2011;30(13):1543-1552.

Robótica Móvel - Descrição espacial e Transformações rígidas 4


Introdução
Objetivos

Representação Mapeamento

Robótica Móvel - Descrição espacial e Transformações rígidas 5


Introdução
Notação

▪ Vetores e Matrizes
▪ Letra Maiúscula (𝑃, 𝑋, 𝐴)
Convenção para nossa disciplina!
▪ Escalares Você pode encontrar várias outras
notações diferentes na literatura.
▪ Letra Minúscula (𝑝, 𝑥, 𝑎)

▪ Referenciais
𝐴
▪ Sobrescrito e Subscrito antes ou depois ( 𝐵 𝑅, 𝑋෠𝐴 )

Robótica Móvel - Descrição espacial e Transformações rígidas 6


Representação

Posição Orientação Referencial

Robótica Móvel - Descrição espacial e Transformações rígidas 7


Representação
Descrição de posição

▪ Posição: vetor 𝑛-dimensional (tupla de números reais)


▪ 𝑃 = 𝑥1 , … , 𝑥𝑛 ∈ ℝ𝑛 ➔ 2D/3D (ℝ2 , ℝ3 )
▪ A posição (vetor) deve conter de maneira explícita em
relação a qual sistema de coordenadas ela está definido

Sistema de coordenadas
𝑝𝑥
𝐴
𝑃 = 𝑝𝑦
𝑝𝑧

Robótica Móvel - Descrição espacial e Transformações rígidas 8


Representação
Descrição de posição

▪ Um sistema de coordenadas (referencial, frame) é


representado por uma letra maiúscula entre chaves
▪ Vetores unitários que indicam os eixos principais do
sistema de coordenadas usam a notação “chapeu”
𝑌෠𝐴 {𝐴}

𝐴
𝑝𝑦 𝑃

𝑝𝑥 𝑋෠𝐴

Robótica Móvel - Descrição espacial e Transformações rígidas 9


Representação
Descrição de posição
Produto vetorial (produto externo):
Xˆ A  YˆA = Zˆ A
Yˆ  Zˆ = Xˆ
A A A

Zˆ A  Xˆ A = YˆA

Produto escalar (produto interno):


Xˆ A  Xˆ A = Xˆ A = 1
Xˆ A  YˆA = 0
Xˆ A  Zˆ A = 0

Robótica Móvel - Descrição espacial e Transformações rígidas 10


Representação
Descrição de direção

▪ Vetores também são usados para representar grandezas


direcionais, como um deslocamento, direção ou derivada
▪ Deslocamento: Diferença entre pontos, e.g., 𝐴𝑄 − 𝐴𝑃
▪ Possui direção e magnitude
▪ Direção: vetor unitário que possui apenas a direção
𝐴𝑄 − 𝐴𝑃
𝐴𝑄 − 𝐴𝑃

▪ Derivada: deslocamento infinitesimal ( 𝐴𝑃 ′ (𝑡) = (𝑝𝑥 𝑡 , 𝑝𝑦 𝑡 ))

Robótica Móvel - Descrição espacial e Transformações rígidas 11


Representação
Descrição de direção

𝐴
𝐴𝑄 𝑄
𝐴𝐷
𝐴𝐷

𝐴
𝐷
𝐴𝑃 𝐴𝑃

Deslocamento Direção Derivada

Robótica Móvel - Descrição espacial e Transformações rígidas 12


Representação
Descrição de orientação

▪ Corpo rígido: é importante representar a orientação?


▪ Descrever completamente um corpo rígido utilizando-se
apenas um ponto pode não ser muito representativo

▪ Descrita a partir de um sistema de coordenadas afixado no


próprio corpo em relação a outro sistema de coordenadas

Robótica Móvel - Descrição espacial e Transformações rígidas 13


Representação
Descrição de orientação

𝑌෠𝐴 {𝐴} 𝑌෠𝐴 {𝐵}


−sin 𝜃 cos 𝜃

𝑌෠𝐵 𝑋෠𝐵
cos 𝜃 sin 𝜃
𝜃

𝑋෠𝐴 𝑋෠𝐴
𝑋෠𝐵 = cos 𝜃 𝑋෠𝐴 + sin 𝜃 𝑌෠𝐴 cos 𝜃 −sin 𝜃 𝑋෠𝐵
𝑌෠𝐵 = −sin 𝜃 𝑋෠𝐴 + cos 𝜃 𝑌෠𝐴 sin 𝜃 cos 𝜃 𝑌෠𝐵

Global → Local Local → Global

Robótica Móvel - Descrição espacial e Transformações rígidas 14


Representação
Descrição de orientação

▪ Matriz de rotação de {𝐵} em relação a {𝐴}


𝑟11 𝑟12 𝑟13
𝐴
𝐵𝑅 = 𝐴෠
𝑋𝐵 𝐴෠
𝑌𝐵 𝐴
𝑍መ𝐵 = 𝑟21 𝑟22 𝑟23
𝑟31 𝑟32 𝑟33
▪ Vetores unitários de {𝐵} descritos em termos do sistema {𝐴}

Robótica Móvel - Descrição espacial e Transformações rígidas 15


Representação
Descrição de orientação

▪ Cossenos direcionais (diretores)


𝑋෠𝐵 ⋅ 𝑋෠𝐴 𝑌෠𝐵 ⋅ 𝑋෠𝐴 𝑍መ𝐵 ⋅ 𝑋෠𝐴 Projeções do vetor nas
𝐴 ෠ ෠
𝐵𝑅 = 𝑋𝐵 ⋅ 𝑌𝐴 𝑌෠𝐵 ⋅ 𝑌෠𝐴 𝑍መ𝐵 ⋅ 𝑌෠𝐴 direções unitárias do
sistema de referência.
𝑋෠𝐵 ⋅ 𝑍መ𝐴 𝑌෠𝐵 ⋅ 𝑍መ𝐴 𝑍መ𝐵 ⋅ 𝑍መ𝐴

𝑋෠𝐵 ⋅ 𝑋෠𝐴 = 𝑋෠𝐵 𝑋෠𝐴 cos 𝜃 = cos 𝜃

𝑋෠𝐵 = 𝑋෠𝐴 = 1

Robótica Móvel - Descrição espacial e Transformações rígidas 16


Representação
Descrição de orientação

▪ Colunas: vetores unitários de {𝐵} em {𝐴}


▪ E o que representam as linhas?
▪ Vetores unitários {𝐴} em {𝐵}

𝑋෠𝐵 ⋅ 𝑋෠𝐴 𝑌෠𝐵 ⋅ 𝑋෠𝐴 𝑍መ𝐵 ⋅ 𝑋෠𝐴


𝐴 ෠𝐵 ෠𝐵 𝐴𝑍መ
𝐵𝑅 = 𝐴𝑋 𝐴𝑌
𝐵 = 𝑋෠𝐵 ⋅ 𝑌෠𝐴 𝑌෠𝐵 ⋅ 𝑌෠𝐴 𝑍መ𝐵 ⋅ 𝑌෠𝐴
𝑋෠𝐵 ⋅ 𝑍መ𝐴 𝑌෠𝐵 ⋅ 𝑍መ𝐴 𝑍መ𝐵 ⋅ 𝑍መ𝐴

Robótica Móvel - Descrição espacial e Transformações rígidas 17


Representação
Descrição de orientação

▪ Matriz ortogonal
▪ Colunas (ou linhas) são vetores ortonormais
𝐴 𝐴 𝑇
▪ A inversa é igual a sua transposta ( 𝐵 𝑅 𝐵𝑅 = 𝐼)
𝐴 𝐵 −1 𝐵 𝑇
𝐵𝑅 = 𝐴𝑅 = 𝐴𝑅

▪ Composição: 𝑅 𝜃1 𝑅 𝜃2 = 𝑅(𝜃1 + 𝜃2 )
▪ Determinante: det(𝑅(𝜃)) = cos 2 𝜃 + sin2 𝜃 = 1

Robótica Móvel - Descrição espacial e Transformações rígidas 18


Representação
Descrição de um referencial (frame)

▪ Referencial: sistema de coordenadas que, além da orientação,


possui o vetor posição da origem em relação a outro frame
𝐴 𝐴
{𝐵} = { 𝐵𝑅, 𝑃𝐵𝑂𝑅𝐺 }
▪ Posição: frame em que a matriz de rotação é a identidade
▪ Orientação: frame onde o vetor posição é nulo

Robótica Móvel - Descrição espacial e Transformações rígidas 19


Representação
Descrição de um referencial (frame)

𝐴
𝐴 = 𝑈𝐴𝑅, 𝑈𝑃𝐴𝑂𝑅𝐺
𝐶
{𝐵} = { 𝑈𝐵𝑅, 𝑈𝑃𝐵𝑂𝑅𝐺 }
{𝐶} = { 𝐴𝐶 𝑅, 𝐴𝑃𝐶𝑂𝑅𝐺 }

𝑼
𝑷𝑨𝑶𝑹𝑮
𝐵 𝑨
𝑷𝑪𝑶𝑹𝑮

𝑼
𝑷𝑩𝑶𝑹𝑮

Robótica Móvel - Descrição espacial e Transformações rígidas 20


Representação
Descrição de um referencial (frame)

▪ Trabalhamos com diversos referenciais


▪ Sistema de coordenadas do mundo
▪ Sistema de coordenadas do robô
▪ Sistema de coordenadas de um sensor
▪ Sistema de coordenadas de um objeto

Robótica Móvel - Descrição espacial e Transformações rígidas 21


Mapeamento

▪ Como descrever a posição de um ponto em relação ao


referencial {𝐴} dada a descrição dele no referencial {𝐵}?

𝐵
𝑃

▪ Alterar descrições de um referencial para outro referencial


Translação Rotação

Robótica Móvel - Descrição espacial e Transformações rígidas 22


Mapeamento
Translação

▪ Considerando referenciais com a mesma orientação (sem


rotação relativa), porém origens diferentes (translação)
𝐴 𝐵 𝐴
𝑃 = 𝑃 + 𝑃𝐵𝑂𝑅𝐺
𝐴
▪ O vetor 𝑃𝐵𝑂𝑅𝐺 localiza a origem de {𝐵} em relação a {𝐴}

Robótica Móvel - Descrição espacial e Transformações rígidas 23


Mapeamento
Translação (Exemplo)

▪ Dados 2 referenciais {𝐴} e {𝐵} com mesma orientação, porém a origem de


{𝐵} está deslocada 7 unidades da origem de {𝐴} ao longo do eixo 𝑋෠𝐴 e 2
unidades ao longo do eixo 𝑌෠𝐴 . Dado o ponto 𝐵𝑃, defina 𝐴𝑃𝐵𝑂𝑅𝐺 e 𝐴𝑃.

𝐵 𝑇 𝐴 𝑇
𝑃= 4 3 5 𝑃𝐵𝑂𝑅𝐺 = 7 2 0

4 7 11
𝐴 𝐵 𝐴
𝑃 = 𝑃 + 𝑃𝐵𝑂𝑅𝐺 = 3 + 2 = 5
5 0 5

Robótica Móvel - Descrição espacial e Transformações rígidas 24


Mapeamento
Translação (Exemplo)

Robótica Móvel - Descrição espacial e Transformações rígidas 25


Mapeamento
Rotação

▪ Considerando referenciais com a mesma origem (sem


translação), porém com orientações (rotação) diferentes
▪ Componentes são as projeções do vetor sobre os eixos
(vetores unitários) de seu sistema de referência (frame)
𝐴 ෠𝐵 𝐵
𝑝𝑥 = 𝑋𝐴 ⋅ 𝑃
𝐴 𝐵෠ 𝐵
𝐴
𝑃= 𝑝 = 𝑌 ⋅ 𝑃 𝐴
𝑃= 𝐴 𝐵
𝐵𝑅 𝑃
𝑦 𝐴
𝐴 𝐵መ 𝐵
𝑝𝑧 = 𝑍𝐴 ⋅ 𝑃

Robótica Móvel - Descrição espacial e Transformações rígidas 26


Mapeamento
Rotação

𝑖𝑥 ⋅ 𝑖𝑢 𝑖𝑥 ⋅ 𝑖𝑣 𝑖𝑥 ⋅ 𝑖𝑤 1 0 0
𝑅x,𝜃 = 𝑗𝑦 ⋅ 𝑖𝑢 𝑗𝑦 ⋅ 𝑖𝑣 𝑗𝑦 ⋅ 𝑖𝑤 𝑅x,𝜃 = 0 cos 𝜃 − sin 𝜃
𝑘 𝑧 ⋅ 𝑖𝑢 𝑘 𝑧 ⋅ 𝑖𝑣 𝑘 𝑧 ⋅ 𝑖𝑤 0 sin 𝜃 cos 𝜃

Robótica Móvel - Descrição espacial e Transformações rígidas 27


Mapeamento
Rotação

1 0 0
𝑅x,𝜃 = 0 cos 𝜃 − sin 𝜃
0 sin 𝜃 cos 𝜃

cos 𝜃 0 sin 𝜃
𝑅𝑦,𝜃 = 0 1 0
− sin 𝜃 0 cos 𝜃

cos 𝜃 − sin 𝜃 0
𝑅𝑧,𝜃 = sin 𝜃 cos 𝜃 0
0 0 1
Robótica Móvel - Descrição espacial e Transformações rígidas 28
Mapeamento
Rotação (Exemplo)

▪ Um referencial {𝐵} está rotacionado de 𝜃 = 30∘ em relação ao


መ 𝐴
eixo 𝑍𝐴 do referencial {𝐴}. Dado o ponto 𝑃, defina 𝐵𝑅 e 𝐴𝑃.
𝐵

0 0,866 −0,500 0,000


𝐵
𝑃= 2 𝐴
𝐵𝑅 = 0,500 0,866 0,000
0 0,000 0,000 1,000
−1,000
𝐴 𝐴 𝐵
𝑃 = 𝐵𝑅 𝑃 = 1,732
0,000

Robótica Móvel - Descrição espacial e Transformações rígidas 29


Mapeamento
Rotação (Exemplo)

Robótica Móvel - Descrição espacial e Transformações rígidas 30


Mapeamento
Rotação

▪ Translações são fáceis de visualizar


▪ Rotações não são tão intuitivas
▪ Difíceis de descrever e especificar
▪ Fechada sobre a multiplicação
𝐴 𝐴 𝐵 O resultado da múltiplicação é
𝐶𝑅 = 𝐵𝑅 𝐶 𝑅 outra matriz de rotação!

▪ Não é comutativa
𝐴 𝐵 𝐵 𝐴 0,87 −0,50 0,00 0,87 −0,43 0,25

𝐵𝑅 𝐶 𝑅 ≠ 𝐶 𝑅 𝐵𝑅
𝑅𝑥 (30)𝑅𝑧 (30) = 0,43 0,75 −0,50 𝑅𝑧 (30)𝑅𝑥 (30) = 0,50 0,75 −0,43
0,25 0,43 0,87 0,00 0,50 0,87

Robótica Móvel - Descrição espacial e Transformações rígidas 31


Mapeamento
Rotação

▪ Matriz de rotação 3 × 3
▪ Colunas mutualmente ortogonais
▪ Colunas com magnitude 1 (vetor unitário)
▪ Matriz ortonormal própria (determinante = 1)

▪ Euler angles: representação mais compacta (3 parâmetros)


▪ Definidos a partir de três rotações (encadeadas) em relação aos
três eixos principais do sistema de coordenadas local (body)

Robótica Móvel - Descrição espacial e Transformações rígidas 32


Mapeamento
Rotação (Euler angles / Z-Y-X)

▪ Também conhecido por roll, pitch e yaw


▪ Muito utilizado em aviação, náutica e robótica

Robótica Móvel - Descrição espacial e Transformações rígidas 33


Mapeamento
Rotação (Euler angles / Z-Y-X)

▪ Iniciar com o referencial {𝐵} coincidente com um referencial conhecido {𝐴}.


Primeiro, rotacione {𝐵} em torno de 𝑍መ𝐴 de um ângulo 𝛼, em seguida em
torno de 𝑌෠𝐴 de um ângulo 𝛽, e finalmente em torno de 𝑋෠𝐴 de um ângulo 𝛾.

Sempre em relação
ao body frame!

𝐴 𝐴 𝐵′ 𝐵′′
𝐵𝑅 = 𝐵′ 𝑅 𝐵′′ 𝑅 𝐵𝑅

Robótica Móvel - Descrição espacial e Transformações rígidas 34


Mapeamento
Rotação (Euler angles / Z-Y-X)

𝐴
𝐵𝑅𝑍 ′ 𝑌 ′ 𝑋 ′ (𝛼, 𝛽, 𝛾) = 𝑅𝑍 (𝛼) 𝑅𝑌 (𝛽)𝑅𝑋 (𝛾)
𝑐𝛼 −𝑠𝛼 0 c𝛽 0 s𝛽 1 0 0
= 𝑠𝛼 𝑐𝛼 0 0 1 0 0 𝑐𝛾 −𝑠𝛾
0 0 1 −s𝛽 0 c𝛽 0 𝑠𝛾 𝑐𝛾

c𝛼c𝛽 c𝛼s𝛽s𝛾 − s𝛼c𝛾 c𝛼s𝛽c𝛾 + s𝛼s𝛾


𝐴
𝐵𝑅𝑍 ′ 𝑌 ′ 𝑋 ′ (𝛼, 𝛽, 𝛾) = s𝛼c𝛽 s𝛼s𝛽s𝛾 + c𝛼c𝛾 s𝛼s𝛽c𝛾 − c𝛼s𝛾
−s𝛽 c𝛽s𝛾 c𝛽s𝛾

Robótica Móvel - Descrição espacial e Transformações rígidas 35


Mapeamento
Rotação (Euler angles / Z-Y-X)

▪ Problema inverso
▪ Como obter os ângulos a partir da matriz?
𝑟11 𝑟12 𝑟13
𝐴 𝑟 𝑟22 𝑟23 𝛽 = atan2 −𝑟31 , c𝛽
𝐵𝑅𝑍 ′ 𝑌 ′ 𝑋 ′ (𝛼, 𝛽, 𝛾) = 21
𝑟31 𝑟32 𝑟33 𝑟21 𝑟11
𝛼 = atan2 ,
c𝛽 c𝛽
𝑟32 𝑟33
2 2
𝛾 = atan2 ,
cos 𝛽 = 𝑟11 + 𝑟21 c𝛽 c𝛽

Robótica Móvel - Descrição espacial e Transformações rígidas 36


Mapeamento
Rotação (Euler angles / Z-Y-X)

▪ Problema inverso – Casos Especiais

𝛽 = 90∘ 𝛽 = −90∘
𝛼=0 𝛼=0
𝛾 = atan2(𝑟12 , 𝑟22 ) 𝛾 = −atan2(𝑟12 , 𝑟22 )

Robótica Móvel - Descrição espacial e Transformações rígidas 37


Mapeamento
Representações de orientação

Formato Parâmetros Singularidade Composição


Matriz de rotação 9 Não Multiplicação
Roll-pitch-yaw 3 Sim Não trivial
Quatérnio unitário* 4 Não Multiplicação
*Número hipercomplexo

Robótica Móvel - Descrição espacial e Transformações rígidas 38


Mapeamento
Translação e Rotação

▪ Referenciais com origens e orientações diferentes.


Considera-se duas etapas:
▪ Descrever o ponto 𝐵𝑃 em relação a um referencial Rotação
intermediário, mesma origem mas a orientação de {𝐴}
▪ Somar a diferença (deslocamento) entre as origens Translação

𝐴
𝑃 = 𝐵𝐴𝑅 𝐵𝑃 + 𝐴𝑃𝐵𝑂𝑅𝐺 (transformação rígida)

Robótica Móvel - Descrição espacial e Transformações rígidas 39


Mapeamento
Translação e Rotação (Exemplo)

▪ Seja {𝐵} um referencial rotacionado 𝜃 = 30∘ em torno de 𝑍መ𝐴 e transladado


10 unidades em 𝑋෠𝐴 e 5 unidades em 𝑌෠𝐴 . Dado 𝐵𝑃, defina 𝐴𝑃𝐵𝑂𝑅𝐺 , 𝐵𝐴𝑅 e 𝐴𝑃.
3 10 0,866 −0,500 0,000
𝐵 𝐴
𝑃= 7 𝐴
𝑃𝐵𝑂𝑅𝐺 = 5 𝐵 𝑅 = 0,500 0,866 0,000
0 0 0,000 0,000 1,000

9,098
𝐴 𝐴 𝐵
𝑃= 𝐵𝑅 𝑃 + 𝐴𝑃𝐵𝑂𝑅𝐺 = 12,562
0,000

Robótica Móvel - Transformações homogêneas e Espaço de configurações 40


Mapeamento
Translação e Rotação (Exemplo)

Robótica Móvel - Transformações homogêneas e Espaço de configurações 41


Considerações finais

▪ Composição de translação e rotação se torna complexa ao


agrupar operações considerando muitos referenciais
▪ Exemplo:
𝑇1 𝑇2
▪ 𝐶 → 𝐵 → {𝐴} Rotação Translação
𝐴
▪ 𝐴𝑃 = 𝐵 𝑅 𝐵𝐶 𝑅 𝐶 𝑃 + 𝐵𝑃𝐶𝑂𝑅𝐺 + 𝐴𝑃𝐵𝑂𝑅𝐺 ⇒ 𝐵𝐴𝑅 𝐵𝐶 𝑅 𝐶 𝑃 + 𝐵𝐴𝑅 𝐵𝑃𝐶𝑂𝑅𝐺 + 𝐴𝑃𝐵𝑂𝑅𝐺

▪ Como resolver? ➔ Transformações homogêneas

Robótica Móvel - Descrição espacial e Transformações rígidas 42

Você também pode gostar