Pular para o conteúdo principal
Estágio 5 · Capítulo 23 · Teoria

23. Fundamentos Matemáticos do Braço Robótico e Sistemas de Coordenadas

Capítulo 23 do Curso de Iniciação em IA Física da Seeed — referenciais de coordenadas e transformadas homogêneas: referenciais de mundo, base, junta, efetuador final e câmera, vetores e matrizes, matrizes de translação e rotação, encadeamento de transformadas e ângulos de Euler versus quaternions.

Hardware necessário para este estágio​

O que preparar para este estágio. A lista completa para cada estágio está no Capítulo 3.

Unidade de controle principal

ItemComprarQtde
reComputer Robotics J4012🛒1
NVIDIA Jetson AGX Thor 128G🛒1

Também é necessário um desktop ou laptop: Ubuntu 22.04, GTX 4080 ou superior com 12GB+ de VRAM, 16GB+ de RAM.

Para este estágio

ItemComprarQtde
reBot Arm B601 DM/RS🛒1
Visão geral

Onde este estágio se encaixa no curso

O conteúdo apresentado nestes capítulos pertence ao controle tradicional, ou seja, controlar o braço robótico por meio de programação fixa. O controle tradicional é usado na grande maioria dos projetos em produção. Sua vantagem é a estabilidade e a confiabilidade, o que é especialmente valioso em cenários de produção industrial. Sua desvantagem é que, em um novo ambiente, ele exige um novo ajuste antes de poder operar de forma estável.

CapítuloTítuloTipoFoco
23Fundamentos Matemáticos do Braço Robótico e Sistemas de CoordenadasTeoriaReferenciais, vetores, transformadas homogêneas, representações de rotação
24Cinemática Direta, Cinemática Inversa e o JacobianoTeoriaComo os ângulos das juntas e a pose do efetuador final se conectam
25Planejamento de Trajetória e Controle de Braço RobóticoTeoriaCaminho vs trajetória, interpolação, feedforward + feedback
26Pinocchio e MeshCatPráticaExecutar FK / IK / planejamento de trajetória no modelo real do reBot Arm
dica

Os capítulos 23–25 são material de referência: em projetos reais o URDF e a biblioteca de cinemática fazem o trabalho de matrizes por você. Leia-os uma vez para entender o que os números significam e depois mantenha-os como referência de consulta enquanto você trabalha no Capítulo 26.

Por que o estágio 5 vem depois do estágio 4. O estágio 3 e o estágio 4 ensinaram o braço a imitar e a seguir linguagem. Esses sistemas são aprendidos: eles veem o mundo e agem sobre ele, mas não garantem nada. No momento em que você precisa de um cordão de solda reto, uma pega repetível ou uma parada de emergência segura, você precisa da camada determinística por baixo — a matemática e o controle de movimento deste estágio. A figura acima é o contraste em uma imagem: um VLM descreve o mundo, um VLA age sobre ele, e tudo o que você aprende aqui decide como a ação é realmente executada.

AspectoVLM (Vision-Language Model)VLA (Vision-Language-Action Model)
EntradaImagem + perguntaImagem + instrução de tarefa (+ estado do robô)
SaídaUma descrição em textoUma sequência de ações do robô
PropósitoEntender e descreverEntender e agir
Modelos típicosLLaVA, Qwen-VLGR00T, pi0
Usado emPercepção, anotação, depuraçãoControle de robô real (Estágio 4)

23.1 Objetivos de Aprendizagem​

Após este capítulo você deverá ser capaz de:

  1. Explicar o que é um referencial de coordenadas e por que um braço robótico precisa de vários deles.
  2. Nomear o referencial de mundo, o referencial de base, o referencial de espaço de juntas, o referencial do efetuador final/ferramenta e o referencial da câmera, e dizer a que cada um está ligado.
  3. Escrever uma translação e uma rotação como uma matriz de transformada homogênea 4x4 e multiplicar duas delas manualmente.
  4. Explicar por que coordenadas homogêneas existem e o que a notação “não homogênea” perde.
  5. Dizer quando usar ângulos de Euler e quando usar quaternions.

23.2 Noções Básicas de Vetores e Matrizes​

