37 #include "ompl/base/samplers/MaximizeClearanceValidStateSampler.h"
38 #include "ompl/base/SpaceInformation.h"
41 ValidStateSampler(si), sampler_(si->allocStateSampler()), improveAttempts_(3), work_(si->allocState())
43 name_ =
"max_clearance";
49 ompl::base::MaximizeClearanceValidStateSampler::~MaximizeClearanceValidStateSampler(
void)
51 si_->freeState(work_);
56 unsigned int attempts = 0;
61 sampler_->sampleUniform(state);
62 valid = si_->getStateValidityChecker()->isValid(state, dist);
64 }
while (!valid && attempts < attempts_);
71 while (attempts < improveAttempts_)
73 sampler_->sampleUniform(work_);
74 validW = si_->getStateValidityChecker()->isValid(work_, distW);
76 if (validW && distW > dist)
79 si_->copyState(state, work_);
90 unsigned int attempts = 0;
95 sampler_->sampleUniformNear(state, near, distance);
96 valid = si_->getStateValidityChecker()->isValid(state, dist);
98 }
while (!valid && attempts < attempts_);
105 while (attempts < improveAttempts_)
107 sampler_->sampleUniformNear(work_, near, distance);
108 validW = si_->getStateValidityChecker()->isValid(work_, distW);
110 if (validW && distW > dist)
113 si_->copyState(state, work_);
virtual bool sampleNear(State *state, const State *near, const double distance)
Sample a state near another, within specified distance. Return false, in case of failure.
unsigned int getNrImproveAttempts(void) const
Get the number of attempts to improve a sampled state.
virtual bool sample(State *state)
Sample a state. Return false in case of failure.
Abstract definition of a state sampler.
Definition of an abstract state.
MaximizeClearanceValidStateSampler(const SpaceInformation *si)
Constructor.
void declareParam(const std::string &name, const typename SpecificParam< T >::SetterFn &setter, const typename SpecificParam< T >::GetterFn &getter=typename SpecificParam< T >::GetterFn())
This function declares a parameter name, and specifies the setter and getter functions.
ParamSet params_
The parameters for this instance of the valid state sampler.
void setNrImproveAttempts(unsigned int attempts)
The number of attempts at improving the clearance of the sampled state.
std::string name_
The name of the sampler.