Representação espacial

Representação espacial

Introdução

O objetivo desta aula é relembrar algumas ferramentas matemáticas para representar e manipular espacialmente pontos e vetores.

Esta habilidade é essencial em qualquer tipo de modelagem de robôs operando no espaço.

Nota

As demonstrações abaixo consideram representações no espaço, ou seja, no espaço tridimensional. Na maioria dos casos, para se trabalhar nas dimensões inferiores (bidimensional, unidimensional) basta remover os elementos matemáticos que a representão; por exemplo, remover uma coordenada da posição, ou remover um vetor unitário do sistema de coordenadas).

Sistemas de coordenadas

O sistema de coordenadas (ou do inglês, frame) é um constructo matemático que serve de base para descrever elementos no espaço cartesiano (e.g., pontos, vetores, transformações, outros sistemas de coordenadas, etc.).

Um sistema de coordenadas é composto por:

  • Uma origem : ponto no espaço onde se origina seus eixos unitários.
  • Três vetores unitários mutuamente ortogonais , , .
(Rocha, 2023)

Cada vetor unitário está relacionado a uma das dimensões representadas por aquele sistemas de coordenadas, sendo comumente instanciados como:

Assim, um sistema de coordenadas genérico pode ser definido da seguinte maneira:

Nota

Os sentidos positivos (ou seja, para apontam) dos vetores-base dos sistemas de coordenadas são definidos de acordo com a convenção da "regra da mão direita", largamente utilizada pela comunidade científica. Por extensão, os sentidos positivos de translação e rotação também são definidos de acordo com esta convenção.

Representação dos sentidos positivos dos eixos do sistema de coordenadas, das translações e das rotações de acordo com a convenção da 'regra da mão direita'.

A regra da mão direita faz garantir que a relação entre os eixos unitário a da base

Além disso, sendo ortogonais entre si, a relação entre os eixos unitários pode ser descrita da seguinte maneira:

Posição

Tendo como base um sistema de coordenadas qualquer, a posição no espaço de um ponto qualquer pode ser descrita em relação a da seguinte maneira:

onde os elementos , e são denominadas as coordenadas do ponto em relação à origem de .

Orientação

Seguindo nossa ilustração, não faria sentido tentarmos definir a orientação do ponto em relação a pois, por definição, um ponto possu dimensão zero e não possui graus de liberdade rotacionais. Em outras palavras, um ponto é invariante rotacionalmente, não alterando suas propriedades geométricas ou representação espacial caso seja rotacionado.

Definição dos sistemas de coordenadas

Sendo assim, para representar a orientação relativa entre dois elementos no espaço, precisamos definir um sistema de coordenadas também a este segundo elemento.

Na prática, considera-se então as coordenadas do ponto como sendo a origem deste novo frame, e defimos três vetores unitários ortogonais partindo dele. Assim, agora temos dois sistemas de coordenadas:

Orientação por projeção

Com estes dois sistemas definidos, uma maneira de representar a orientação de em relação a é descrevendo os eixos unitários de um em relação ao outro.

Uma maneira de fazer tal descrição é projetando os vetores-base de um sistema de coordenadas em outro. Por exemplo, para projetar nos eixos unitários de pode-se fazer:

Nota

Note que todos os vetores na Eq. são unitários, o que torna seus produtos escalares igual ao cosseno do ângulo entre eles, i.e., para dois vetores unitários genéricos, , onde é o ângulo entre eles. Lembre-se que o cosseno entre dois vetores pode ser interpretada como a projeção de um em outro.

Fazendo-se o mesmo processo de projeção para os demais vetores-base e de , depois concatenando-os horizontalmente, obtemos:

que é denominada a matriz de rotação que representa a orientação do frame em relação a .

Nota

Uma orientação descreve a diferença dos sentidos positivos entre os vetores-base de dois sistemas de coordenadas. Uma rotação descreve a orientação final que um sistema de coordenadas assume após sofrer uma mudança de orientação. Na prática, apesar de representarem conceitos espaciais diferentes, orientação e rotação podem ser descritas da mesma maneira, utilizando matrizes de rotação (e outras representações também).

