Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

Motion Primitive

  • También llamado: movement primitive, motor primitive, action primitive, skill primitive
  • Categoría: Planning & manipulation › Motion planning
  • Etiquetas: motion-planning, manipulation, skills, learning-from-demonstration, task-planning

Un bloque reutilizable del movimiento de un robot, como una habilidad parametrizada (moverse a una pose, abrir la pinza) o un segmento corto de trayectoria, que los planificadores y las políticas combinan en comportamientos más largos.

Definición

Primitivas de movimiento (motion primitives) dividen el comportamiento de un robot en unidades reutilizables que pueden encadenarse. En lugar de planificar o aprender cada movimiento al nivel de los comandos articulares, un sistema invoca una primitiva con unos pocos parámetros, como una pose objetivo, una apertura de la pinza o una dirección de empuje, y la primitiva produce el movimiento detallado. El término abarca varias ideas relacionadas, que se diferencian en cómo se representa la primitiva y en qué elige entre primitivas.

En manipulación y planificación de tareas, las primitivas son habilidades parametrizadas: moverse a una pose, agarrar, colocar, empujar, verter, abrir o cerrar la pinza. Los planificadores de tareas, los árboles de comportamiento o los modelos de lenguaje eligen una secuencia y completan los parámetros; varios sistemas recientes hacen que un modelo de lenguaje escriba un programa corto que llama a esas funciones. En planificación de movimiento, las primitivas son segmentos de trayectoria cortos y precalculados que respetan la dinámica de un vehículo, y los planificadores de retícula (lattice planners) los unen sobre una rejilla regular de estados para buscar trayectorias factibles para coches, robots móviles y drones. En el aprendizaje a partir de demostraciones, las primitivas de movimiento son modelos de trayectoria aprendidos a partir de ejemplos que pueden adaptarse: las primitivas dinámicas de movimiento (dynamic movement primitives, DMPs), desarrolladas por Ijspeert, Nakanishi y Schaal, codifican una demostración como un sistema dinámico estable con un término de forzamiento aprendido para que el inicio y la meta puedan cambiar, mientras que las primitivas de movimiento probabilísticas (probabilistic movement primitives, ProMPs) representan una distribución sobre trayectorias.

La contrapartida central es entre estructura y alcance. Una biblioteca fija hace que el comportamiento sea predecible, comprobable y rápido de planificar, ya que el planificador busca entre unas pocas opciones discretas y sus parámetros. También limita al robot a lo que la biblioteca puede expresar: los movimientos ricos en contacto, reactivos o estrechamente coordinados pueden necesitar primitivas con realimentación incorporada, o políticas aprendidas. Elegir la granularidad de las primitivas es, por tanto, una decisión de diseño por derecho propio.

Por qué importa

Las primitivas de movimiento hacen abordables las tareas de horizonte largo para los planificadores y los modelos de lenguaje al darles un pequeño conjunto de acciones probadas. Separan las decisiones de alto nivel del control de bajo nivel, de modo que cada capa puede desarrollarse y verificarse por separado.

Aplicaciones clave

  • Manipulación dirigida por planificadores de tareas o modelos de lenguaje
  • Planificación de movimiento basada en retículas para vehículos y drones
  • Aprendizaje a partir de demostraciones con primitivas dinámicas de movimiento
  • Árboles de comportamiento que invocan habilidades reutilizables
  • Almacenamiento en estanterías, empaquetado y ensamblaje de horizonte largo

En la práctica

Un equipo que construye un sistema para colocar objetos en estanterías define una biblioteca de primitivas como empujar, barrer, insertar y agarrar y colocar, cada una implementada como un controlador corto con parámetros como el punto de contacto, la dirección y la distancia, y cada una con precondiciones que se comprueban antes de ejecutarse y condiciones de finalización basadas en la fuerza o la posición. Un modelo aprendido predice cómo se mueven los objetos con cada primitiva parametrizada, un planificador busca entre secuencias y parámetros, y el robot ejecuta el primer paso y vuelve a planificar. En un dron, la misma idea aparece como una biblioteca de trayectorias polinómicas cortas muestreadas sobre las velocidades finales y comprobadas contra el mapa de obstáculos en cada ciclo de planificación.

Ideas erróneas comunes

  • Una primitiva de movimiento es siempre una trayectoria fija y programada a mano — muchas están parametrizadas o incluyen realimentación, y las DMPs se adaptan a nuevas metas en tiempo de ejecución
  • Usar primitivas significa renunciar al aprendizaje — las primitivas a menudo se aprenden a partir de demostraciones, y se usan modelos aprendidos para elegirlas y parametrizarlas
  • Cualquier tarea puede resolverse con una biblioteca suficientemente grande — las tareas que necesitan un contacto reactivo continuo pueden quedar fuera de lo que expresan las primitivas discretas, y la propia biblioteca hay que diseñarla y mantenerla

Quién debería saberlo

  • Ingenieros de manipulación que construyen bibliotecas de habilidades
  • Ingenieros de planificación de movimiento que trabajan con planificadores de retícula
  • Investigadores en aprendizaje robótico que trabajan en aprendizaje a partir de demostraciones
  • Desarrolladores que conectan modelos de lenguaje o planificadores de tareas con robots

Tecnologías relacionadas

  • Primitivas dinámicas de movimiento (Dynamic Movement Primitives, DMP)
  • Primitivas de movimiento probabilísticas (Probabilistic Movement Primitives, ProMP)
  • Planificador de retícula de estados (State Lattice Planner)
  • Árboles de comportamiento (Behavior Trees)
  • Planificación de tareas y movimiento (Task and Motion Planning)
  • Bibliotecas de habilidades (Skill Libraries)

Términos relacionados

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

Proyectos 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 sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.