hpp::core::DubinsPath Class Reference

Car like motion going only forward. More...

#include <hpp/core/dubins-path.hh>

Inheritance diagram for hpp::core::DubinsPath:
[legend]
Collaboration diagram for hpp::core::DubinsPath:
[legend]

Public Types

typedef core::PathVector parent_t
 
- Public Types inherited from hpp::core::PathVector
typedef Path parent_t
 

Public Member Functions

virtual ~DubinsPath () throw ()
 Destructor. More...
 
virtual PathPtr_t copy () const
 Return a shared pointer to a copy of this object. More...
 
virtual PathPtr_t copy (const ConstraintSetPtr_t &constraints) const
 Return a shared pointer to a copy of this and set constraints. More...
 
DevicePtr_t device () const
 Return the internal robot. More...
 
Configuration_t initial () const
 Get the initial configuration. More...
 
Configuration_t end () const
 Get the final configuration. More...
 
- Public Member Functions inherited from hpp::core::PathVector
std::size_t numberPaths () const
 Get the number of sub paths. More...
 
PathPtr_t pathAtRank (std::size_t rank) const
 Get a path in the vector. More...
 
std::size_t rankAtParam (const value_type &param, value_type &localParam) const
 Get rank of direct path in vector at param. More...
 
void appendPath (const PathPtr_t &path)
 Append a path at the end of the vector. More...
 
void concatenate (const PathVector &path) HPP_CORE_DEPRECATED
 Concatenate two vectors of path. More...
 
void concatenate (const PathVectorPtr_t &path)
 Concatenate two vectors of path. More...
 
void flatten (PathVectorPtr_t flattenedPath) const
 Return the a path vector representing the same path but ensuring that there is no PathVector in the PathVector. More...
 
virtual ~PathVector () throw ()
 Destructor. More...
 
- Public Member Functions inherited from hpp::core::Path
virtual ~Path () throw ()
 Destructor. More...
 
template<class T >
boost::shared_ptr< T > as (void)
 Static cast into a derived type. More...
 
template<class T >
boost::shared_ptr< const T > as (void) const
 Static cast into a derived type. More...
 
PathPtr_t extract (const interval_t &subInterval) const throw (projection_error)
 
PathPtr_t extract (const value_type &tmin, const value_type &tmax) const throw (projection_error)
 
virtual PathPtr_t reverse () const
 Reversion of a path. More...
 
Configuration_t operator() (const value_type &time) const HPP_CORE_DEPRECATED
 
Configuration_t operator() (const value_type &time, bool &success) const
 
bool operator() (ConfigurationOut_t result, const value_type &time) const throw ()
 
Configuration_t eval (const value_type &time, bool &success) const
 
bool eval (ConfigurationOut_t result, const value_type &time) const throw ()
 
bool at (const value_type &time, ConfigurationOut_t result) const
 Get the configuration at a parameter without applying the constraints. More...
 
void derivative (vectorOut_t result, const value_type &time, size_type order) const
 Get derivative with respect to parameter at given parameter. More...
 
void velocityBound (vectorOut_t result, const value_type &t0, const value_type &t1) const
 Get an upper bound of the velocity on a sub-interval. More...
 
size_type outputSize () const
 Get size of configuration space. More...
 
size_type outputDerivativeSize () const
 Get size of velocity. More...
 
const interval_ttimeRange () const
 Get interval of definition. More...
 
virtual value_type length () const
 Get length of definition interval. More...
 
const ConstraintSetPtr_tconstraints () const
 Get constraints the path is subject to. More...
 
const interval_tparamRange () const
 Get interval of parameters. More...
 
void timeParameterization (const TimeParameterizationPtr_t &tp, const interval_t &tr)
 Set the time parameterization function. More...
 

Static Public Member Functions

static DubinsPathPtr_t create (const DevicePtr_t &device, ConfigurationIn_t init, ConfigurationIn_t end, value_type extraLength, value_type rho, size_type xyId, size_type rzId, const std::vector< JointPtr_t > wheels)
 Create instance and return shared pointer. More...
 
static DubinsPathPtr_t create (const DevicePtr_t &device, ConfigurationIn_t init, ConfigurationIn_t end, value_type extraLength, value_type rho, size_type xyId, size_type rzId, const std::vector< JointPtr_t > wheels, ConstraintSetPtr_t constraints)
 Create instance and return shared pointer. More...
 
static DubinsPathPtr_t createCopy (const DubinsPathPtr_t &path)
 Create copy and return shared pointer. More...
 