Cinemática direta e inversa (tratadas no próximo capítulo) envolvem um grande número de vetores e matrizes, portanto construir uma base sólida em matrizes é importante. No controle real não precisamos participar das computações de baixo nível nós mesmos, então este capítulo é fornecido apenas como referência.

  • Um vetor descreve uma quantidade com direção e magnitude: uma posição, uma velocidade, uma força.
  • Uma matriz descreve uma transformação linear: como um vetor em um referencial se torna um vetor em outro referencial.
  • Os três objetos usados em toda a robótica são o vetor posição 3x1 p\mathbf{p}, a matriz de rotação 3x3 RR e a transformada homogênea 4x4 TT.

Um teste de sanidade útil para qualquer matriz de rotação RR:

R⊤R=I(ortonormal)det⁡(R)=+1(uma rotac¸a˜o proˊpria, sem espelhamento)\begin{aligned} R^\top R &= I && \text{(ortonormal)} \\ \det(R) &= +1 && \text{(uma rotação própria, sem espelhamento)} \end{aligned}
Microexemplo resolvido: lendo uma transformada 4x4
T=(0010.300100.05−1000.420001),R=(001010−100),t=(0.300.050.42)T = \begin{pmatrix} 0 & 0 & 1 & 0.30 \\ 0 & 1 & 0 & 0.05 \\ -1 & 0 & 0 & 0.42 \\ 0 & 0 & 0 & 1 \end{pmatrix}, \qquad R = \begin{pmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ -1 & 0 & 0 \end{pmatrix}, \qquad \mathbf{t} = \begin{pmatrix} 0.30 \\ 0.05 \\ 0.42 \end{pmatrix}

Leia as colunas de RR como os eixos do referencial filho expressos no referencial pai:

  • x do filho = [0, 0, −1]⊤[0,\ 0,\ -1]^\top -> aponta para baixo no referencial pai
  • y do filho = [0, 1, 0]⊤[0,\ 1,\ 0]^\top -> igual ao y do pai
  • z do filho = [1, 0, 0]⊤[1,\ 0,\ 0]^\top -> aponta ao longo do x do pai

e leia t\mathbf{t} como onde a origem do referencial filho está. Isso é tudo o que uma transformada é.

23.3 Referencial de Mundo e Referencial de Base​

Referencial de mundo versus referencial de base

O referencial de mundo pode ser entendido como o referencial de coordenadas do ambiente em que o braço robótico está; o referencial de base é estabelecido na base do robô. No projeto do braço reBot, como a base do robô é fixa, o referencial de mundo e o referencial de base coincidem.

Por exemplo: o braço é colocado sobre uma mesa, com o centro da base do braço como origem, o tampo da mesa como plano xy e a direção vertical dos pés da mesa como eixo z; o referencial de mundo segue a regra da mão direita. O referencial de base também coincide com o referencial de mundo. (Referencial cartesiano comumente usado.)

Regra da mão direita, RGB = XYZ

Convenção de cores dos três eixos XYZ em robótica/visão (RGB = XYZ)

EixoCorNome comum
X🔴 VermelhoVermelho
Y🟢 VerdeVerde
Z🔵 AzulAzul
nota

Regra da mão direita: aponte +X ao longo do dedo indicador e +Y ao longo do dedo médio; o polegar dá +Z. Rotações em torno de +X, +Y, +Z são positivas no sentido anti-horário quando se olha de volta ao longo do eixo em direção à origem. Toda ferramenta de robótica (RViz, MeshCat, SolidWorks, URDF) usa essa mesma convenção, e é por isso que o mapeamento de cores RGB = XYZ vale a pena ser memorizado.

23.4 Referencial de Espaço de Juntas e Referencial do Efetuador Final​

O referencial de espaço de juntas é o referencial mais usado no controle de robôs. Ele é estabelecido nas juntas do robô; o número de dimensões é igual ao número de juntas que o robô possui.

Referencial de espaço de juntas

O reBot B601 tem seis juntas rotativas mais uma garra, então seu referencial de espaço de juntas é 6-dimensional (7-dimensional se a garra for tratada como um eixo extra).

Referencial do efetuador final

  • Origem: ponto central da ferramenta (TCP)
Referencial do efetuador final / TCP

O referencial do efetuador final é estabelecido na extremidade do robô; também existe um referencial da ferramenta. Quando precisamos que a extremidade atinja uma certa posição, nos importamos com o referencial do efetuador final; se uma garra estiver montada na extremidade, nos importamos com o referencial da garra.

ReferencialLigado aOrigemUso típico
Mundo {world}\{world\}O ambienteUm ponto fixo na mesa / célulaCoordenadas em nível de tarefa, trabalho de câmera
Base {base}\{base\}A base do robôCentro da baseRaiz da cadeia cinemática
Junta {ji}\{j_i\}Junta iiEixo da junta iiCálculo interno de FK / IK
FlangeSaída da última juntaCentro da flangeOnde uma ferramenta é montada
Ferramenta / TCPA própria ferramentaPonto central da ferramentaPlanejamento de trajetória, pontos de pega

Em uma frase: o referencial de mundo é o referencial que os humanos entendem de forma mais intuitiva, enquanto o robô depende do referencial de espaço de juntas para mudar a posição da garra na extremidade. Então definimos alvos usando coordenadas de mundo e usamos o referencial de espaço de juntas para fazer o robô se mover como pretendemos. A conexão entre eles é a transformação de coordenadas.

23.5 Referencial da Câmera​

O referencial da câmera e o referencial do efetuador final geralmente são obtidos por meio de uma transformada de translação.

  • Origem: centro óptico da câmera
  • Convenção: eixo z para frente ao longo do eixo óptico, x para a direita, y para baixo (convenção do OpenCV; algumas ferramentas OpenGL/ROS usam y para cima)
ConvençãoxyzMão direita
OpenCV / visãodireitapara baixopara frente (na cena)sim
OpenGL / algumas ferramentas ROSdireitapara cimapara trássim
ROS camera_optical_framedireitapara baixopara frentesim
atenção

Nunca misture silenciosamente as duas convenções. Uma câmera com "y para baixo" e uma câmera com "y para cima" diferem por uma rotação de 180° em torno de x, e uma calibração mão-olho calculada com uma convenção enviará a garra para o lado errado do objeto quando usada com a outra.

Onde o referencial da câmera aparece em um pipeline de preensão visual:

pixel (u,v) → intrinsics K referencial da caˆmera → ma˜o-olho Tcam→tcp referencial do efetuador final → FK referencial da base → IK aˆngulos das juntas\begin{aligned} \text{pixel } (u, v) &\ \xrightarrow{\ \text{intrinsics } K\ } \text{referencial da câmera} \\ &\ \xrightarrow{\ \text{mão-olho } T_{\text{cam}\to\text{tcp}}\ } \text{referencial do efetuador final} \\ &\ \xrightarrow{\ \text{FK}\ } \text{referencial da base} \\ &\ \xrightarrow{\ \text{IK}\ } \text{ângulos das juntas} \end{aligned}

23.6 Representação Matricial de Transformações de Coordenadas​

Rotações elementares de referenciais i, j, k

A representação homogênea unifica "transformação linear + translação" em uma única multiplicação matricial.

Na representação não homogênea, a translação é uma adição fora da matriz e não pode ser combinada com a rotação em uma única matriz.

Transformação homogênea geral

T=(Rt0⊤1),R: 3×3 rotac¸a˜o (orientac¸a˜o),t: 3×1 translac¸a˜o (posic¸a˜o)T = \begin{pmatrix} R & \mathbf{t} \\ \mathbf{0}^\top & 1 \end{pmatrix}, \qquad R:\ 3\times3 \text{ rotação (orientação)}, \qquad \mathbf{t}:\ 3\times1 \text{ translação (posição)}

Transformação de translação

p′=p+tT=(100tx010ty001tz0001)\mathbf{p}' = \mathbf{p} + \mathbf{t} \qquad \mathbf{T} = \begin{pmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{pmatrix}

Escrita por completo, não homogênea à esquerda e homogênea à direita:

\begin{pmatrix} x' \\ y' \\ z' \end{pmatrix} = \begin{pmatrix} x \\ y \\ z \end{pmatrix} + \begin{pmatrix} t_x \\ t_y \\ t_z \end{pmatrix} = \begin{pmatrix] x + t_x \\ y + t_y \\ z + t_z \end{pmatrix} \qquad\Longleftrightarrow\qquad \begin{pmatrix] x' \\ y' \\ z' \\ 1 \end{pmatrix} = \begin{pmatrix] 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{pmatrix} \begin{pmatrix] x \\ y \\ z \\ 1 \end{pmatrix} = \begin{pmatrix] x + t_x \\ y + t_y \\ z + t_z \\ 1 \end{pmatrix}

Transformação de rotação

As três matrizes de rotação elementares. Escrever c=cos⁡θc = \cos\theta e s=sin⁡θs = \sin\theta mantém as matrizes legíveis; expanda-as substituindo de volta quando fizer os cálculos à mão.

Rx(θ)=(1000c−s0sc)Ry(θ)=(c0s010−s0c)Rz(θ)=(c−s0sc0001)R_x(\theta) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & c & -s \\ 0 & s & c \end{pmatrix} \qquad R_y(\theta) = \begin{pmatrix} c & 0 & s \\ 0 & 1 & 0 \\ -s & 0 & c \end{pmatrix} \qquad R_z(\theta) = \begin{pmatrix} c & -s & 0 \\ s & c & 0 \\ 0 & 0 & 1 \end{pmatrix}

A versão homogênea de cada rotação mantém o mesmo bloco 3x3 com uma coluna de translação zero, então uma matriz de rotação RR se torna

\begin{pmatrix} R & \mathbf{0} \\ \mathbf{0}^\top & 1 \end{pmatrix} \qquad\text{por exemplo}\qquad R_z(\theta) = \begin{pmatrix] c & -s & 0 & 0 \\ s & c & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}
EixoNão homogêneaHomogênea
Eixo XRx(θ)R_x(\theta)(10000c−s00sc00001)\begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & c & -s & 0 \\ 0 & s & c & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}
Eixo YRy(θ)R_y(\theta)(c0s00100−s0c00001)\begin{pmatrix} c & 0 & s & 0 \\ 0 & 1 & 0 & 0 \\ -s & 0 & c & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}
Eixo ZRz(θ)R_z(\theta)(c−s00sc0000100001)\begin{pmatrix} c & -s & 0 & 0 \\ s & c & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}
nota

