Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

Motion Primitive

  • Also called: movement primitive, motor primitive, action primitive, skill primitive
  • Category: Planning & manipulation › Motion planning
  • Tags: motion-planning, manipulation, skills, learning-from-demonstration, task-planning

A reusable building block of robot motion, such as a parameterized skill (move to pose, open gripper) or a short trajectory segment, that planners and policies combine into longer behavior.

Definition

Motion primitives break robot behavior into reusable units that can be chained. Instead of planning or learning every motion at the level of joint commands, a system calls a primitive with a few parameters, such as a target pose, a gripper width or a pushing direction, and the primitive produces the detailed motion. The term covers several related ideas, which differ in how the primitive is represented and in what chooses between primitives.

In manipulation and task planning, primitives are parameterized skills: move to pose, grasp, place, push, pour, open or close the gripper. Task planners, behavior trees or language models choose a sequence and fill in the parameters; several recent systems have a language model write a short program that calls such functions. In motion planning, primitives are short precomputed trajectory segments that respect a vehicle's dynamics, and lattice planners join them on a regular grid of states to search for feasible paths for cars, mobile robots and drones. In learning from demonstration, movement primitives are trajectory models learned from examples that can be adapted: dynamic movement primitives (DMPs), developed by Ijspeert, Nakanishi and Schaal, encode a demonstration as a stable dynamical system with a learned forcing term so that start and goal can change, while probabilistic movement primitives (ProMPs) represent a distribution over trajectories.

The central trade-off is between structure and reach. A fixed library makes behavior predictable, testable and quick to plan with, since the planner searches over a few discrete choices and their parameters. It also limits the robot to what the library can express: contact-rich, reactive or tightly coordinated motions may need primitives with feedback built in, or learned policies. Choosing the granularity of primitives is therefore a design decision in its own right.

Why it matters

Motion primitives make long-horizon tasks tractable for planners and language models by giving them a small set of tested actions. They separate high-level decisions from low-level control, so each layer can be developed and verified on its own.

Key applications

  • Manipulation driven by task planners or language models
  • Lattice-based motion planning for vehicles and drones
  • Learning from demonstration with dynamic movement primitives
  • Behavior trees that call reusable skills
  • Long-horizon stowing, packing and assembly

In practice

A team building a shelf-stowing system defines a library of primitives such as push, sweep, insert, and grasp-and-place, each implemented as a short controller with parameters like contact point, direction and distance, and each with preconditions checked before it runs and termination conditions on force or position. A learned model predicts how objects move under each parameterized primitive, a planner searches over sequences and parameters, and the robot executes the first step and replans. On a drone, the same idea appears as a library of short polynomial trajectories sampled over end velocities and checked against the obstacle map at every planning cycle.

Common misconceptions

  • A motion primitive is always a fixed, hard-coded trajectory — many are parameterized or include feedback, and DMPs adapt to new goals at run time
  • Using primitives means giving up on learning — primitives are often learned from demonstration, and learned models are used to choose and parameterize them
  • Any task can be solved with a large enough library — tasks that need continuous reactive contact can fall outside what discrete primitives express, and the library itself has to be designed and maintained

Who should know this

  • Manipulation engineers building skill libraries
  • Motion planning engineers working with lattice planners
  • Robot learning researchers working on learning from demonstration
  • Developers connecting language models or task planners to robots

Related technologies

  • Dynamic Movement Primitives (DMP)
  • Probabilistic Movement Primitives (ProMP)
  • State Lattice Planner
  • Behavior Trees
  • Task and Motion Planning
  • Skill Libraries

Related terms

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

Related projects

  • 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

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.