Open Source Robotics

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

Motion Primitive

  • Também chamado: movement primitive, motor primitive, action primitive, skill primitive
  • Categoria: Planning & manipulation › Motion planning
  • Tags: motion-planning, manipulation, skills, learning-from-demonstration, task-planning

Um bloco reutilizável do movimento de um robô, como uma habilidade parametrizada (mover para uma pose, abrir a garra) ou um segmento curto de trajetória, que planejadores e políticas combinam em comportamentos mais longos.

Definição

Primitivas de movimento (motion primitives) dividem o comportamento de um robô em unidades reutilizáveis que podem ser encadeadas. Em vez de planejar ou aprender cada movimento no nível de comandos de junta, um sistema chama uma primitiva com alguns parâmetros, como uma pose-alvo, uma abertura da garra ou uma direção de empurrão, e a primitiva produz o movimento detalhado. O termo abrange várias ideias relacionadas, que diferem em como a primitiva é representada e no que escolhe entre as primitivas.

Em manipulação e planejamento de tarefas, as primitivas são habilidades parametrizadas: mover para uma pose, pegar, posicionar, empurrar, despejar, abrir ou fechar a garra. Planejadores de tarefas, árvores de comportamento ou modelos de linguagem escolhem uma sequência e preenchem os parâmetros; vários sistemas recentes fazem um modelo de linguagem escrever um programa curto que chama essas funções. Em planejamento de movimento, as primitivas são segmentos de trajetória curtos e pré-calculados que respeitam a dinâmica de um veículo, e os planejadores em reticulado (lattice planners) os unem sobre uma grade regular de estados para buscar caminhos viáveis para carros, robôs móveis e drones. No aprendizado por demonstração, primitivas de movimento são modelos de trajetória aprendidos a partir de exemplos que podem ser adaptados: as primitivas dinâmicas de movimento (dynamic movement primitives, DMPs), desenvolvidas por Ijspeert, Nakanishi e Schaal, codificam uma demonstração como um sistema dinâmico estável com um termo de forçamento aprendido, para que o início e a meta possam mudar, enquanto as primitivas de movimento probabilísticas (probabilistic movement primitives, ProMPs) representam uma distribuição sobre trajetórias.

O compromisso central é entre estrutura e alcance. Uma biblioteca fixa torna o comportamento previsível, testável e rápido de planejar, já que o planejador busca entre poucas escolhas discretas e seus parâmetros. Ela também limita o robô ao que a biblioteca consegue expressar: movimentos ricos em contato, reativos ou fortemente coordenados podem precisar de primitivas com realimentação embutida, ou de políticas aprendidas. Escolher a granularidade das primitivas é, portanto, uma decisão de projeto por si só.

Por que importa

As primitivas de movimento tornam tarefas de horizonte longo tratáveis para planejadores e modelos de linguagem, dando a eles um pequeno conjunto de ações testadas. Elas separam as decisões de alto nível do controle de baixo nível, de modo que cada camada pode ser desenvolvida e verificada isoladamente.

Principais aplicações

  • Manipulação conduzida por planejadores de tarefas ou modelos de linguagem
  • Planejamento de movimento baseado em reticulado para veículos e drones
  • Aprendizado por demonstração com primitivas dinâmicas de movimento
  • Árvores de comportamento que chamam habilidades reutilizáveis
  • Armazenamento em prateleiras, embalagem e montagem de horizonte longo

Na prática

Uma equipe que constrói um sistema para guardar objetos em prateleiras define uma biblioteca de primitivas como empurrar, varrer, inserir e pegar e posicionar, cada uma implementada como um controlador curto com parâmetros como ponto de contato, direção e distância, e cada uma com pré-condições verificadas antes de rodar e condições de término baseadas em força ou posição. Um modelo aprendido prevê como os objetos se movem sob cada primitiva parametrizada, um planejador busca entre sequências e parâmetros, e o robô executa o primeiro passo e replaneja. Em um drone, a mesma ideia aparece como uma biblioteca de trajetórias polinomiais curtas amostradas sobre as velocidades finais e verificadas contra o mapa de obstáculos a cada ciclo de planejamento.

Equívocos comuns

  • Uma primitiva de movimento é sempre uma trajetória fixa e codificada à mão — muitas são parametrizadas ou incluem realimentação, e as DMPs se adaptam a novas metas em tempo de execução
  • Usar primitivas significa abrir mão do aprendizado — as primitivas são muitas vezes aprendidas por demonstração, e modelos aprendidos são usados para escolhê-las e parametrizá-las
  • Qualquer tarefa pode ser resolvida com uma biblioteca grande o suficiente — tarefas que exigem contato reativo contínuo podem ficar fora do que primitivas discretas expressam, e a própria biblioteca precisa ser projetada e mantida

Quem deve saber

  • Engenheiros de manipulação que constroem bibliotecas de habilidades
  • Engenheiros de planejamento de movimento que trabalham com planejadores em reticulado
  • Pesquisadores de aprendizado robótico que trabalham com aprendizado por demonstração
  • Desenvolvedores que conectam modelos de linguagem ou planejadores de tarefas a robôs

Tecnologias relacionadas

  • Primitivas dinâmicas de movimento (Dynamic Movement Primitives, DMP)
  • Primitivas de movimento probabilísticas (Probabilistic Movement Primitives, ProMP)
  • Planejador em reticulado de estados (State Lattice Planner)
  • Árvores de comportamento (Behavior Trees)
  • Planejamento de tarefas e movimento (Task and Motion Planning)
  • Bibliotecas de habilidades (Skill Libraries)

Termos relacionados

  • Motion Planning
  • Trajectory Planning
  • Task and Motion Planning
  • Task Planning
  • Imitation Learning
  • Behavior Tree

Projetos relacionados

  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
  • NVIDIA Isaac GR00T: NVIDIA open foundation model for humanoid robot reasoning and skills
  • OpenVLA: 7B-parameter Vision-Language-Action model for robotic manipulation
  • BehaviorTree.CPP: C++ behavior tree library for robot task planning, powering Nav2 and ROS 2 systems
  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design

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