Por que a linha inferior é [0 0 0 1][0\ 0\ 0\ 1]. Ela não carrega nenhum significado físico; existe para que o produto matricial de duas transformações seja novamente uma transformação, e para que um ponto (x,y,z,1)(x, y, z, 1) e uma direção (x,y,z,0)(x, y, z, 0) possam ser transformados pela mesma matriz — a direção ignora a translação, o ponto não.

Compondo transformações — encadear é apenas multiplicação de matrizes, e a inversa é barata:

Tac=Tab Tbccomposic¸a˜o (regra da cadeia)(Tab)−1=Tba=(R⊤−R⊤t0⊤1)(R⊤ em vez de uma inversa˜o 3×3)\begin{aligned} T_a^c &= T_a^b \, T_b^c && \text{composição (regra da cadeia)} \\ \left( T_a^b \right)^{-1} = T_b^a &= \begin{pmatrix} R^\top & -R^\top \mathbf{t} \\ \mathbf{0}^\top & 1 \end{pmatrix} && (R^\top \text{ em vez de uma inversão } 3\times3) \end{aligned}

23.7 Ângulos de Euler e Quaternions​

Rolagem, arfagem, guinada

Ângulos de Euler vs. quaternions

  • Ângulos de Euler: 3 números, intuitivos, têm travamento de cardan (gimbal lock)
  • Quaternions: 4 números (1 restrição), não intuitivos, sem travamento de cardan
