A motion primitive is a short, pre-computed trajectory segment that is both kinematically and dynamically feasible for a specific robot model. It serves as the atomic unit in search-based planners, like lattice planners, where complex paths are constructed by connecting sequences of these primitives. Each primitive encodes a transition from one discrete state (e.g., position, heading, velocity) to another, respecting the vehicle's physical constraints such as maximum curvature and acceleration.
Glossary
Motion Primitive

What is a Motion Primitive?
A motion primitive is a fundamental building block for robot path planning, enabling the construction of complex, feasible trajectories through composition.
In heterogeneous fleet orchestration, motion primitives enable efficient real-time replanning for mixed fleets. By composing from a library of verified primitives, planning engines can rapidly generate and adjust collision-free paths for autonomous mobile robots in dynamic warehouses. This approach provides a critical balance between computational speed and the guarantee of executable, smooth motions, directly supporting multi-agent path finding (MAPF) and kinodynamic planning.
Core Characteristics of Motion Primitives
Motion primitives are short, pre-computed trajectory segments that serve as the atomic units for constructing complex, dynamically feasible paths in robotic planning systems.
Kinodynamic Feasibility
A motion primitive is kinematically and dynamically feasible by definition. This means each primitive is a valid solution to the robot's equations of motion, respecting hard constraints such as:
- Maximum velocity and acceleration
- Non-holonomic constraints (e.g., a car cannot move sideways)
- Actuator torque limits Primitives are generated offline by solving boundary value problems, ensuring they can be executed by the physical system without violation.
Composition & Lattice Graphs
Complex paths are built by sequentially composing primitives end-to-end. This composition forms a state lattice—a discrete graph embedded in the continuous state space where:
- Nodes represent discretized robot states (x, y, heading, velocity).
- Edges are the motion primitives connecting these states. Planners like Lattice Planners or A* search this graph to find a feasible sequence from start to goal. The use of pre-computed primitives transforms a continuous planning problem into a discrete graph search, enabling real-time performance.
State Space Discretization
Motion primitives enable planning by defining a manageable discretization of the robot's high-dimensional state space. Instead of planning in continuous space, the planner selects from a finite library of primitives originating from discrete states. Key discretization parameters include:
- Position (x, y) resolution (e.g., 0.1m grid)
- Heading (θ) resolution (e.g., 5° increments)
- Velocity (v) bins (e.g., 0 m/s, 0.5 m/s, 1.0 m/s) The granularity of this discretization creates a trade-off between planning resolution, computational cost, and memory usage for the primitive library.
Connection to Replanning Engines
In real-time replanning engines, motion primitives are the fundamental output of the local planner. When a replanning trigger (e.g., a new obstacle) occurs, the engine:
- Takes the robot's current state as the new start node.
- Searches the lattice of primitives for a new feasible sequence over the replanning horizon.
- Executes the first primitive(s) before replanning again (Receding Horizon Control). This allows for dynamic obstacle avoidance and adaptation while guaranteeing every issued command is dynamically executable.
Contrast with Sampling-Based Methods
Motion primitives differ fundamentally from sampling-based planners like RRT or PRM. Key distinctions:
- Pre-computation vs. Online Generation: Primitives are computed offline; RRT samples and connects states online.
- Feasibility Guarantee: Each primitive is dynamically feasible by construction. RRT connections may require post-processing smoothing.
- Deterministic Search vs. Probabilistic Completeness: Lattice search with primitives is deterministic; RRT offers probabilistic completeness. Primitive-based planners are often preferred for high-speed navigation of vehicles with complex dynamics where feasibility is paramount.
Examples & Applications
Common examples of motion primitives include:
- Dubins Paths: Shortest paths for cars moving forward with a bounded turning radius (e.g., Left-Straight-Left, Right-Straight-Right sequences).
- Reeds-Shepp Paths: Similar to Dubins but allow reverse gear.
- Clothoids: Curves with linearly changing curvature, used for comfortable passenger vehicle paths.
- Polynomial Spirals: Parametric curves used for smooth lane changes.
Primary Applications:
- Autonomous Vehicle lane-keeping and obstacle avoidance.
- Autonomous Mobile Robot (AMR) navigation in warehouses.
- Aerial Drone trajectory planning in cluttered environments.
How Motion Primitives Work in Planning
A motion primitive is a fundamental building block for robot motion planning, enabling the efficient construction of complex, feasible trajectories.
A motion primitive is a short, kinematically and dynamically feasible trajectory segment that serves as a reusable building block for constructing complex paths. In lattice-based planners, these primitives are precomputed and stored in a graph, allowing search algorithms like A* to efficiently assemble long-horizon plans by connecting these validated segments. This approach guarantees that every candidate path respects the robot's physical constraints from the outset, which is critical for systems with complex dynamics like autonomous vehicles or mobile robots.
The use of motion primitives transforms continuous kinodynamic planning into a discrete graph search problem, dramatically improving computational efficiency for real-time applications. By composing primitives, a planner can generate smooth, executable trajectories without online integration of complex differential equations. This method is foundational in heterogeneous fleet orchestration, where different agent types (e.g., differential-drive vs. car-like robots) each utilize their own library of primitives, enabling a unified planning engine to generate appropriate, collision-free motions for the entire mixed fleet.
Examples and Applications
Motion primitives are the fundamental building blocks for constructing complex robot trajectories. Their design and application are critical for efficient and safe navigation in dynamic environments.
Lattice-Based Planners
In lattice-based planners, a finite set of motion primitives is precomputed to form a state lattice—a graph where nodes represent vehicle states (position, heading, velocity) and edges are the primitives connecting them. Planners like Hybrid A* search this lattice for optimal, kinematically feasible paths. This is essential for non-holonomic vehicles like cars or forklifts, where simple straight-line connections are not dynamically possible.
- Key Benefit: Guarantees that all candidate paths respect the vehicle's turning radius and acceleration limits.
- Example: An autonomous mobile robot (AMR) in a warehouse uses a lattice of dubins curves or reeds-shepp curves to plan smooth turns within narrow aisles.
Search-Based Motion Planning
Search-based algorithms like A* and D* use motion primitives to expand the search tree during planning. Instead of arbitrary movements, each expansion applies a primitive from the current state, ensuring every explored path segment is executable. This is a core technique in real-time replanning engines where the environment is dynamic.
- Process: From a node representing the robot's current state, the planner 'sprays' a set of primitives to generate candidate successor states, evaluating each for cost and collision.
- Advantage: Combines the optimality guarantees of graph search with the feasibility guarantees of pre-vetted motion segments.
Local Trajectory Optimization
Motion primitives serve as an excellent initial guess or parameterization for local optimization methods. In the Timed Elastic Band (TEB) approach, a sequence of primitives forms the initial 'band' that is then optimized for smoothness, safety, and speed. Similarly, Model Predictive Control (MPC) solvers can use a library of primitives to warm-start the non-linear optimization, drastically reducing computation time.
- Use Case: A delivery robot uses MPC to navigate a crowded sidewalk. A set of lane-change and deceleration primitives provides the solver with a physically realistic starting point, enabling faster convergence to a safe, compliant trajectory.
Multi-Agent Coordination
In Multi-Agent Path Finding (MAPF), motion primitives standardize the action space for each agent. Algorithms like Conflict-Based Search (CBS) can reason over conflicts at the level of primitives (e.g., two agents attempting to use the same 'forward-left' primitive in the same space-time cell). This abstraction simplifies conflict resolution and deadlock detection.
- Application: Coordinating a heterogeneous fleet of AMRs and manual forklifts. Each vehicle type has its own primitive library, but the orchestrator understands the spacetime footprint of each primitive, enabling safe, synchronized movement in shared zones.
Primitive Libraries for Different Vehicles
The specific primitives in a library are tailored to a vehicle's kinodynamic constraints. This is a key enabler of heterogeneous fleet orchestration.
- Differential-Drive Robot (AMR): Primitives include in-place rotations, straight-line segments, and arcs of varying curvature.
- Ackermann-Steering Vehicle (Forklift/Car): Primitives are dubins paths (combinations of arcs and straight lines) respecting a minimum turning radius. Reeds-Shepp curves add reverse motions.
- Quadrotor (UAV): Primitives are 3D minimum-snap trajectories or polynomial segments that satisfy dynamics and actuator limits.
Primitive Generation & Feasibility Checking
Motion primitives are not arbitrary; they are generated offline by solving two-point boundary value problems that respect the vehicle's dynamics model. A feasibility checker validates each primitive against:
- Kinematic Constraints: Adherence to non-holonomic rules (e.g., no sideways movement for a car).
- Dynamic Constraints: Acceleration, jerk, and torque limits.
- Physical Limits: Adherence to maximum velocity and steering angle.
- Collision Geometry: The swept volume of the vehicle along the primitive must be collision-free in a nominal environment.
This offline validation is what makes online planning with primitives so computationally efficient.
Motion Primitive vs. Related Planning Concepts
A comparison of motion primitives to other core algorithmic components used in real-time replanning and motion planning for autonomous fleets.
| Feature / Concept | Motion Primitive | Search-Based Planner (e.g., A*, Lattice) | Optimization-Based Planner (e.g., MPC, TEB) |
|---|---|---|---|
Core Function | Pre-computed trajectory building block | Graph search for a complete path | Continuous optimization of a trajectory |
Output Granularity | Short, kinematically feasible segment | Complete path (sequence of states/actions) | Optimized control inputs or trajectory |
Typical Composition Method | Concatenation into a lattice | Heuristic-guided graph expansion | Iterative gradient-based deformation |
Dynamic Feasibility Guarantee | Encoded in pre-computation | Depends on state discretization & primitives | Explicitly enforced via constraints |
Real-Time Replanning Suitability | High (fast lookup and composition) | Moderate to High (depends on graph size) | High (local, iterative optimization) |
Optimality | Local building block; global optimality from search | Asymptotically optimal (e.g., RRT*, LPA*) | Locally optimal within horizon |
Primary Use Case | Constructing smooth paths in lattice planners | Finding initial feasible paths in known spaces | Refining paths for dynamics & obstacle avoidance |
Frequently Asked Questions
A motion primitive is a fundamental building block for robot path planning. These FAQs address its technical definition, role in complex systems, and practical implementation details for engineers.
A motion primitive is a short, predefined trajectory segment that is both kinematically and dynamically feasible for a specific robot or vehicle model, serving as an atomic building block for constructing complex paths. It encodes a short-duration change in the robot's state—such as its position, orientation, and velocity—that respects the physical limits of the system. In lattice-based planners, these primitives are used to discretize the continuous state space into a searchable graph, enabling the efficient composition of smooth, executable trajectories from a start to a goal configuration.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Motion primitives are fundamental building blocks within a larger ecosystem of algorithms and frameworks for robotic navigation and control. Understanding these related concepts is essential for designing robust real-time replanning engines.
Lattice Planner
A search-based motion planning algorithm that discretizes a vehicle's state space into a graph composed of motion primitives. This lattice structure enables the efficient generation of smooth, dynamically feasible trajectories by connecting pre-computed primitive segments. It is a primary consumer of motion primitive libraries, stitching them together to form complete paths from start to goal states.
Kinodynamic Planning
The problem of finding a trajectory that satisfies both kinematic constraints (e.g., non-holonomic steering limits) and dynamic constraints (e.g., acceleration, torque limits). Motion primitives are explicitly designed to be kinodynamically feasible, making them the ideal atomic units for planners solving this complex problem. This ensures the resulting plans are not just collision-free but also executable by the physical robot.
Feasibility Checker
A software component that validates whether a candidate plan or trajectory satisfies all system constraints before execution. For plans built from motion primitives, the checker verifies:
- Dynamic admissibility of transitions between primitives.
- Collision-free status along the entire composed path.
- Adherence to velocity and acceleration limits. It acts as a critical safety layer, ensuring the output of a lattice or search-based planner is truly executable.
Timed Elastic Band (TEB)
A local trajectory optimization method that deforms an initial path (often from a lattice planner) by optimizing the positions and timings of a sequence of robot states. While not built from fixed primitives, TEB performs continuous optimization of a similar trajectory representation. It optimizes for smoothness, safety, and speed, making it a complementary approach for refining or reactively adjusting a primitive-based plan.
Model Predictive Control (MPC)
An advanced control methodology where a dynamic model predicts future system behavior. At each control step, it solves a finite-horizon optimization to determine optimal control actions. MPC can use a sequence of motion primitives as the decision variables within its optimization window, selecting the best primitive at each step to minimize a cost function while satisfying constraints, blending planning and control.
State Lattice
The discretized graph structure itself, formed by applying motion primitives from a set of representative states. Each node represents a reachable state (x, y, heading, curvature, velocity), and each edge is a feasible motion primitive connecting two states. This lattice provides the search space for planners like A*, enabling efficient exploration of complex, constrained state spaces.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us