static DubinsPathPtr_t createCopy (const DubinsPathPtr_t &path, const ConstraintSetPtr_t &constraints)
 Create copy and return shared pointer. More...
 
- Static Public Member Functions inherited from hpp::core::PathVector
static PathVectorPtr_t create (size_type outputSize, size_type outputDerivativeSize)
 Create instance and return shared pointer. More...
 
static PathVectorPtr_t createCopy (const PathVectorPtr_t &original)
 Create instance and return shared pointer. More...
 
static PathVectorPtr_t createCopy (const PathVectorPtr_t &original, const ConstraintSetPtr_t &constraints)
 Create instance and return shared pointer. More...
 

Protected Member Functions

virtual std::ostream & print (std::ostream &os) const
 Print path in a stream. More...
 
 DubinsPath (const DevicePtr_t &robot, ConfigurationIn_t init, ConfigurationIn_t end, value_type extraLength, value_type rho, size_type xyId, size_type rzId, const std::vector< JointPtr_t > wheels)
 Constructor. More...
 
 DubinsPath (const DevicePtr_t &robot, ConfigurationIn_t init, ConfigurationIn_t end, value_type extraLength, value_type rho, size_type xyId, size_type rzId, const std::vector< JointPtr_t > wheels, ConstraintSetPtr_t constraints)
 Constructor with constraints. More...
 
 DubinsPath (const DubinsPath &path)
 Copy constructor. More...
 
 DubinsPath (const DubinsPath &path, const ConstraintSetPtr_t &constraints)
 Copy constructor with constraints. More...
 
void init (DubinsPathPtr_t self)
 
- Protected Member Functions inherited from hpp::core::PathVector
 PathVector (std::size_t outputSize, std::size_t outputDerivativeSize)
 Constructor. More...
 
 PathVector (const PathVector &path)
 Copy constructor. More...
 
 PathVector (const PathVector &path, const ConstraintSetPtr_t &constraints)
 Copy constructor with constraints. More...
 
void init (PathVectorPtr_t self)
 
virtual bool impl_compute (ConfigurationOut_t result, value_type t) const
 Function evaluation without applying constraints. More...
 
virtual void impl_derivative (vectorOut_t result, const value_type &t, size_type order) const
 Virtual implementation of derivative. More...
 
virtual PathPtr_t impl_extract (const interval_t &subInterval) const throw (projection_error)
 Extraction of a sub-path. More...
 
- Protected Member Functions inherited from hpp::core::Path
 Path (const interval_t &interval, size_type outputSize, size_type outputDerivativeSize, const ConstraintSetPtr_t &constraints)
 Constructor. More...
 
 Path (const interval_t &interval, size_type outputSize, size_type outputDerivativeSize)
 Constructor. More...
 
 Path (const Path &path)
 Copy constructor. More...
 
 Path (const Path &path, const ConstraintSetPtr_t &constraints)
 Copy constructor with constraints. More...
 
void init (const PathWkPtr_t &self)
 Store weak pointer to itself. More...
 
void constraints (const ConstraintSetPtr_t &constraint)
 Set the constraints. More...
 
virtual void checkPath () const
 Should be called by child classes after having init. More...
 
void timeRange (const interval_t &timeRange)
 
const TimeParameterizationPtr_ttimeParameterization () const
 
value_type paramLength () const
 
Configuration_t configAtParam (const value_type &param, bool &success) const
 
virtual void impl_velocityBound (vectorOut_t bound, const value_type &param0, const value_type &param1) const
 Virtual implementation of velocityBound. More...
 

Additional Inherited Members

- Protected Attributes inherited from hpp::core::Path
interval_t paramRange_
 Interval of parameters. More...
 

Detailed Description

Car like motion going only forward.

Implement a Dubins motion generation on the base joint. Degrees of freedom are interpolated depending on the type of joint they parameterize: The following interpolation is made:

  • Reeds and Shepp interpolation for the base_joint_xy and base_joint_rz
  • If the wheel joints are passed using setWheelJoints, the configuration parameter of those joints are computed so that the wheel is aligned with the velocity.
  • linear interpolation for the other joints

Member Typedef Documentation

Constructor & Destructor Documentation

virtual hpp::core::DubinsPath::~DubinsPath ( )
throw (
)
inlinevirtual

Destructor.

References hpp::core::Path::constraints(), create(), device(), end(), and init().

