Skip to content

Commit f96bb5e

Browse files
mhon-emmanevalsar
andauthored
Add Industrial Motion Planning (PILZ/CHOMP) and FSM Implementation Guide (#224)
Introduce two articles: - **Industrial and Specialized Motion Planning Approaches**: Covers the PILZ Industrial Motion Planner for deterministic paths and CHOMP for optimization-based planning. - **Finite State Machine Implementation Guide for Robotics**: A deep dive into FSM theory, patterns, and practical implementation in ROS and embedded systems. Also updates global navigation and category indices to ensure these new resources are discoverable. --------- Co-authored-by: Nevin Valsaraj <nevin.valsaraj32@gmail.com>
1 parent 8ff431c commit f96bb5e

5 files changed

Lines changed: 463 additions & 0 deletions

File tree

_data/navigation.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ wiki:
3434
children:
3535
- title: System Engineering
3636
url: /wiki/system-design-development/system-engineering/
37+
- title: Finite State Machines
38+
url: /wiki/system-design-development/finite-state-machine/
3739
- title: Mechanical Design
3840
url: /wiki/system-design-development/mechanical-design/
3941
- title: Printed Circuit Board Design
@@ -388,6 +390,8 @@ wiki:
388390
url: /wiki/planning/astar_planning_implementation_guide/
389391
- title: Behavior Trees
390392
url: /wiki/planning/behavior-tree/
393+
- title: Specialized Planners
394+
url: /wiki/planning/pilz-chomp/
391395
- title: Coverage Planner Implementation Guide
392396
url: /wiki/planning/coverage-planning-implementation-guide/
393397
- title: Resolved Rates

wiki/planning/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ We are actively seeking contributions to expand the resources available in this
2929
- **[Trajectory Planning in the Frenet Space](/wiki/planning/frenet-frame-planning/)**
3030
Explains Frenet-frame trajectory planning, useful for structured environments like highways. Includes algorithmic steps, transformation techniques, and advantages over Cartesian coordinates.
3131

32+
- **[Industrial and Specialized Motion Planning Approaches](/wiki/planning/pilz-chomp/)**
33+
Presents two specialized approaches: PILZ Industrial Motion Planner for deterministic industrial-style motions and CHOMP for covariant gradient-based trajectory optimization.
34+
3235
- **[Move Base Flex](/wiki/planning/move-base-flex/)**
3336
A comprehensive guide to the ROS-based Move Base Flex navigation stack. Covers its architecture, plugin implementation, and customization for 2.5D/3D maps or custom planners.
3437

wiki/planning/pilz-chomp.md

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
---
2+
title: Industrial and Specialized Motion Planning Approaches
3+
date: 2026-04-13
4+
---
5+
6+
## Introduction
7+
8+
This article aims to present two specialized approaches for robot motion planning that are particularly relevant for industrial applications and optimization-based planning. While basic motion planning algorithms like A*, RRT, and PRM provide fundamental solutions for robot navigation, industrial applications often require more specialized planners that can generate predictable, efficient, and smooth trajectories.
9+
10+
Motion planning is the computational process of finding a collision-free path for a robot from a start configuration to a goal configuration while satisfying various constraints. The inputs to motion planning algorithms typically include the robot's current configuration, the desired goal configuration, and a representation of the environment. The outputs are trajectories or paths that the robot can safely execute.
11+
12+
Motion planning approaches can be broadly categorized into several families:
13+
* **Sampling-based approaches** (e.g., RRT, PRM): Generate random samples in configuration space to build a roadmap or tree
14+
* **Search-based approaches** (e.g., A*, D*): Search through a discretized representation of the configuration space
15+
* **Optimization-based approaches** (e.g., CHOMP, TrajOpt): Formulate motion planning as an optimization problem
16+
* **Industrial motion planning approaches** (e.g., PILZ): Generate standard motion patterns used in industrial settings
17+
18+
This article focuses on two specific motion planners: PILZ Industrial Motion Planner, which provides deterministic industrial-style motions, and CHOMP, which uses covariant gradient techniques to optimize trajectories. These planners represent different approaches to specialized motion planning and are valuable additions to the motion planning toolkit beyond the basic algorithms.
19+
20+
## PILZ Industrial Motion Planner
21+
22+
For industrial robot applications, it is often necessary to have predictable, deterministic motion along well-defined paths like straight lines or circular arcs. PILZ Industrial Motion Planner is a trajectory generator that provides these capabilities within the MoveIt framework, offering a simple and predictable way to plan standard robot motions.
23+
24+
### Background
25+
26+
PILZ Industrial Motion Planner was initially developed as part of the ROS-Industrial project with the concept of bringing interfaces equivalent to conventional industrial robots into the world of ROS. It was designed for situations where "industrial applications often also demand simple things like just moving in a straight line." The planner was incorporated into the MoveIt repository in 2020, making it available as a standard component for ROS-based robotic systems.
27+
28+
Unlike sampling-based planners such as OMPL (Open Motion Planning Library), which focus on finding collision-free paths in complex environments but may produce jerky movements, PILZ was specifically designed to generate trajectories with precise, predictable motion patterns that are common in industrial settings.
29+
30+
### Core Motion Types
31+
32+
PILZ supports three fundamental motion types:
33+
34+
1. **PTP (Point-to-Point)**: PTP commands move the robot so that the end effector reaches the specified coordinates without specifying the path in 3D space. This planner generates fully synchronized point-to-point trajectories with trapezoidal joint velocity profiles.
35+
36+
2. **LIN (Linear)**: In LIN commands, the end effector moves along a straight line connecting the starting point to the endpoint. The motion maintains a straight-line path in Cartesian space, which is essential for many industrial tasks.
37+
38+
3. **CIRC (Circular)**: Allows the end effector to move in a circular arc. To define the arc, additional information beyond start and end points is required, such as a center point or another point on the arc.
39+
40+
### Mathematical Formulation
41+
42+
For PTP motion, PILZ generates trajectories with trapezoidal joint velocity profiles. All joints are assumed to have the same maximal joint velocity/acceleration/deceleration limits, with the strictest limits being adopted if they differ. The joint with the longest time to reach the goal (lead axis) determines the overall motion time, while other axes are decelerated to maintain synchronized motion phases.
43+
44+
For LIN motion, the planner generates a straight-line path in Cartesian space. The rotational motion uses quaternion slerp between start and goal orientation, while translational and rotational motions are synchronized in time.
45+
46+
### Blending Feature
47+
48+
A key feature of PILZ is its ability to blend multiple motion segments together, creating smooth transitions between waypoints without stopping at each point. When the TCP (Tool Center Point) comes closer to a goal than the specified blend radius, it is allowed to begin moving toward the next goal. When leaving a sphere around the current goal, the robot returns to the trajectory it would have taken without blending.
49+
50+
This blending capability is particularly valuable in applications where cycle time is critical, as it allows the robot to move continuously through a sequence of points without the acceleration/deceleration that would otherwise be required at each waypoint.
51+
52+
### Algorithm
53+
54+
The PILZ planning process involves these steps:
55+
56+
1. The planner receives a motion request specifying the start state, goal constraints, and motion type (PTP, LIN, or CIRC).
57+
2. Based on the motion type, the planner calculates a trajectory with appropriate velocity profiles.
58+
3. For PTP, it generates synchronized trapezoidal velocity profiles for all joints.
59+
4. For LIN, it generates a straight-line path in Cartesian space with synchronized translational and rotational motion.
60+
5. For CIRC, it calculates a circular arc meeting the specified constraints.
61+
6. When planning sequences, it applies blending between segments if blend radii are specified.
62+
7. The resulting trajectory includes positions, velocities, and accelerations for each waypoint.
63+
64+
### Implementation in ROS and MoveIt
65+
66+
PILZ is implemented as a plugin for MoveIt and can be accessed through the standard MoveIt interfaces. By loading the corresponding planning pipeline, the trajectory generation functionalities can be accessed through the user interface (C++, Python, or RViz) provided by the move_group node.
67+
68+
The planner uses maximum velocities and accelerations from the parameters of the ROS node. These limits can be specified in the joint_limits.yaml file, which is typically generated using the MoveIt Setup Assistant.
69+
70+
### Applications
71+
72+
PILZ is particularly useful in:
73+
74+
1. Industrial manufacturing where predictable, deterministic motions are required
75+
2. Applications requiring straight-line motion, such as welding or cutting
76+
3. Pick-and-place operations where cycle time is critical
77+
4. Tasks requiring smooth blending between multiple motion segments
78+
79+
### Limitations
80+
81+
While PILZ offers predictable motion patterns, it has some limitations:
82+
83+
1. It is not designed for complex environment navigation where sampling-based planners excel
84+
2. For LIN and CIRC motions, if there are unattainable postures between the start and end points, planning will fail
85+
3. Joint limits may be violated if Cartesian motions are infeasible, requiring adjustment of scaling factors
86+
87+
---
88+
89+
## CHOMP: Covariant Hamiltonian Optimization for Motion Planning
90+
91+
### Background
92+
93+
CHOMP (Covariant Hamiltonian Optimization for Motion Planning) is an optimization-based motion planning algorithm developed at Carnegie Mellon University. CHOMP was introduced as "a novel method for continuous path refinement that uses covariant gradient techniques to improve the quality of sampled trajectories."
94+
95+
Unlike traditional motion planning approaches that separate path finding from trajectory optimization, CHOMP integrates these processes, capitalizing on gradient-based optimization techniques to directly generate smooth, collision-free trajectories.
96+
97+
### Motivation
98+
99+
Traditional motion planning algorithms often produce jerky or inefficient paths that require post-processing. CHOMP was developed to address these limitations by directly optimizing trajectories for both smoothness and collision avoidance simultaneously.
100+
101+
While high-dimensional motion planners can navigate complex environments, they often struggle with "narrow passages" and require additional post-processing to remove jerky motions. CHOMP aims to resolve these issues by providing a standalone motion planner that can converge over a wide range of inputs and optimize higher-order dynamics.
102+
103+
### Mathematical Formulation
104+
105+
CHOMP optimizes trajectories by minimizing a cost functional that combines two primary components:
106+
107+
1. **Smoothness Cost**: Penalizes non-smooth motions, typically represented as the sum of squared derivatives of the trajectory
108+
2. **Collision Cost**: Penalizes proximity to obstacles
109+
110+
The overall cost function can be represented as:
111+
112+
```
113+
C(ξ) = λ_smooth * F_smooth(ξ) + λ_obs * F_obs(ξ)
114+
```
115+
116+
Where:
117+
- `ξ` is the trajectory
118+
- `F_smooth` is the smoothness cost
119+
- `F_obs` is the obstacle cost
120+
- `λ_smooth` and `λ_obs` are weighting factors
121+
122+
CHOMP uses functional gradient techniques to iteratively improve the trajectory, computing the gradient of the cost function and updating the trajectory accordingly.
123+
124+
### Algorithm
125+
126+
CHOMP is a gradient-based trajectory optimization procedure that makes many everyday motion planning problems both simple and trainable. The basic algorithm follows these steps:
127+
128+
1. Start with an initial trajectory (which may be infeasible and colliding with obstacles)
129+
2. Compute the functional gradient of the cost function with respect to the trajectory
130+
3. Take a step in the direction of the negative gradient to update the trajectory
131+
4. Repeat steps 2-3 until convergence or a maximum number of iterations is reached
132+
133+
What makes CHOMP unique is its use of covariant gradient techniques that properly account for the geometry of the trajectory space, leading to more efficient optimization.
134+
135+
### Collision Avoidance
136+
137+
CHOMP represents obstacles using distance fields, which provide a measure of distance to the nearest obstacle at any point in the workspace. This allows for efficient computation of collision costs and their gradients.
138+
139+
In implementations like MATLAB's manipulatorCHOMP, the robot is modeled as a collection of spheres (spherical approximation), and obstacles can be represented either as collections of spheres or as truncated signed distance fields.
140+
141+
### Implementation and Applications
142+
143+
CHOMP has been implemented for various robotic systems, including:
144+
145+
A six degree-of-freedom WAM arm developed by Barrett Technology and a twelve degree-of-freedom quadrupedal robot developed by Boston Dynamics. In testing with the WAM arm, CHOMP successfully found smooth collision-free trajectories for 99 out of 105 planning problems in a household environment.
146+
147+
CHOMP is particularly well-suited for:
148+
1. Path refinement of trajectories generated by other planners
149+
2. Direct motion planning in relatively simple environments
150+
3. Applications requiring smooth, natural motions
151+
4. Scenarios where trajectory quality is important
152+
153+
### Advantages and Limitations
154+
155+
**Advantages**:
156+
- Produces smooth, natural-looking trajectories
157+
- Can optimize trajectories even when initialized with infeasible paths
158+
- Integrates path finding and trajectory optimization
159+
- Can consider dynamics and constraints directly in the optimization
160+
161+
**Limitations**:
162+
- May converge to local minima, especially in complex environments
163+
- Computation time can be high for complex problems
164+
- Performance depends on the quality of the initial trajectory
165+
- Not guaranteed to find a solution in highly constrained environments
166+
167+
### Relation to Other Motion Planning Approaches
168+
169+
CHOMP belongs to a family of optimization-based motion planners that also includes TrajOpt and STOMP (Stochastic Trajectory Optimization for Motion Planning). These approaches differ from sampling-based planners like RRT and PRM, which focus on geometric path finding without considering trajectory smoothness directly.
170+
171+
CHOMP has influenced subsequent work in trajectory optimization and continues to be an important reference in the field of motion planning.
172+
173+
### References
174+
175+
[1] N. Ratliff, M. Zucker, J. A. Bagnell, and S. Srinivasa, "CHOMP: Gradient optimization techniques for efficient motion planning," in *IEEE International Conference on Robotics and Automation*, 2009, pp. 489-494.
176+
177+
[2] N. Ratliff, M. Zucker, J. A. Bagnell, and S. Srinivasa, "CHOMP: Covariant Hamiltonian optimization for motion planning," *The International Journal of Robotics Research*, vol. 32, no. 9-10, pp. 1164-1193, 2013.
178+
179+
[3] J. Schleicher, "Introducing the New Pilz Industrial Motion Planner for MoveIt," *MoveIt Blog*, 2020.
180+
181+
[4] MoveIt Documentation, "Pilz Industrial Motion Planner." [Online]. Available: https://moveit.picknik.ai

0 commit comments

Comments
 (0)