When programming a robotic arm using MoveIt 2, choosing the right motion planner is important for optimal performance. This tutorial compares Pilz (Pilz Industrial Motion Planner), STOMP (Stochastic Trajectory Optimization for Motion Planning), and OMPL planners, focusing on when to use each one over the others.
We’ll use a cooking robot as an example to illustrate their applications.
Note: CHOMP is excluded from this comparison as (according to the literature) STOMP typically outperforms CHOMP in most scenarios.
Pilz (Pilz Industrial Motion Planner)
When to use Pilz
- For simple, predefined movements, especially linear (LIN), circular (CIRC), or point-to-point (PTP) motions
- When speed and predictability are more important than path optimization
- In well-structured environments with few obstacles
- For repetitive tasks that don’t require complex trajectory planning
![pilz](https://automaticaddison.com/wp-content/uploads/2024/08/pilz.jpg)
Example
Use Pilz when your cooking robot needs to perform a stirring motion in a bowl.
The CIRC (circular) motion type of Pilz is perfect for this task. It can efficiently execute a predefined circular path for stirring, maintaining a consistent speed and radius. This is more suitable than STOMP or OMPL for several reasons:
- Simplicity: The stirring motion is a basic, repetitive circular movement that doesn’t require complex path planning.
- Speed: Pilz can execute this predefined motion quickly and efficiently, which is important for tasks like mixing ingredients.
- Predictability: The stirring motion needs to be consistent, which Pilz’s CIRC motion ensures.
In this case, STOMP would be unnecessarily complex and potentially slower, while OMPL’s adaptability isn’t needed for this fixed, repetitive task.
Pilz’s straightforward approach makes it the ideal choice for such structured, repetitive movements in cooking tasks.
STOMP (Stochastic Trajectory Optimization for Motion Planning)
When to use STOMP
- For tasks requiring smooth, precise movements
- When path quality is more critical than planning speed
- To incorporate specific constraints (e.g., maintaining orientation)
- When combining obstacle avoidance with smooth motion
Example
Choose STOMP for a robot pouring olive oil on a frying pan.
STOMP is ideal here because:
- Smooth trajectory: It generates a fluid motion to move the oil bottle over the pan and tilt it gradually.
- Orientation control: It can maintain the bottle’s orientation throughout the motion, ensuring controlled pouring.
- Path optimization: It optimizes the entire path, allowing for a consistent oil distribution across the pan.
- Splash prevention: Its smooth motion helps prevent splashing by avoiding sudden accelerations or jerky movements.
Pilz would be less suitable as its predefined motions might result in abrupt tilting or stopping, increasing the risk of oil splashing.
OMPL, while capable of finding a path to the pan, doesn’t inherently optimize for the smooth, controlled motion needed for pouring oil. It might produce a valid but less refined trajectory, potentially leading to uneven oil distribution or splashing due to sudden changes in velocity or direction.
STOMP’s ability to create a fluid, optimized motion while considering the task’s constraints makes it the best choice for this precise cooking operation, minimizing the risk of splashing and ensuring even oil distribution.
OMPL (Open Motion Planning Library)
When to use OMPL
- In complex, cluttered, or changing environments
- When a path needs to be found quickly in unpredictable scenarios
- For high-dimensional planning problems
- When adaptability to changing environments is important
- OMPL is the default planner for MoveIt2
Example
Use OMPL when your cooking robot needs to reach into a cluttered refrigerator to retrieve a specific ingredient.
OMPL is the best choice for this task because:
- Adaptability: It can quickly generate a new path if items in the fridge have moved since last access.
- Complex environment handling: OMPL efficiently navigates around various obstacles (other ingredients, containers) in the crowded space.
- Speed in unpredictable scenarios: It rapidly computes a valid path even if the target ingredient’s location has changed.
- High-dimensional planning: It can handle the multiple degrees of freedom of the robot arm required to maneuver in the confined, complex space of a refrigerator.
Pilz would struggle in this scenario as its predefined motions aren’t suitable for navigating a complex, changing environment like a crowded fridge.
STOMP, while capable of producing smooth trajectories, would be slower in finding an initial valid path in this complex space and might struggle to quickly adapt if the environment changes mid-motion.
OMPL‘s strength in rapidly finding feasible paths in complex, dynamic environments makes it the optimal choice for this type of task, where adaptability and quick path generation are more critical than having a perfectly smooth trajectory.
That’s it. Keep building!