hpp::core::DubinsPath::DubinsPath ( const DevicePtr_t robot,
ConfigurationIn_t  init,
ConfigurationIn_t  end,
value_type  extraLength,
value_type  rho,
size_type  xyId,
size_type  rzId,
const std::vector< JointPtr_t wheels 
)
protected

Constructor.

Referenced by createCopy(), and print().

hpp::core::DubinsPath::DubinsPath ( const DevicePtr_t robot,
ConfigurationIn_t  init,
ConfigurationIn_t  end,
value_type  extraLength,
value_type  rho,
size_type  xyId,
size_type  rzId,
const std::vector< JointPtr_t wheels,
ConstraintSetPtr_t  constraints 
)
protected

Constructor with constraints.

hpp::core::DubinsPath::DubinsPath ( const DubinsPath path)
protected

Copy constructor.

hpp::core::DubinsPath::DubinsPath ( const DubinsPath path,
const ConstraintSetPtr_t constraints 
)
protected

Copy constructor with constraints.

Member Function Documentation

virtual PathPtr_t hpp::core::DubinsPath::copy ( ) const
inlinevirtual

Return a shared pointer to a copy of this object.

Reimplemented from hpp::core::PathVector.

References createCopy().

virtual PathPtr_t hpp::core::DubinsPath::copy ( const ConstraintSetPtr_t constraints) const
inlinevirtual

Return a shared pointer to a copy of this and set constraints.

Parameters
constraintsconstraints to apply to the copy
Precondition
*this should not have constraints.

Reimplemented from hpp::core::PathVector.

References hpp::core::Path::constraints(), and createCopy().

static DubinsPathPtr_t hpp::core::DubinsPath::create ( const DevicePtr_t device,
ConfigurationIn_t  init,
ConfigurationIn_t  end,
value_type  extraLength,
value_type  rho,
size_type  xyId,
size_type  rzId,
const std::vector< JointPtr_t wheels 
)
static

Create instance and return shared pointer.

Parameters
deviceRobot corresponding to configurations
init,endStart and end configurations of the path
extraLengthPart of path length due to non Dubins degrees of freedom,
rhoThe radius of a turn,
xyId,rzIdindices in configuration vector of translation and rotation of the car,
wheelsvector of joints that represent turning wheels.

Referenced by ~DubinsPath().

static DubinsPathPtr_t hpp::core::DubinsPath::create ( const DevicePtr_t device,
ConfigurationIn_t  init,
ConfigurationIn_t  end,
value_type  extraLength,
value_type  rho,
size_type  xyId,
size_type  rzId,
const std::vector< JointPtr_t wheels,
ConstraintSetPtr_t  constraints 
)
static

Create instance and return shared pointer.

Parameters
deviceRobot corresponding to configurations
init,endStart and end configurations of the path
extraLengthPart of path length due to non Dubins degrees of freedom,
rhoThe radius of a turn.
xyId,rzIdindices in configuration vector of translation and rotation of the car,
wheelsvector of joints that represent turning wheels,
constraintsthe path is subject to
static DubinsPathPtr_t hpp::core::DubinsPath::createCopy ( const DubinsPathPtr_t path)
inlinestatic

Create copy and return shared pointer.

Parameters
pathpath to copy

References DubinsPath(), and init().

Referenced by copy().

static DubinsPathPtr_t hpp::core::DubinsPath::createCopy ( const DubinsPathPtr_t path,
const ConstraintSetPtr_t constraints 
)
inlinestatic

Create copy and return shared pointer.

Parameters
pathpath to copy
constraintsthe path is subject to

References DubinsPath(), and init().

DevicePtr_t hpp::core::DubinsPath::device ( ) const
inline

Return the internal robot.

Referenced by ~DubinsPath().

Configuration_t hpp::core::DubinsPath::end ( ) const
inlinevirtual

Get the final configuration.

Reimplemented from hpp::core::PathVector.

Referenced by ~DubinsPath().

void hpp::core::DubinsPath::init ( DubinsPathPtr_t  self)
protected

Referenced by createCopy(), print(), and ~DubinsPath().

Configuration_t hpp::core::DubinsPath::initial ( ) const
inlinevirtual

Get the initial configuration.

Reimplemented from hpp::core::PathVector.

virtual std::ostream& hpp::core::DubinsPath::print ( std::ostream &  os) const
inlineprotectedvirtual

Print path in a stream.

Reimplemented from hpp::core::PathVector.

References d, DubinsPath(), init(), and hpp::core::Path::print().