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++