This class contains routines that attempt to simplify geometric paths. More...
#include <PathSimplifier.h>
Public Member Functions | |
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. | |
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. | |
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. | |
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 | ~PathSimplifier (void) |
Protected Attributes | |
msg::Interface | msg_ |
Interface for console output. | |
RNG | rng_ |
Instance of random number generator. | |
base::SpaceInformationPtr | si_ |
The space information this path simplifier uses. |
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.
ompl::geometric::PathSimplifier::PathSimplifier | ( | const base::SpaceInformationPtr & | si | ) | [inline] |
Create an instance for a specified space information.
Definition at line 68 of file PathSimplifier.h.
virtual ompl::geometric::PathSimplifier::~PathSimplifier | ( | void | ) | [inline, virtual] |
Definition at line 72 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. |
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). |
virtual void ompl::geometric::PathSimplifier::simplifyMax | ( | PathGeometric & | path | ) | [virtual] |
Given a path, attempt to remove vertices from it while keeping the path valid. Then, try to smooth the path.
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.
msg::Interface ompl::geometric::PathSimplifier::msg_ [protected] |
Interface for console output.
Definition at line 161 of file PathSimplifier.h.
RNG ompl::geometric::PathSimplifier::rng_ [protected] |
Instance of random number generator.
Definition at line 158 of file PathSimplifier.h.
The space information this path simplifier uses.
Definition at line 155 of file PathSimplifier.h.