Simulador interativoAvançado

Simulador de braço robótico: cinemática e planejamento ROS

Explore limites de juntas, cinemática direta e inversa e planejamento seguro numa prévia de simulador de braço robótico no navegador.

Categoria
ROS
Tempo
3–6 horas
Plataforma
Navegador · ROS 2
Esquema técnico de Simulador de braço robótico: cinemática e planejamento ROSREACHABLE WORKSPACE

01 / Comece aqui

Introdução

Braços robóticos transformam comandos de junta em movimento preciso da ferramenta por meio de geometria, realimentação e planejamento. Este simulador introduz essa cadeia sem esconder as partes difíceis. Ele expõe referenciais de coordenadas, poses alcançáveis, limites de juntas e singularidades para que usuários de ROS e estudantes de robótica entendam por que um movimento solicitado é bem-sucedido ou falha.

Live lab / Forward & inverse kinematics · pick-and-place

Robot arm simulator

Pose the joints, drag a target and watch inverse kinematics solve it live, or set a pick-and-place task and run it — with honest reach, singularity, and limit reporting on a full 360° workspace.

Browser native
A planar robot arm kinematics simulator. Use the controls below to move the joints, drag a target, or run a pick-and-place task, or read the full theory and algorithm after this lab.

The filled dot is the base at the centre; segments are links with round joints; the tool shows a small x/y frame. The shaded ring is the reachable workspace (between the two dashed circles). In inverse mode the cross-marker is the draggable target and the faint arm is the other elbow solution. In pick-and-place mode, drag the box (pick) and the dashed square (place), then press Run.

Run

Forward mode. Drag the joint sliders to pose the arm.

Joints
Geometry & target
Tool X
0 px
Tool Y
0 px
Tool angle
0°
Status
Reachable
Reach
0 / 240 px

Keyboard: focus the workspace, then use Space to run a pick-and-place, R to reset, B to switch elbow, and F for full screen.

Controles

O simulador oferece controles deslizantes das juntas, um alvo de posição da ferramenta que pode ser arrastado, sobreposições de referenciais de coordenadas e controles das dimensões dos elos, com a base centralizada para que todo o espaço de trabalho alcançável de 360° fique visível. O modo direto calcula a pose da ferramenta a partir dos ângulos das juntas definidos. O modo inverso acompanha o alvo de posição que você arrasta — resolve os ângulos das juntas ao vivo e informa quando o alvo é inatingível ou ambíguo, em vez de se ajustar silenciosamente a um resultado. Um terceiro modo de coleta e posicionamento permite posicionar um ponto de coleta e um destino e então conduz o braço pela tarefa inteira: ele se move até o objeto, agarra, transporta e solta na zona de destino — o trabalho canônico para o qual todo manipulador real é construído.

Teoria

Cada junta contribui com uma transformação entre referenciais de coordenadas. Multiplicar essas transformações da base até a ferramenta fornece a pose pela cinemática direta. A cinemática inversa trabalha no sentido inverso e pode não ter solução, ter uma solução ou várias.

Espaço de trabalho alcançável de um braço planar de dois elos. Um anel sombreado entre um círculo interno e um círculo externo tracejado mostra todos os pontos que a ferramenta pode alcançar. Um único alvo dentro do anel é alcançado por duas configurações do braço: uma solução com o cotovelo para cima e outra com o cotovelo para baixo, desenhadas a partir da mesma base.
Um alvo dentro do anel alcançável normalmente tem duas soluções — cotovelo para cima e para baixo — enquanto pontos fora do raio externo ou dentro do raio interno não têm nenhuma. Baixar SVG

Perto de uma singularidade, um pequeno movimento da ferramenta pode exigir um movimento enorme das juntas. Um planejador também precisa respeitar limites de posição, velocidade, aceleração, torque e colisão. O alcance geométrico, por si só, não torna uma trajetória segura.

Algoritmo

  1. Defina comprimentos dos elos, eixos das juntas, transformações iniciais e limites das juntas.
  2. Calcule a cinemática direta para o estado atual das juntas.
  3. Compare a pose atual da ferramenta com o alvo solicitado.
  4. Use um solucionador analítico ou numérico para reduzir o erro de pose dentro dos limites.
  5. Rejeite candidatos que colidam ou sejam singulares e selecione uma solução contínua.
  6. Parametrize o caminho no tempo e envie referências sincronizadas aos controladores das juntas.

Código-fonte

Um braço planar de dois elos tem um modelo direto compacto:

from math import cos, sin

def forward_kinematics(theta_1, theta_2, link_1, link_2):
    elbow = (link_1 * cos(theta_1), link_1 * sin(theta_1))
    tool = (
        elbow[0] + link_2 * cos(theta_1 + theta_2),
        elbow[1] + link_2 * sin(theta_1 + theta_2),
    )
    return elbow, tool

Para braços físicos, valide cada trajetória planejada em um ambiente limitado que considere as colisões antes de alimentar os atuadores.

