A lattice planner is a search-based motion planning algorithm that discretizes a vehicle's state space—including pose, velocity, and sometimes acceleration—into a structured graph known as a lattice. This lattice is composed of short, kinematically and dynamically feasible trajectory segments called motion primitives. The planner searches this graph, typically using an algorithm like A*, to find an optimal path from a start state to a goal state that respects the vehicle's physical constraints.
Glossary
Lattice Planner

What is a Lattice Planner?
A lattice planner is a search-based motion planning algorithm for autonomous vehicles and robots that constructs smooth, dynamically feasible trajectories by searching a precomputed graph of motion primitives.
The key advantage of a lattice planner is its ability to generate smooth, executable trajectories directly, unlike geometric planners that produce paths requiring post-processing. It is particularly effective for non-holonomic systems like cars or differential-drive robots. By searching over a discrete set of precomputed, feasible motions, it balances computational efficiency with the guarantee of dynamic feasibility, making it a core component in real-time replanning engines for autonomous navigation in dynamic environments.
Key Features of Lattice Planners
A lattice planner is a search-based motion planning algorithm that discretizes a vehicle's state space into a graph of motion primitives, enabling efficient planning of smooth, dynamically feasible trajectories. Its core features address the unique challenges of kinodynamic planning for non-holonomic vehicles.
State Lattice Discretization
The foundational concept where the continuous, high-dimensional state space (e.g., x, y, heading, curvature, velocity) is discretized into a structured graph. Nodes represent reachable states, and edges represent kinematically feasible motion primitives connecting them. This transforms the continuous planning problem into a discrete graph search, enabling the use of algorithms like A* while respecting the vehicle's physical constraints from the outset.
Motion Primitives Library
A pre-computed set of short, feasible trajectory segments that form the edges of the lattice. Each primitive is generated by integrating a control input (e.g., steering angle, acceleration) over a short duration through the vehicle's dynamic model.
- Ensures Dynamical Feasibility: Every path composed of primitives inherently obeys acceleration, curvature, and non-holonomic constraints.
- Enables Smooth Trajectories: Primitives are designed to connect states with continuous derivatives, avoiding jerky, infeasible motions.
- Balances Resolution and Performance: The library's density and duration determine the planner's granularity and computational cost.
Multi-Resolution Search
Lattice planners often employ hierarchical or multi-resolution search strategies to manage computational complexity. A coarse lattice (longer primitives, sparser states) is used for long-range global planning, while a fine-resolution lattice is used for local, precise maneuvering and obstacle avoidance. This allows the planner to efficiently explore vast state spaces, a critical capability for autonomous vehicles operating at highway speeds where the planning horizon extends hundreds of meters.
Heuristic-Guided Graph Search
Optimal or near-optimal paths through the lattice are found using informed graph search algorithms like A* or its variants. The search is guided by an admissible heuristic (e.g., Euclidean distance to goal, ignoring obstacles and dynamics), which dramatically prunes the search space. The total cost of a path is the sum of the costs of its constituent primitives, which can incorporate factors like:
- Travel time
- Energy consumption
- Comfort (jerk, lateral acceleration)
- Proximity to obstacles
Dynamic Feasibility by Construction
Unlike geometric planners that post-process a path for dynamic feasibility, lattice planners embed dynamics into the search space. Since every motion primitive is generated from the vehicle model, any path found is guaranteed to be executable by the vehicle's controller, provided it respects actuator limits. This is essential for non-holonomic systems like cars and differential-drive robots, which cannot move sideways, and for maintaining stability at high speeds where kinematic approximations break down.
Integration with Replanning Frameworks
Lattice planners are inherently compatible with real-time replanning engines. They can function as the core planner within a Model Predictive Control (MPC) or Receding Horizon Control loop. When a replanning trigger occurs (e.g., new obstacle detection), the planner can be warm-started from the vehicle's current state in the lattice. Incremental search algorithms like D Lite* can also be adapted to the lattice structure, allowing for efficient path repair in dynamic environments without restarting the search from scratch.
How a Lattice Planner Works
A lattice planner is a search-based motion planning algorithm that discretizes a vehicle's state space into a graph (lattice) of motion primitives, enabling efficient planning of smooth, dynamically feasible trajectories.
A lattice planner constructs a discrete graph, or lattice, within the robot's continuous state space (e.g., position, orientation, velocity). Each node represents a reachable state, and edges are motion primitives—short, pre-computed trajectory segments that satisfy the vehicle's kinematic and dynamic constraints. The planner searches this graph, typically using an algorithm like A*, to find a kinodynamically feasible path from start to goal. This structure allows for efficient planning of smooth, executable motions directly, unlike geometric planners that may produce jagged paths requiring post-processing.
The planner's performance hinges on the design of its motion primitives, which encode the vehicle's physical capabilities. During real-time replanning, the lattice can be searched incrementally. When combined with a receding horizon control strategy, the planner continuously generates short-horizon trajectories, adapting to dynamic obstacles and new goals. This makes it highly effective for autonomous vehicles and mobile robots operating in complex, changing environments where both feasibility and computational speed are critical.
Lattice Planner vs. Other Motion Planners
A feature and capability comparison of the Lattice Planner against other prominent motion planning algorithms used in robotics and autonomous systems.
| Planning Feature / Metric | Lattice Planner | Sampling-Based (RRT/RRT*) | Graph Search (A*/D*) | Reactive (DWA/ORCA) |
|---|---|---|---|---|
Core Methodology | Searches a precomputed graph (lattice) of motion primitives | Randomly samples the state space to build a tree | Searches a graph of discrete states (grid, roadmap) | Computes safe velocities in a local window |
Optimality Guarantee | Resolution-optimal within the lattice | Probabilistically optimal (RRT*) | Optimal for the given graph (A*) | No optimality guarantee; reactive safety |
Dynamical Feasibility | Inherently guaranteed via motion primitives | Must be enforced post-hoc or with kinodynamic variants | Not inherently guaranteed; assumes holonomic point | Directly considers kinematic/dynamic constraints |
Replanning Efficiency | High (fast graph search on fixed structure) | Low (must rebuild tree from scratch) | High for incremental variants (D*, LPA*) | Very High (recalculates every control cycle) |
Path Smoothness | High (primitives are smooth curves) | Low (jagged, requires post-smoothing) | Low (grid-based paths are jagged) | Moderate (depends on velocity selection) |
Multi-Agent Planning | Possible via space-time search on the lattice | Challenging; typically requires centralized coordination | Possible via Space-Time A* or MAPF algorithms | Designed for decentralized multi-agent (e.g., ORCA) |
Computational Overhead | Moderate (offline primitive generation, fast online search) | Variable (depends on sampling density and space complexity) | Low to Moderate (depends on graph size and heuristic) | Very Low (local calculation only) |
Typical Use Case | Structured autonomy (self-driving cars, warehouse robots) | High-DOF manipulation, complex environments | Grid-based navigation (video games, drones) | Local obstacle avoidance, crowd simulation |
Applications and Use Cases
Lattice planners are a cornerstone of autonomous navigation, enabling the generation of smooth, dynamically feasible trajectories. Their structured search over motion primitives makes them particularly suited for systems with complex non-holonomic constraints.
Autonomous Vehicle Navigation
Lattice planners are extensively used for on-road and off-road autonomous vehicle path planning. They excel at generating smooth lane-change maneuvers, highway merges, and complex urban turns by searching over a graph of pre-computed motion primitives that respect vehicle dynamics (e.g., maximum curvature, acceleration). This ensures the resulting path is not just collision-free but also comfortable for passengers and executable by the vehicle's low-level controller.
- Key Feature: Plans kinodynamically feasible trajectories that a car can physically follow.
- Example: An autonomous taxi uses a lattice planner to compute a smooth trajectory for an unprotected left turn, accounting for oncoming traffic and lane boundaries.
Warehouse & Logistics Robotics
In dynamic warehouse environments, Autonomous Mobile Robots (AMRs) and forklifts use lattice planners for precise point-to-point navigation while avoiding static racks, other robots, and human workers. The planner's ability to incorporate non-holonomic constraints is critical for vehicles like forklifts that cannot move sideways.
- Key Feature: Efficiently handles the replanning required when new obstacles (like a fallen pallet) are detected.
- Integration: Often works in tandem with a higher-level Multi-Agent Path Finding (MAPF) scheduler that assigns goals, while the lattice planner handles the local, executable trajectory.
Agricultural & Field Robotics
Large, slow-moving agricultural robots performing tasks like planting, weeding, or harvesting use lattice planners to navigate uneven, unstructured terrain. The state lattice can be defined in terms relevant to the task, such as headland turns at the end of a crop row.
- Key Feature: The discretized state space allows for efficient planning over long distances in open fields while respecting the vehicle's slip constraints and implement kinematics.
- Challenge: Must account for significant wheel slip and terrain inclination, often requiring tight integration with state estimation systems.
Aerial Vehicle Trajectory Planning
For drones and other UAVs, lattice planners generate aggressive, yet safe, flight trajectories through cluttered environments like forests or urban canyons. Motion primitives are defined in 3D space, capturing the quadrotor's dynamics (pitch, roll, yaw, thrust).
- Key Feature: Enables high-speed flight by pre-computing primitive maneuvers that are at the limits of the drone's dynamic envelope.
- Use Case: A drone inspecting a wind turbine blade uses a lattice planner to compute a smooth, continuous path around the complex structure, minimizing flight time while maintaining a safe distance.
Maritime & Surface Vehicle Piloting
Unmanned surface vessels (USVs) and autonomous boats employ lattice planners for tasks like harbor navigation, channel keeping, and docking. The motion primitives must model complex hydrodynamic constraints, such as large turning radii and significant drift due to currents.
- Key Feature: The planner's graph can incorporate environmental forces (current, wind) into the state transition, leading to more robust and energy-efficient paths.
- Application: An autonomous research vessel uses a lattice planner to execute a precise lawnmower survey pattern while compensating for cross-currents.
Industrial Manipulator Arm Motion
While often associated with mobile platforms, the lattice planning paradigm is also applied to motion planning for robotic arms, especially in cluttered workspaces. The state space includes joint angles and velocities, and motion primitives are short, dynamically feasible joint-space trajectories.
- Key Feature: Provides a guaranteed feasible alternative to purely geometric planners by ensuring the planned joint motions respect torque and acceleration limits.
- Scenario: A robotic arm on an assembly line uses a lattice planner to quickly compute a smooth, jolt-free motion to insert a component while avoiding nearby equipment and human co-workers.
Frequently Asked Questions
A lattice planner is a search-based motion planning algorithm that discretizes a vehicle's state space into a graph (lattice) of motion primitives, enabling efficient planning of smooth, dynamically feasible trajectories. This FAQ addresses its core mechanics, applications, and relation to other planning algorithms.
A lattice planner is a search-based motion planning algorithm that constructs a graph, called a state lattice, where each node represents a discretized vehicle state (e.g., position, heading, velocity) and each edge is a short, pre-computed motion primitive that is kinematically and dynamically feasible. It works by searching this graph, typically using an algorithm like A*, to find a sequence of primitives that connects the start state to a goal region, resulting in a smooth, drivable trajectory. The key innovation is the use of motion primitives as edges, which ensures the resulting path respects the vehicle's non-holonomic and dynamic constraints from the outset, unlike geometric planners that may produce jagged paths requiring post-processing.
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
A lattice planner operates within a broader ecosystem of algorithms and concepts for dynamic motion planning and control. These related terms define the components, alternatives, and higher-level frameworks that interact with or complement lattice-based planning.
Motion Primitive
A motion primitive is a short, pre-computed trajectory segment that is guaranteed to be kinematically and dynamically feasible for a specific robot model. Lattice planners construct complex paths by connecting these primitives end-to-end in a graph.
- Role in Lattice Planning: Serves as the fundamental building block of the lattice graph. Each edge corresponds to the execution of a single primitive.
- Characteristics: Primitives are typically generated offline by forward-simulating the robot's control inputs (e.g., steering angles, accelerations) over a fixed time step or distance.
- Example: For an autonomous vehicle, a library might include primitives for 'go straight 5m', 'turn left with a 10m radius', and 'lane-change right'.
Kinodynamic Planning
Kinodynamic planning is the problem of finding a trajectory that satisfies both kinematic constraints (e.g., non-holonomic restrictions like a car's turning radius) and dynamic constraints (e.g., limits on acceleration, torque, or jerk).
- Relation to Lattice Planners: Lattice planners are a primary algorithmic solution to the kinodynamic planning problem. By constructing the state lattice from motion primitives that obey these constraints, any path found through the graph is, by definition, kinodynamically feasible.
- Contrast with Geometric Planners: Pure geometric planners (like standard A* on a grid) find paths that are only collision-free, ignoring the physical limitations of how the robot can move.
State Lattice
A state lattice is the discretized graph structure at the core of a lattice planner. Unlike a standard grid that discretizes only position (x,y), a state lattice discretizes the robot's full state space (e.g., x, y, heading θ, curvature κ, and sometimes velocity).
- Graph Structure: Each node represents a discrete state. Edges represent feasible transitions between these states, corresponding to the execution of motion primitives.
- Dimensionality: The lattice exists in a high-dimensional space (state-space), making search challenging but enabling the planning of smooth, complex maneuvers.
- Search Overlay: Algorithms like A* are used to search this lattice graph for an optimal path from a start state to a goal state region.
Receding Horizon Control (RHC)
Receding Horizon Control, often implemented via Model Predictive Control (MPC), is a control strategy where a finite-horizon optimization problem is solved at each time step, and only the initial control action is executed before the horizon 'recedes' and the process repeats.
- Synergy with Lattice Planners: Lattice planners are frequently used as the trajectory generator within an RHC/MPC framework. The planner generates a candidate trajectory over the planning horizon, and the controller optimizes tracking while satisfying constraints.
- Real-Time Adaptation: This combination allows the system to continuously re-plan based on the latest sensor data, handling dynamic obstacles and environmental changes effectively.
Sampling-Based Planners (RRT*, PRM)
Sampling-based planners like RRT* and Probabilistic Roadmap (PRM) are alternative motion planning paradigms that randomly sample the configuration space to build a graph or tree of feasible paths.
- Comparison with Lattice Planners:
- Lattice Planners: Use a structured, deterministic discretization (the lattice). This provides strong guarantees on dynamic feasibility and is highly efficient for systems with regular, repetitive motion patterns (like ground vehicles).
- Sampling-Based Planners: Use random, unstructured sampling. They are more general and can be easier to apply to high-DOF systems (like robot arms) or complex environments, but may produce less smooth paths and require post-processing for dynamic feasibility.
Feasibility Checker
A feasibility checker is a critical software component that validates whether a candidate trajectory or plan satisfies all system constraints before it is passed to the controller for execution.
- Key Constraints Checked:
- Collision Avoidance: Verifies the path is free of static and dynamic obstacles.
- Dynamic Feasibility: Ensures the path does not violate velocity, acceleration, or jerk limits.
- Kinematic Feasibility: Confirms adherence to non-holonomic constraints.
- Role in Planning Pipeline: In a lattice planner, primitives are pre-checked for dynamic feasibility. During the graph search, a collision checker is invoked for each primitive to ensure the final path is both feasible and safe.

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