This class contains routines that attempt to simplify geometric paths. More...
#include <PathSimplifier.h>
Public Member Functions | |
PathSimplifier (const base::SpaceInformationPtr &si) | |
Create an instance for a specified space information. | |
void | reduceVertices (PathGeometric &path, unsigned int maxSteps=0, unsigned int maxEmptySteps=0, double rangeRatio=0.2) |
Given a path, attempt to remove vertices from it while keeping the path valid. This is an iterative process that attempts to do "short-cutting" on the path. Connection is attempted between non-consecutive states along the path. If the connection is successful, the path is shortened by removing the in-between states. | |
void | collapseCloseVertices (PathGeometric &path, unsigned int maxSteps=0, unsigned int maxEmptySteps=0) |
Given a path, attempt to remove vertices from it while keeping the path valid. This is an iterative process that attempts to do "short-cutting" on the path. Connection is attempted between non-consecutive states that are close along the path. If the connection is successful, the path is shortened by removing the in-between states. | |
void | smoothBSpline (PathGeometric &path, unsigned int maxSteps=5, double minChange=std::numeric_limits< double >::epsilon()) |
Given a path, attempt to smooth it (the validity of the path is maintained). | |
virtual void | simplifyMax (PathGeometric &path) |
Given a path, attempt to remove vertices from it while keeping the path valid. Then, try to smooth the path. | |
Protected Attributes | |
base::SpaceInformationPtr | si_ |
The space information this path simplifier uses. | |
RNG | rng_ |
Instance of random number generator. | |
msg::Interface | msg_ |
Interface for console output. |
This class contains routines that attempt to simplify geometric paths.
These are in fact routines that shorten the path, and do not necessarily make it smoother.
Definition at line 63 of file PathSimplifier.h.
void ompl::geometric::PathSimplifier::collapseCloseVertices | ( | PathGeometric & | path, |
unsigned int | maxSteps = 0 , |
||
unsigned int | maxEmptySteps = 0 |
||
) |
Given a path, attempt to remove vertices from it while keeping the path valid. This is an iterative process that attempts to do "short-cutting" on the path. Connection is attempted between non-consecutive states that are close along the path. If the connection is successful, the path is shortened by removing the in-between states.
path | the path to reduce vertices from |
maxSteps | the maximum number of attempts to "short-cut" the path. If this value is set to 0 (the default), the number of attempts made is equal to the number of states in path. If this value is set to 0 (the default), the number of attempts made is equal to the number of states in path. |
maxEmptySteps | not all iterations of this function produce a simplification. If an iteration does not produce a simplification, it is called an empty step. maxEmptySteps denotes the maximum number of consecutive empty steps before the simplification process terminates. |
Definition at line 134 of file PathSimplifier.cpp.
void ompl::geometric::PathSimplifier::reduceVertices | ( | PathGeometric & | path, |
unsigned int | maxSteps = 0 , |
||
unsigned int | maxEmptySteps = 0 , |
||
double | rangeRatio = 0.2 |
||
) |
Given a path, attempt to remove vertices from it while keeping the path valid. This is an iterative process that attempts to do "short-cutting" on the path. Connection is attempted between non-consecutive states along the path. If the connection is successful, the path is shortened by removing the in-between states.
path | the path to reduce vertices from |
maxSteps | the maximum number of attempts to "short-cut" the path. If this value is set to 0 (the default), the number of attempts made is equal to the number of states in path. |
maxEmptySteps | not all iterations of this function produce a simplification. If an iteration does not produce a simplification, it is called an empty step. maxEmptySteps denotes the maximum number of consecutive empty steps before the simplification process terminates. If this value is set to 0 (the default), the number of attempts made is equal to the number of states in path. |
rangeRatio | the maximum distance between states a connection is attempted, as a fraction relative to the total number of states (between 0 and 1). |
Definition at line 88 of file PathSimplifier.cpp.
void ompl::geometric::PathSimplifier::smoothBSpline | ( | PathGeometric & | path, |
unsigned int | maxSteps = 5 , |
||
double | minChange = std::numeric_limits<double>::epsilon() |
||
) |
Given a path, attempt to smooth it (the validity of the path is maintained).
This function applies maxSteps steps of smoothing with B-Splines. Fewer steps are applied if no progress is detected: states are either not updated or their update is smaller than minChange. At each step the path is subdivided and states along it are updated such that the smoothness is improved.
Definition at line 46 of file PathSimplifier.cpp.