Premissas e diferenças do hardware

O braço é planar, com duas ou três juntas revolutas, elos perfeitamente rígidos, resposta instantânea de velocidade e sem gravidade, dinâmica ou colisão — você pode mudar do cotovelo para cima para o cotovelo para baixo sem limite de torque. Servos reais têm limites de posição e velocidade, folga da caixa de engrenagens, torque limitado pela corrente e deflexão dependente da carga, e um braço de seis eixos também precisa controlar a orientação, lidar com singularidades e trabalhar próximo aos limites das juntas. Este laboratório é onde você aprende por que um alvo dentro do anel pode ter duas soluções e por que um alvo em sua borda é singular, antes de adicionar a dinâmica que torna essas poses difíceis de manter.

Diagrama do circuito

Separe a alimentação de alta corrente dos atuadores da alimentação de computação, mantendo os sinais de referência e de segurança exigidos pelo hardware escolhido.

Diagrama de blocos da arquitetura de controle do braço robótico. Um planejador ou uma pilha ROS 2 envia alvos para as juntas a um controlador, que comanda servos inteligentes por um barramento. A realimentação de posição das juntas retorna dos servos ao controlador, e uma parada de emergência corta a alimentação dos servos independentemente do caminho do software.
O controlador fecha um laço com realimentação das juntas, enquanto a parada de emergência corta a alimentação dos atuadores por um caminho próprio — independente do software. Baixar SVG

Experimentos guiados

Arrastar um alvo ao redor é a maneira mais rápida de desenvolver a intuição para coisas que são tediosas de provar no papel e caras de descobrir no hardware.

1. Encontre a forma do espaço de trabalho

Arraste o alvo lentamente para fora até o solucionador informar que ele está inatingível e então trace essa fronteira por toda a extensão. Agora arraste para dentro, em direção à base.

Com comprimentos de elos diferentes, você encontrará duas bordas: um círculo externo em L1 + L2 e um círculo interno em |L1 − L2|. O espaço de trabalho é um anel, não um disco, e há um buraco no centro ao qual o braço não consegue chegar fisicamente.

Elos Alcance externo Buraco interno Forma
100 + 90 190 10 Anel com um pequeno buraco
100 + 50 150 50 Anel com um grande buraco
100 + 100 200 0 Um disco completo — elos iguais podem dobrar sobre si mesmos

Essa última linha é um fato de projeto realmente útil: comprimentos de elos iguais eliminam completamente a zona inacessível. Se seu braço precisa trabalhar próximo da própria base, esse é o motivo para escolhê-los.

2. Veja as duas soluções se fundirem

Alterne entre os ramos de cotovelo para cima e para baixo para um alvo próximo ao centro do espaço de trabalho: duas poses do braço claramente diferentes alcançando o mesmo ponto.

Agora arraste esse alvo para fora, em direção à borda. As duas poses convergem e, na extensão completa, se fundem na mesma pose. Essa é uma singularidade, e é onde o braço perde a capacidade de mover a ferramenta em uma direção, qualquer que seja a ação das juntas.

3. Sinta o que uma singularidade custa

Arraste o alvo ao longo de uma linha reta que passe perto da extensão máxima, devagar e com firmeza. Observe os ângulos das juntas, e não o braço.

A ferramenta se move a uma taxa constante; as juntas não. Perto da borda, um pequeno movimento da ferramenta exige um movimento enorme das juntas, portanto uma trajetória cartesiana suave se transforma em um movimento violento das juntas. No hardware, isso é um servo batendo em seu limite.

Mantenha as trajetórias planejadas dentro de cerca de 95% do alcance máximo, e isso deixa de ser um problema.

4. Cruze a fronteira de um ramo e veja a troca

Defina o solucionador para escolher sempre o cotovelo para cima e então arraste o alvo por uma região em que esse ramo encontra um limite de junta e o solucionador muda de ramo. O braço faz a troca em um movimento grande, rápido e completamente não planejado.

É por isso que a escolha correta é movimento mínimo: escolha o ramo mais próximo da pose atual, em vez de um ramo fixo. Uma troca de ramo silenciosa no meio do caminho, no hardware real, é assustadora e pode ser destrutiva.

O que observar

Ação Resultado esperado Se você vir outra coisa
Alvo além de L1 + L2 Uma indicação clara de “inatingível” Um NaN ou uma pose ajustada significa que o solucionador só verifica a alcançabilidade depois de tentar a solução
Alvo dentro de |L1 − L2| Também inatingível Correto — esse é o buraco, não um defeito
Alvo atrás da base Alcançado corretamente Se a solução se espelhar, o código está usando atan em vez de atan2
Alternar o ramo do cotovelo Mesma posição da ferramenta, juntas diferentes Ambas são válidas; a escolha é sua
Arrastar em direção à borda As velocidades das juntas sobem abruptamente Essa é a singularidade
Ida e volta por FK e depois IK Os ângulos originais voltam Uma incompatibilidade significa que um sinal ou convenção de deslocamento está inconsistente

