Aikido
aikido::constraint::uniform::SE2BoxConstraint Class Reference

A BoxConstraint on SE2. More...

#include <aikido/constraint/uniform/SE2BoxConstraint.hpp>

Inheritance diagram for aikido::constraint::uniform::SE2BoxConstraint:
aikido::constraint::Projectable aikido::constraint::Sampleable aikido::constraint::Testable

Public Member Functions

 SE2BoxConstraint (std::shared_ptr< const statespace::SE2 > space, std::unique_ptr< common::RNG > rng, const Eigen::Vector2d &lowerLimits, const Eigen::Vector2d &upperLimits)
 Constructor. More...
 
statespace::ConstStateSpacePtr getStateSpace () const override
 Gets the StateSpace that this constraint operates on. More...
 
bool isSatisfied (const statespace::StateSpace::State *state, TestableOutcome *outcome=nullptr) const override
 Documentation inherited. More...
 
std::unique_ptr< TestableOutcomecreateOutcome () const override
 Return an instance of DefaultTestableOutcome, since this class doesn't have a more specialized TestableOutcome derivative assigned to it. More...
 
bool project (const statespace::StateSpace::State *s, statespace::StateSpace::State *out) const override
 Projection _s to _out. More...
 
std::unique_ptr< constraint::SampleGeneratorcreateSampleGenerator () const override
 Creates a SampleGenerator for sampling from this constraint. More...
 
Eigen::Vector2d getLowerLimits () const
 Returns lower limits of this constraint. More...
 
Eigen::Vector2d getUpperLimits () const
 Returns upper limits of this constraint. More...
 
- Public Member Functions inherited from aikido::constraint::Projectable
virtual ~Projectable ()=default
 
virtual bool project (statespace::StateSpace::State *_s) const
 Performs an in-place projection. More...
 
- Public Member Functions inherited from aikido::constraint::Sampleable
virtual ~Sampleable ()=default
 
- Public Member Functions inherited from aikido::constraint::Testable
virtual ~Testable ()=default
 

Private Attributes

std::shared_ptr< const statespace::SE2mSpace
 
std::unique_ptr< common::RNGmRng
 
Eigen::Vector3d mLowerLimits
 Lower limits on the state. More...
 
Eigen::Vector3d mUpperLimits
 Upper limits on the state. More...
 
std::size_t mRnDimension
 
std::size_t mDimension
 

Detailed Description

A BoxConstraint on SE2.

This class does not allow constraint on rotation. For each dimension x and y, this constraint has lowerLimit and upperLimit.

Constructor & Destructor Documentation

◆ SE2BoxConstraint()

aikido::constraint::uniform::SE2BoxConstraint::SE2BoxConstraint ( std::shared_ptr< const statespace::SE2 space,
std::unique_ptr< common::RNG rng,
const Eigen::Vector2d &  lowerLimits,
const Eigen::Vector2d &  upperLimits 
)

Constructor.

Parameters
spaceSpace in which this constraint operates.
rngRandom number generator to be used for sampling.
lowerLimitsLower limits on the state, only on x and y.
upperLimitsUpper limits on the state, only on x and y.

Member Function Documentation

◆ createOutcome()

std::unique_ptr<TestableOutcome> aikido::constraint::uniform::SE2BoxConstraint::createOutcome ( ) const
overridevirtual

Return an instance of DefaultTestableOutcome, since this class doesn't have a more specialized TestableOutcome derivative assigned to it.

Implements aikido::constraint::Testable.

◆ createSampleGenerator()

std::unique_ptr<constraint::SampleGenerator> aikido::constraint::uniform::SE2BoxConstraint::createSampleGenerator ( ) const
overridevirtual

Creates a SampleGenerator for sampling from this constraint.

Implements aikido::constraint::Sampleable.

◆ getLowerLimits()

Eigen::Vector2d aikido::constraint::uniform::SE2BoxConstraint::getLowerLimits ( ) const

Returns lower limits of this constraint.

◆ getStateSpace()

statespace::ConstStateSpacePtr aikido::constraint::uniform::SE2BoxConstraint::getStateSpace ( ) const
overridevirtual

Gets the StateSpace that this constraint operates on.

Implements aikido::constraint::Projectable.

◆ getUpperLimits()

Eigen::Vector2d aikido::constraint::uniform::SE2BoxConstraint::getUpperLimits ( ) const

Returns upper limits of this constraint.

◆ isSatisfied()

bool aikido::constraint::uniform::SE2BoxConstraint::isSatisfied ( const statespace::StateSpace::State state,
TestableOutcome outcome = nullptr 
) const
overridevirtual

Documentation inherited.

Implements aikido::constraint::Testable.

◆ project()

bool aikido::constraint::uniform::SE2BoxConstraint::project ( const statespace::StateSpace::State _s,
statespace::StateSpace::State _out 
) const
overridevirtual

Projection _s to _out.

Returns false if projection cannot be done.

Parameters
_sstate to be projected.
_outresulting projection.

Implements aikido::constraint::Projectable.

Member Data Documentation

◆ mDimension

std::size_t aikido::constraint::uniform::SE2BoxConstraint::mDimension
private

◆ mLowerLimits

Eigen::Vector3d aikido::constraint::uniform::SE2BoxConstraint::mLowerLimits
private

Lower limits on the state.

The first two elements encode the translational limits and the last element encodes the rotational limit.

◆ mRnDimension

std::size_t aikido::constraint::uniform::SE2BoxConstraint::mRnDimension
private

◆ mRng

std::unique_ptr<common::RNG> aikido::constraint::uniform::SE2BoxConstraint::mRng
private

◆ mSpace

std::shared_ptr<const statespace::SE2> aikido::constraint::uniform::SE2BoxConstraint::mSpace
private

◆ mUpperLimits

Eigen::Vector3d aikido::constraint::uniform::SE2BoxConstraint::mUpperLimits
private

Upper limits on the state.

The first two elements encode the translational limits and the last element encodes the rotational limit.