Loading...
Searching...
No Matches
ompl::control::ControlSampler Class Referenceabstract

Abstract definition of a control sampler. Motion planners that need to sample controls will call functions from this class. Planners should call the versions of sample() and sampleNext() with most arguments, whenever this information is available. More...

#include <ompl/control/ControlSampler.h>

Inheritance diagram for ompl::control::ControlSampler:

Public Member Functions

 ControlSampler (const ControlSampler &)=delete
 
ControlSampleroperator= (const ControlSampler &)=delete
 
 ControlSampler (const ControlSpace *space)
 Constructor takes the state space to construct samples for as argument.
 
virtual void sample (Control *control)=0
 Sample a control. All other control sampling functions default to this one, unless a user-specified implementation is given.
 
virtual void sample (Control *control, const base::State *state)
 Sample a control, given it is applied to a specific state (state). The default implementation calls the previous definition of sample(). Providing a different implementation of this function is useful if, for example, the sampling of controls depends on the state of the system. When attempting to sample controls that keep a system stable, for example, knowing the state at which the control is applied is important.
 
virtual void sampleNext (Control *control, const Control *previous)
 Sample a control, given the previously applied control. The default implementation calls the first definition of sample(). For some systems it is possible that large changes in controls are not desirable. For example, switching from maximum acceleration to maximum deceleration is not desirable when driving a car.
 
virtual void sampleNext (Control *control, const Control *previous, const base::State *state)
 Sample a control, given the previously applied control and that it is applied to a specific state. The default implementation calls the first definition of sample(), even if other implementations of the sampleNext() shown above are provided. Often this function needs to be overridden as it is the function planners typically call.
 
virtual unsigned int sampleStepCount (unsigned int minSteps, unsigned int maxSteps)
 Sample a number of steps to execute a control for.
 

Protected Attributes

const ControlSpacespace_
 The control space this sampler operates on.
 
RNG rng_
 Instance of random number generator.
 

Detailed Description

Abstract definition of a control sampler. Motion planners that need to sample controls will call functions from this class. Planners should call the versions of sample() and sampleNext() with most arguments, whenever this information is available.

Definition at line 68 of file ControlSampler.h.

Constructor & Destructor Documentation

◆ ControlSampler()

ompl::control::ControlSampler::ControlSampler ( const ControlSpace * space)
inline

Constructor takes the state space to construct samples for as argument.

Definition at line 76 of file ControlSampler.h.

Member Function Documentation

◆ sample() [1/2]

virtual void ompl::control::ControlSampler::sample ( Control * control)
pure virtual

Sample a control. All other control sampling functions default to this one, unless a user-specified implementation is given.

Implemented in KoulesControlSampler, ompl::control::CompoundControlSampler, ompl::control::DiscreteControlSampler, and ompl::control::RealVectorControlUniformSampler.

◆ sample() [2/2]

void ompl::control::ControlSampler::sample ( Control * control,
const base::State * state )
virtual

Sample a control, given it is applied to a specific state (state). The default implementation calls the previous definition of sample(). Providing a different implementation of this function is useful if, for example, the sampling of controls depends on the state of the system. When attempting to sample controls that keep a system stable, for example, knowing the state at which the control is applied is important.

Reimplemented in KoulesControlSampler, and ompl::control::CompoundControlSampler.

Definition at line 40 of file ControlSampler.cpp.

◆ sampleNext() [1/2]

void ompl::control::ControlSampler::sampleNext ( Control * control,
const Control * previous )
virtual

Sample a control, given the previously applied control. The default implementation calls the first definition of sample(). For some systems it is possible that large changes in controls are not desirable. For example, switching from maximum acceleration to maximum deceleration is not desirable when driving a car.

Reimplemented in ompl::control::CompoundControlSampler.

Definition at line 45 of file ControlSampler.cpp.

◆ sampleNext() [2/2]

void ompl::control::ControlSampler::sampleNext ( Control * control,
const Control * previous,
const base::State * state )
virtual

Sample a control, given the previously applied control and that it is applied to a specific state. The default implementation calls the first definition of sample(), even if other implementations of the sampleNext() shown above are provided. Often this function needs to be overridden as it is the function planners typically call.

Reimplemented in KoulesControlSampler, and ompl::control::CompoundControlSampler.

Definition at line 50 of file ControlSampler.cpp.

◆ sampleStepCount()

unsigned int ompl::control::ControlSampler::sampleStepCount ( unsigned int minSteps,
unsigned int maxSteps )
virtual

Sample a number of steps to execute a control for.

Definition at line 56 of file ControlSampler.cpp.

Member Data Documentation

◆ rng_

RNG ompl::control::ControlSampler::rng_
protected

Instance of random number generator.

Definition at line 123 of file ControlSampler.h.

◆ space_

const ControlSpace* ompl::control::ControlSampler::space_
protected

The control space this sampler operates on.

Definition at line 120 of file ControlSampler.h.


The documentation for this class was generated from the following files: