Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

SE(3)

  • Também chamado: special Euclidean group, SE3, rigid-body transformation group
  • Categoria: Foundations & spatial maths › Frames & transforms
  • Tags: lie-groups, rigid-body-motion, spatial-math, kinematics, pose-estimation

O grupo dos movimentos de corpo rígido no espaço 3D, toda rotação combinada com toda translação, geralmente escrito como matrizes de transformação homogênea 4×4. Ele descreve poses e mudanças de pose.

Definição

SE(3), o grupo euclidiano especial em três dimensões, contém todas as transformações de corpo rígido: uma rotação R de SO(3), o grupo das matrizes ortonormais 3×3 com determinante +1, junto com um vetor de translação p. Escrita como uma matriz homogênea 4×4 com R no canto superior esquerdo, p na coluna da direita e [0 0 0 1] como linha inferior, a composição de dois movimentos é uma multiplicação de matrizes, e a inversa tem rotação Rᵀ e translação −Rᵀp. Um elemento de SE(3) pode descrever uma pose, a posição e a orientação de um sistema de coordenadas em relação a outro, ou um movimento que leva pontos de um sistema de coordenadas para outro. Ele tem seis graus de liberdade, três de rotação e três de translação; "especial" significa que as reflexões são excluídas.

SE(3) é um grupo de Lie, um espaço curvo e suave que também é um grupo, e não é um espaço vetorial: somar duas poses ou fazer a média de matrizes elemento a elemento não dá uma pose válida. Seu espaço tangente na identidade, a álgebra de Lie se(3), é formado por twists de seis dimensões que combinam velocidade angular e linear. O mapa exponencial transforma um twist em uma transformação, e o logaritmo faz o caminho inverso. Esses mapas estão na base da fórmula do produto de exponenciais para a cinemática, da otimização sobre a variedade usada em SLAM e em solvers de grafos de poses, em que as atualizações são aplicadas como pequenos twists, e da interpolação e da incerteza corretas para poses. Seu equivalente planar SE(2) tem três graus de liberdade, x, y e rumo, e é usado para robôs móveis e para objetos restritos a um plano, como um objeto pinçado entre as mandíbulas paralelas de uma garra.

Poses em SE(3) podem ser armazenadas como matrizes homogêneas, como uma rotação (matriz de rotação, quatérnio unitário ou eixo-ângulo) mais um vetor de translação, como quatérnios duais ou em coordenadas de twist. No aprendizado, redes que geram poses precisam tratar a parte de rotação com cuidado, já que os quatérnios cobrem cada rotação duas vezes e algumas parametrizações são descontínuas. Redes SE(3)-equivariantes incorporam a simetria do grupo em sua estrutura, de modo que suas saídas se transformam de forma consistente quando a cena de entrada é rotacionada ou transladada.

Por que importa

Todo sistema de coordenadas, todo parâmetro extrínseco de sensor, todo alvo do efetuador final e toda pose de objeto em um robô é um elemento de SE(3). Tratá-lo como um grupo, e não como doze números independentes, evita bugs comuns como matrizes de rotação que derivam, ordem de composição errada e médias inválidas, e torna corretas a otimização e as estimativas de incerteza.

Principais aplicações

  • Cinemática direta e alvos de pose do efetuador final
  • SLAM, odometria visual e otimização de grafos de poses
  • Estimativa de pose de objetos para preensão
  • Interpolação de trajetórias entre poses
  • Calibração dos parâmetros extrínsecos de sensores
  • Aprendizado equivariante para manipulação

Na prática

Em uma tarefa de pegar objetos, a cinemática direta dá a pose da garra no sistema de coordenadas da base, a calibração mão-olho dá a pose da câmera no sistema de coordenadas da garra e um estimador de pose dá a pose do objeto no sistema de coordenadas da câmera. A pose do objeto no sistema de coordenadas da base é o produto das três transformações, nessa ordem, e uma convenção de nomes consistente para os sistemas de coordenadas evita que a ordem seja trocada. Ao fundir várias estimativas de pose, a equipe faz a média das rotações em SO(3), por exemplo com média de quatérnios ou com uma média iterativa no espaço tangente, em vez de fazer a média dos elementos das matrizes. Bibliotecas como Sophus, manif e tf2 no ROS cuidam dessas operações.

Equívocos comuns

  • Poses podem ser promediadas ou interpoladas elemento a elemento — o resultado em geral não é uma rotação válida; média e interpolação precisam respeitar a estrutura de grupo
  • SE(3) é só SO(3) e um vetor de translação lado a lado — os elementos são os mesmos, mas quando movimentos são compostos a rotação atua sobre a translação, então a regra de composição é diferente
  • Ângulos de Euler mais uma posição são uma representação geral segura — eles cobrem SE(3), mas têm singularidades; quatérnios ou matrizes de rotação as evitam

Quem deve saber

  • Engenheiros de software de robótica que trabalham com sistemas de coordenadas
  • Engenheiros de SLAM e de estimação de estado
  • Engenheiros de cinemática e manipulação
  • Pesquisadores de machine learning que predizem poses

Tecnologias relacionadas

  • SO(3)
  • Álgebra de Lie se(3) (Lie Algebra se(3))
  • Matriz de transformação homogênea (Homogeneous Transformation Matrix)
  • Quatérnios (Quaternions)
  • Sophus
  • tf2

Termos relacionados

  • Transform
  • Coordinate Frame
  • Screw Axis
  • Forward Kinematics
  • Pose Graph Optimization
  • Equivariance

Projetos relacionados

  • AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • manif: Header-only C++ Lie theory library for robotics state estimation
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
  • DART: C++ physics engine for articulated rigid body dynamics and robotics simulation

Wikipédia

  • Grupo euclidiano

Este site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.