Aplicação em hardware

A geometria é transferida com exatidão. Nada mais é transferido, e essa é a diferença que consome o tempo da construção do primeiro braço:

Neste laboratório Um braço servo real
As juntas vão exatamente onde forem comandadas O zero do servo depende de onde o braço foi montado; alguns giram para o lado errado
Sem gravidade O ombro cede quando o braço se estende — pior exatamente onde a precisão é pior
Sem folga Vários graus de folga, acumulados a cada reversão
Movimento instantâneo Um salto comandado ocorre na velocidade máxima, com um pico de corrente
Comprimentos perfeitos dos elos Meça entre os eixos das juntas, não entre as bordas dos suportes
Torque infinito Um SG90 a 58% do torque de travamento não mantém a posição com precisão

Dois números deixam isso claro. Quatro graus de folga no ombro em um alcance de 190 mm correspondem a mais de 13 mm na garra — maior que qualquer erro introduzido pela matemática. E um comprimento de elo medido 10 mm maior em um elo de 95 mm é um erro sistemático de 10% que nenhum ajuste removerá.

A consequência prática é que a precisão no hardware vem de calibração e de uma direção de aproximação consistente, e não de uma cinemática melhor. Aproxime-se sempre de um alvo pela mesma direção e a folga se torna um deslocamento repetitivo que você pode subtrair. O solucionador completo, com todos os casos de falha tratados, está em cinemática inversa para um braço de dois elos.

Lista de verificação de hardware

Componentes

  • Braço robótico de três eixos ou mais
  • Controlador capaz de atualizar as juntas de forma sincronizada
  • Realimentação das juntas ou servos inteligentes
  • Base rígida e ponto central da ferramenta definido
  • Parada de emergência e alimentação com limite de corrente

Explore o grafo

Onde este simulador é usado

Os projetos, caminhos de aprendizagem e tutoriais que se apoiam neste laboratório.

Continue construindo

Baixar recursos

Use estas referências da página enquanto trabalha no projeto. Pacotes de projeto para download serão adicionados somente depois que seu código-fonte e sua versão forem publicados.

Dúvidas comuns

Perguntas frequentes

Qual é a diferença entre cinemática direta e inversa?

A cinemática direta calcula a pose da ferramenta a partir de valores de junta conhecidos. A cinemática inversa parte de uma pose desejada da ferramenta e procura uma ou mais configurações das juntas capazes de produzi-la.

Por que um braço de dois elos tem duas soluções (cotovelo para cima e para baixo)?

Para a maioria dos alvos alcançáveis, o cotovelo pode dobrar para qualquer lado e ainda colocar a ferramenta no mesmo ponto, produzindo uma configuração com o cotovelo para cima e outra com o cotovelo para baixo. As duas soluções vêm do sinal de mais ou menos no ângulo da lei dos cossenos da segunda junta. Elas coincidem apenas em uma singularidade, quando o braço está totalmente estendido ou totalmente dobrado.

Como escolho entre cotovelo para cima e para baixo?

Escolha a configuração mais segura e eficiente para a tarefa: aquela que mantém as juntas longe dos limites, minimiza o movimento a partir da pose atual ou evita obstáculos. Este simulador permite alternar entre os ramos e mostra a solução alternativa como uma pose fantasma, para que a escolha fique visível.

O que é uma singularidade em um braço robótico?

Uma singularidade é uma configuração em que o braço perde a capacidade de mover a ferramenta em alguma direção — normalmente quando está totalmente estendido ou totalmente dobrado. Perto de uma singularidade, um pequeno movimento da ferramenta pode exigir um movimento enorme das juntas, portanto os planejadores diminuem a velocidade ou contornam essas poses. É também onde as soluções de cotovelo para cima e para baixo se fundem em uma.

Quando a cinemática inversa não tem solução?

Um alvo planar para um braço de dois elos é alcançável somente dentro do anel entre o alcance mínimo (a diferença dos comprimentos dos elos) e o máximo (a soma deles). Um ponto fora desse anel não pode ser alcançado com nenhum ângulo de junta. Uma pose também pode ser inatingível porque exige um ângulo de junta proibido, uma orientação que as juntas disponíveis não conseguem produzir ou uma configuração que colidiria com o próprio braço.

Por que usar cinemática inversa analítica em vez de um solucionador numérico?

Para um braço planar de dois ou três elos, a geometria tem solução em forma fechada (analítica), portanto você pode calcular diretamente os ângulos exatos das juntas, de forma determinística e rápida — ideal para ensino e testes. Solucionadores numéricos são necessários para braços redundantes ou espaciais, em que não existe forma fechada, mas eles iteram, podem perder soluções e são mais difíceis de analisar.

Leitura complementar

Referências

Fontes confiáveis para ir além do modelo educacional limitado deste simulador.