AspectoÂngulos de Euler (roll/pitch/yaw)Quaternion
Números34, com a restrição w2+x2+y2+z2=1w^2+x^2+y^2+z^2 = 1
IntuitivoSim, fácil de ler e registrarNão
SingularidadeTravamento de cardan quando o ângulo do meio atinge +/-90°Nenhuma
InterpolaçãoRuim (saltos, multivalorado)Boa (slerp)
Risco de convenção24 convenções diferentes (ordem, intrínseco/extrínseco)Convenção única (apenas ambiguidade de sinal)
Uso típicoEntrada humana, arquivos de configuração, logsCálculo interno, mensagens ROS, estimação de estado

Em engenharia: use ângulos de Euler para humanos, quaternions para a máquina.

dica

No reBot Arm isso aparece concretamente: MeshCat e Pinocchio pensam em matrizes de rotação e objetos SE(3), enquanto você digita roll/pitch/yaw em graus no terminal. As demonstrações no Capítulo 26 convertem entre os dois para você (rpyToMatrix, matrixToRpy).

  • Um referencial são três eixos mais uma origem; o braço precisa de pelo menos referenciais de mundo, base, junta, ferramenta e câmera.
  • {world}={base}\{world\} = \{base\} no reBot Arm porque a base é fixada.
  • Uma transformação homogênea empacota rotação e translação em uma única matriz 4x4; o encadeamento é por multiplicação.
  • Ângulos de Euler para humanos, quaternions para a máquina.
  • Próximo capítulo: usar essas transformações para calcular a pose do efetuador final a partir dos ângulos das juntas — e de volta novamente.
Loading Comments...