Como pode-se observar na Eq. , cada coluna de é um vetor unitário, representando a projeção de um dos vetores-base de em . Nesta condição, a matriz é denominada ortonormal, implicando que é possível obter a orientação/rotação inversa simplesmente ao se transpor a matriz de rotação original. Em termos práticos, podemos obter uma orientação/rotação inversa ao fazermos:

Nota

As matrizes de rotação são apenas um dentre alguns métodos para descrever orientações/rotações. Outros dois métodos muito utilizados são os Ângulos de Euler e os quatérnions unitários de rotação (este vídeo sensacional do canal 3Blue1Brown mostra de maneira interativa as rotações com quaternions). Cada representação terá suas características, visualização e álgebra. É importante porém saber que há ferramentas matemáticas para converter de uma forma de representação para outra.

Mapeando de um frame para outro

Um problema recorrente em robótica é:

Havendo havendo um objeto no espaço descrito em um sistema de coordenadas A, como mapear suas coordenadas para descrevê-lo em um outro sistemas de coordenadas B?

Considere que um robô ao qual atrelamos o frame detecte um obstáculo no espaço. Seus sensores indicam o vetor como sendo a descrição da posição deste obstáculo em relação ao robô.

O robô gostaria de indicar a posição deste obstáculo a um drone, ao qual atrelamos o frame . A posição e orientação do robô em relação ao drone são conhecidas, i.e., as variáveis e são definidas. Neste caso, a posição deste obstáculo em relação ao drone pode ser calculada através da equação:

Para o nosso exemplo, a Eq. permite então calcular a posição relativa do obstáculo em relação ao drone, mesmo que se saiba somente a posição do obstáculo em relação ao drone e a posição+orientação do robô em relação ao drone.

Pose no espaço

Até então, vimos como representar a posição e orientação relativa entre elementos no espaço cartesiano utilizando objetos matemáticos separados. Há porém uma maneira de combinar ambas as representações em uma única estrutura matemática.

(Correl, 2022)

Transformação homogênea

Considerando nosso exemplo, a matriz de transformação homogênea do frame em relação a é definida como:

Note que a matriz é construída simplesmente ao se concatenar horizontalmente a matriz de rotação com a posição e concatenar verticalmente na última linha um vetor .

Assim, agora podemos calcular de forma conveniente a posição do obstáculo visto inicialmente pelo robô em relação ao sistema inercial da seguinte maneira:

Para esta álgebra funcionar, note que foi concatenado verticalmente aos vetores de posição originais.

Transformação homogênea inversa

Note que a inversa de uma transformada homogênea pode ser construída invertendo a rotação e a translação de forma independente:

Combinação de transformações

É possível combinar transformações simplesmente ao multiplicá-las pela direita.

Por exemplo, considere agora que há mais dois robôs cujos frames são e . Considere também que o obstáculo é visto somente pelo robô e que sabe-se somente as sequências de transformações . Ainda assim poderia-se descrever a posição do obstáculo em relaçao ao frame inercial da seguinte maneira:

Desafio: Exercício prático

Um drone de vigilância em aeroportos faz rondas em torno da pista de decolagem em busca de pássaros que possam estar voando nas redondezas. Quando um pássaro é detectado pelo drone, o sistema do aeroporto deve descobrir se o pássaro está no espaço aéreo da pista. Caso positivo, um sistema de alarmes deve soar automaticamente para a torre de comando.

Ao localizar um pássaro com seus sensores, o drone é capaz de estimar o vetor de posição deste pássaro em relação a ele. A pose do drone em relação à torre de comando é sempre conhecida, assim como a posição fixa dos vértices da região do espaço aéreo da pista também em relação à torre de comando.

Tarefa

Implemente um algoritmo em Python que:

  • receba como parâmetro as coordenadas dos vértices da região do espaço aéreo da pista;
  • receba a posição do pássaro detectada em relação ao drone como um vetor
  • calcule a posição do pássaro em relação à torre de comando;
  • estime se o pássaro se encontra no espaço aéreo da pista;
    • retorne um booleano True caso positivo ou False caso negativo.

Referências

  1. Correll, N., Hayes, B., Heckman, C., & Roncone, A. (2022). Introduction to autonomous robots: mechanisms, sensors, actuators, and algorithms. Mit Press.

Autor: FILIPE A. S. ROCHA

Publicado em 23 de março de 2026· Atualizado em 28 de abril de 2026