Open Source Robotics

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

Ruckig

Geração de trajetória em tempo real ótima com restrições de jerk para robôs e máquinas

Licença

MIT

Visão geral

Ruckig é uma biblioteca de geração de movimento instantânea para robôs e máquinas que calcula trajetórias ótimas em tempo com restrições de jerk em tempo real. Gera trajetórias para um waypoint alvo (com posição, velocidade e aceleração) a partir de qualquer estado inicial, limitadas por restrições de velocidade, aceleração e jerk — garantindo soluções ótimas em tempo para movimentos de estado a estado.

Ruckig é o primeiro gerador de trajetória Tipo V para estados alvo arbitrários, mais poderoso e mais rápido do que a biblioteca Reflexxes Tipo IV. Alcança tempos de computação abaixo de milissegundos adequados para ciclos de controle de até 250 microssegundos, com precisão numérica dentro de 1e-8 para posição/velocidade e 1e-12 para limites, validado em mais de 5 bilhões de trajetórias aleatórias.

A biblioteca central é escrita em C++ sem dependências, suportando C++20 até C++03, com bindings Python disponíveis via pip. Integra-se com os principais frameworks de robótica incluindo MoveIt 2 (ROS 2) como plugin de processamento de trajetória, CoppeliaSim e Frankx para controle do robô Franka Emika.

Desenvolvido no Karlsruhe Institute of Technology (KIT) e apresentado no RSS 2021.

O Ruckig é uma biblioteca de geração instantânea de movimento que calcula, em tempo real, trajetórias ótimas em tempo e com restrição de jerk para robôs e máquinas. Desenvolvida no Karlsruhe Institute of Technology (KIT) e apresentada na RSS 2021, ela se tornou um dos componentes de planejamento de movimento de código aberto mais implantados da robótica, com mais de 5 bilhões de trajetórias calculadas em ambientes de produção.

A biblioteca é o primeiro gerador de trajetórias Type V para estados-alvo arbitrários, superando as capacidades da conhecida biblioteca Reflexxes Type IV. Dado qualquer estado inicial (posição, velocidade, aceleração) e um waypoint de destino com restrições de velocidade/aceleração/jerk, o Ruckig calcula a trajetória matematicamente ótima em menos de um milissegundo — rápido o bastante para ciclos de controle de apenas 250 microssegundos. A precisão numérica é validada em até 1e-8 para posições/velocidades e 1e-12 para limites.

O Ruckig é escrito em C++ sem nenhuma dependência externa, com suporte a padrões de compilador de C++03 a C++20, e tem bindings Python disponíveis via pip. Seu projeto sem dependências torna a integração simples em qualquer stack robótico. A biblioteca está integrada ao MoveIt 2 (ROS 2) como plugin de processamento de trajetórias, ao CoppeliaSim para simulação e ao Frankx para controle de robôs Franka Emika.

A combinação de rigor matemático, desempenho em tempo real e integração sem atrito fez do Ruckig um componente padrão em laboratórios de pesquisa e empresas de robótica industrial no mundo todo.

Por que importa

A geração de trajetória suave e com limite de jerk é essencial para a operação de robôs no mundo real. Ruckig fornece uma solução em tempo real sem dependências que já está integrada ao MoveIt 2 e usada por centenas de laboratórios de pesquisa e empresas.

Problema que resolve

Geração em tempo real de perfis de movimento suaves com limite de jerk para robôs que devem reagir instantaneamente a entradas de sensores enquanto respeitam restrições de velocidade, aceleração e jerk

Pontos principais

  • Geração de trajetória ótima em tempo com restrições de jerk em computação abaixo de milissegundos
  • Zero dependências no núcleo C++ — fácil integração em qualquer pilha de robótica
  • Integrado ao MoveIt 2 (ROS 2) e CoppeliaSim imediatamente
  • Validado em mais de 5 bilhões de trajetórias aleatórias com precisão de 1e-12 nos limites

Para quem é

  • Desenvolvedores de braços robóticos
  • Engenheiros de planejamento de movimento
  • Desenvolvedores de ROS 2 / MoveIt
  • Engenheiros de automação industrial

Limitações

  • A versão comunitária não suporta cálculo de waypoint local (recurso Pro)
  • Limites de posição disponíveis apenas na versão Pro
  • Interface de rastreamento para sinais arbitrários requer versão Pro
  • A documentação da API Python é menos abrangente do que a de C++

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