A control space to allow the composition of control spaces. More...
#include <ompl/control/ControlSpace.h>

Public Types | |
using | ControlType = ompl::control::CompoundControl |
Define the type of control allocated by this control space. | |
Public Member Functions | |
CompoundControlSpace (const base::StateSpacePtr &stateSpace) | |
Constructor. The corresponding state space needs to be specified. | |
template<class T > | |
T * | as (const unsigned int index) const |
Cast a component of this instance to a desired type. | |
virtual void | addSubspace (const ControlSpacePtr &component) |
Adds a control space as a component of the compound control space. | |
unsigned int | getSubspaceCount () const |
Get the number of control spaces that make up the compound control space. | |
const ControlSpacePtr & | getSubspace (unsigned int index) const |
Get a specific subspace from the compound control space. | |
const ControlSpacePtr & | getSubspace (const std::string &name) const |
Get a specific subspace from the compound control space. | |
unsigned int | getDimension () const override |
Get the dimension of this control space. | |
Control * | allocControl () const override |
Allocate memory for a control. | |
void | freeControl (Control *control) const override |
Free the memory of a control. | |
void | copyControl (Control *destination, const Control *source) const override |
Copy a control to another. | |
bool | equalControls (const Control *control1, const Control *control2) const override |
Check if two controls are the same. | |
void | nullControl (Control *control) const override |
Make the control have no effect if it were to be applied to a state for any amount of time. | |
ControlSamplerPtr | allocDefaultControlSampler () const override |
Allocate the default control sampler. | |
double * | getValueAddressAtIndex (Control *control, unsigned int index) const override |
Many controls contain a number of double values. This function provides a means to get the memory address of a double value from a control control located at position index. The first double value is returned for index = 0. If index is too large (does not point to any double values in the control), the return value is nullptr. | |
void | printControl (const Control *control, std::ostream &out=std::cout) const override |
Print a control to a stream. | |
void | printSettings (std::ostream &out) const override |
Print the settings for this control space to a stream. | |
void | setup () override |
Perform final setup steps. This function is automatically called by the SpaceInformation. | |
unsigned int | getSerializationLength () const override |
Returns the serialization size for a single control in this space. | |
void | serialize (void *serialization, const Control *ctrl) const override |
Serializes the given control into the serialization buffer. | |
void | deserialize (Control *ctrl, const void *serialization) const override |
Deserializes a control from the serialization buffer. | |
bool | isCompound () const override |
Check if the control space is compound. | |
void | lock () |
Lock this control space. This means no further control spaces can be added as components. This function can be for instance called from the constructor of a state space that inherits from CompoundControlSpace to prevent the user to add further components. | |
![]() | |
ControlSpace (const ControlSpace &)=delete | |
ControlSpace & | operator= (const ControlSpace &)=delete |
ControlSpace (base::StateSpacePtr stateSpace) | |
Construct a control space, given the state space. | |
template<class T > | |
T * | as () |
Cast this instance to a desired type. | |
template<class T > | |
const T * | as () const |
Cast this instance to a desired type. | |
const std::string & | getName () const |
Get the name of the control space. | |
void | setName (const std::string &name) |
Set the name of the control space. | |
int | getType () const |
Get the type of the control space. The type can be used to verify whether two space instances are of the same type. | |
const base::StateSpacePtr & | getStateSpace () const |
Return the state space this control space depends on. | |
virtual unsigned int | getDimension () const =0 |
Get the dimension of this control space. | |
virtual Control * | allocControl () const =0 |
Allocate memory for a control. | |
virtual void | freeControl (Control *control) const =0 |
Free the memory of a control. | |
virtual void | copyControl (Control *destination, const Control *source) const =0 |
Copy a control to another. | |
virtual bool | equalControls (const Control *control1, const Control *control2) const =0 |
Check if two controls are the same. | |
virtual void | nullControl (Control *control) const =0 |
Make the control have no effect if it were to be applied to a state for any amount of time. | |
virtual ControlSamplerPtr | allocDefaultControlSampler () const =0 |
Allocate the default control sampler. | |
virtual ControlSamplerPtr | allocControlSampler () const |
Allocate an instance of the control sampler for this space. This sampler will be allocated with the sampler allocator that was previously specified by setControlSamplerAllocator() or, if no sampler allocator was specified, allocDefaultControlSampler() is called. | |
void | setControlSamplerAllocator (const ControlSamplerAllocator &csa) |
Set the sampler allocator to use. | |
void | clearControlSamplerAllocator () |
Clear the control sampler allocator (reset to default) | |
virtual double * | getValueAddressAtIndex (Control *control, unsigned int index) const |
Many controls contain a number of double values. This function provides a means to get the memory address of a double value from a control control located at position index. The first double value is returned for index = 0. If index is too large (does not point to any double values in the control), the return value is nullptr. | |
virtual void | printControl (const Control *control, std::ostream &out) const |
Print a control to a stream. | |
virtual void | printSettings (std::ostream &out) const |
Print the settings for this control space to a stream. | |
virtual void | setup () |
Perform final setup steps. This function is automatically called by the SpaceInformation. | |
virtual unsigned int | getSerializationLength () const |
Returns the serialization size for a single control in this space. | |
virtual void | serialize (void *serialization, const Control *ctrl) const |
Serializes the given control into the serialization buffer. | |
virtual void | deserialize (Control *ctrl, const void *serialization) const |
Deserializes a control from the serialization buffer. | |
void | computeSignature (std::vector< int > &signature) const |
Compute an array of ints that uniquely identifies the structure of the control space. The first element of the signature is the number of integers that follow. | |
virtual bool | isCompound () const |
Check if the control space is compound. | |
Protected Attributes | |
std::vector< ControlSpacePtr > | components_ |
The component control spaces that make up the compound control space. | |
unsigned int | componentCount_ |
The number of contained components. | |
bool | locked_ |
Flag indicating whether adding further components is allowed or not. | |
![]() | |
int | type_ |
A type assigned for this control space. | |
base::StateSpacePtr | stateSpace_ |
The state space controls can be applied to. | |
ControlSamplerAllocator | csa_ |
An optional control sampler allocator. | |
Detailed Description
A control space to allow the composition of control spaces.
Definition at line 198 of file ControlSpace.h.
Member Typedef Documentation
◆ ControlType
Define the type of control allocated by this control space.
Definition at line 202 of file ControlSpace.h.
Constructor & Destructor Documentation
◆ CompoundControlSpace()
|
inline |
Constructor. The corresponding state space needs to be specified.
Definition at line 205 of file ControlSpace.h.
Member Function Documentation
◆ addSubspace()
|
virtual |
Adds a control space as a component of the compound control space.
Definition at line 143 of file ControlSpace.cpp.
◆ allocControl()
|
overridevirtual |
Allocate memory for a control.
Implements ompl::control::ControlSpace.
Definition at line 180 of file ControlSpace.cpp.
◆ allocDefaultControlSampler()
|
overridevirtual |
Allocate the default control sampler.
Implements ompl::control::ControlSpace.
Definition at line 223 of file ControlSpace.cpp.
◆ as()
|
inline |
Cast a component of this instance to a desired type.
Make sure the type we are casting to is indeed a control space
Definition at line 214 of file ControlSpace.h.
◆ copyControl()
|
overridevirtual |
Copy a control to another.
Implements ompl::control::ControlSpace.
Definition at line 198 of file ControlSpace.cpp.
◆ deserialize()
|
overridevirtual |
Deserializes a control from the serialization buffer.
Reimplemented from ompl::control::ControlSpace.
Definition at line 300 of file ControlSpace.cpp.
◆ equalControls()
|
overridevirtual |
Check if two controls are the same.
Implements ompl::control::ControlSpace.
Definition at line 206 of file ControlSpace.cpp.
◆ freeControl()
|
overridevirtual |
Free the memory of a control.
Implements ompl::control::ControlSpace.
Definition at line 189 of file ControlSpace.cpp.
◆ getDimension()
|
overridevirtual |
Get the dimension of this control space.
Implements ompl::control::ControlSpace.
Definition at line 172 of file ControlSpace.cpp.
◆ getSerializationLength()
|
overridevirtual |
Returns the serialization size for a single control in this space.
Reimplemented from ompl::control::ControlSpace.
Definition at line 281 of file ControlSpace.cpp.
◆ getSubspace() [1/2]
const ompl::control::ControlSpacePtr & ompl::control::CompoundControlSpace::getSubspace | ( | const std::string & | name | ) | const |
Get a specific subspace from the compound control space.
Definition at line 164 of file ControlSpace.cpp.
◆ getSubspace() [2/2]
const ompl::control::ControlSpacePtr & ompl::control::CompoundControlSpace::getSubspace | ( | unsigned int | index | ) | const |
Get a specific subspace from the compound control space.
Definition at line 157 of file ControlSpace.cpp.
◆ getSubspaceCount()
unsigned int ompl::control::CompoundControlSpace::getSubspaceCount | ( | ) | const |
Get the number of control spaces that make up the compound control space.
Definition at line 152 of file ControlSpace.cpp.
◆ getValueAddressAtIndex()
|
overridevirtual |
Many controls contain a number of double values. This function provides a means to get the memory address of a double value from a control control located at position index. The first double value is returned for index = 0. If index is too large (does not point to any double values in the control), the return value is nullptr.
Reimplemented from ompl::control::ControlSpace.
Definition at line 236 of file ControlSpace.cpp.
◆ isCompound()
|
overridevirtual |
Check if the control space is compound.
Reimplemented from ompl::control::ControlSpace.
Definition at line 311 of file ControlSpace.cpp.
◆ lock()
void ompl::control::CompoundControlSpace::lock | ( | ) |
Lock this control space. This means no further control spaces can be added as components. This function can be for instance called from the constructor of a state space that inherits from CompoundControlSpace to prevent the user to add further components.
Definition at line 231 of file ControlSpace.cpp.
◆ nullControl()
|
overridevirtual |
Make the control have no effect if it were to be applied to a state for any amount of time.
Implements ompl::control::ControlSpace.
Definition at line 216 of file ControlSpace.cpp.
◆ printControl()
|
overridevirtual |
Print a control to a stream.
Reimplemented from ompl::control::ControlSpace.
Definition at line 257 of file ControlSpace.cpp.
◆ printSettings()
|
overridevirtual |
Print the settings for this control space to a stream.
Reimplemented from ompl::control::ControlSpace.
Definition at line 266 of file ControlSpace.cpp.
◆ serialize()
|
overridevirtual |
Serializes the given control into the serialization buffer.
Reimplemented from ompl::control::ControlSpace.
Definition at line 289 of file ControlSpace.cpp.
◆ setup()
|
overridevirtual |
Perform final setup steps. This function is automatically called by the SpaceInformation.
Reimplemented from ompl::control::ControlSpace.
Definition at line 274 of file ControlSpace.cpp.
Member Data Documentation
◆ componentCount_
|
protected |
The number of contained components.
Definition at line 279 of file ControlSpace.h.
◆ components_
|
protected |
The component control spaces that make up the compound control space.
Definition at line 276 of file ControlSpace.h.
◆ locked_
|
protected |
Flag indicating whether adding further components is allowed or not.
Definition at line 282 of file ControlSpace.h.
The documentation for this class was generated from the following files:
- ompl/control/ControlSpace.h
- ompl/control/src/ControlSpace.cpp