Class DeterministicStateSampler

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class DeterministicStateSampler : public ompl::base::StateSampler

An abstract class for the concept of using deterministic sampling sequences to decrease the dispersion of the samples.

Short description

DeterministicStateSampler Implementation of a deterministic state sampler. The implementation allows to load and draw samples from a precomputed sequence or from the Halton Sequence,

External documentation

Dispertio: Optimal Sampling For Safe Deterministic Motion Planning L Palmieri, L Bruns, M Meurer, KO Arras - IEEE Robotics and Automation Letters, 2019 DOI: 10.1109/LRA.2019.2958525[PDF]

Subclassed by ompl::base::RealVectorDeterministicStateSampler, ompl::base::SE2DeterministicStateSampler, ompl::base::SO2DeterministicStateSampler

Public Types

enum DeterministicSamplerType

Values:

enumerator HALTON

Public Functions

DeterministicStateSampler(const StateSpace *space, DeterministicSamplerType type = DeterministicSamplerType::HALTON)

Constructor, which creates the sequence internally based on the specified sequence type. Uses the default constructor for the sequence.

DeterministicStateSampler(const StateSpace *space, std::shared_ptr<DeterministicSequence> sequence_ptr)

Constructor that takes a pointer to a DeterministicSequence and uses that object instead of its own. This can be used to apply non default options to the deterministic sequence.

virtual ~DeterministicStateSampler() = default
inline virtual void sampleUniform(State *state)

Sample a state.

inline virtual void sampleUniformNear(State*, const State*, double)

Sample a state near another, within a neighborhood controlled by a distance parameter.

Typically, StateSampler-derived classes will return in state a state that is uniformly distributed within a ball with radius distance defined by the distance function from the corresponding state space. However, this is not guaranteed. For example, the default state sampler for the RealVectorStateSpace returns samples uniformly distributed using L_inf distance, while the default distance function is L_2 distance.

inline virtual void sampleGaussian(State*, const State*, double)

Sample a state using a Gaussian distribution with given mean and standard deviation (stdDev).

As with sampleUniform, the implementation of sampleGaussian is specific to the derived class and few assumptions can be made about the distance between state and mean.

Protected Attributes

std::shared_ptr<DeterministicSequence> sequence_ptr_