hpp-core  4.9.0
Implement basic classes for canonical path planning for kinematic chains.
hpp::core::steeringMethod::Kinodynamic Class Reference

#include <hpp/core/steering-method/steering-kinodynamic.hh>

Inheritance diagram for hpp::core::steeringMethod::Kinodynamic:
Collaboration diagram for hpp::core::steeringMethod::Kinodynamic:

Public Member Functions

virtual SteeringMethodPtr_t copy () const
 Copy instance and return shared pointer. More...
 
virtual PathPtr_t impl_compute (ConfigurationIn_t q1, ConfigurationIn_t q2) const
 create a path between two configurations More...
 
double computeMinTime (int index, double p1, double p2, double v1, double v2, interval_t *infInterval) const
 computeMinTime compute the minimum time required to go from state (p1,v1) to (p2,v2) More...
 
virtual void fixedTimeTrajectory (int index, double T, double p1, double p2, double v1, double v2, double *a1, double *t0, double *t1, double *tv, double *t2, double *vLim) const
 fixedTimeTrajectory compute the minimum acceleration trajectory for desired time T (1 dimension) More...
 
void setAmax (Vector3 aMax)
 
void setVmax (Vector3 vMax)
 
- Public Member Functions inherited from hpp::core::SteeringMethod
PathPtr_t operator() (ConfigurationIn_t q1, ConfigurationIn_t q2) const
 
PathPtr_t steer (ConfigurationIn_t q1, ConfigurationIn_t q2) const
 
virtual ~SteeringMethod ()
 
const Problemproblem () const
 
void constraints (const ConstraintSetPtr_t &constraints)
 Set constraint set. More...
 
const ConstraintSetPtr_tconstraints () const
 Get constraint set. More...
 

Static Public Member Functions

static KinodynamicPtr_t create (const Problem &problem)
 Create an instance. More...
 
static KinodynamicPtr_t createCopy (const KinodynamicPtr_t &other)
 Copy instance and return shared pointer. More...
 

Protected Member Functions

 Kinodynamic (const Problem &problem)
 Constructor. More...
 
 Kinodynamic (const Kinodynamic &other)
 Copy constructor. More...
 
void init (KinodynamicWkPtr_t weak)
 Store weak pointer to itself. More...
 
- Protected Member Functions inherited from hpp::core::SteeringMethod
 SteeringMethod (const Problem &problem)
 Constructor. More...
 
 SteeringMethod (const SteeringMethod &other)
 
void init (SteeringMethodWkPtr_t weak)
 Store weak pointer to itself. More...
 

Protected Attributes

Vector3 aMax_
 
Vector3 vMax_
 
double aMaxFixed_
 
double aMaxFixed_Z_
 
bool synchronizeVerticalAxis_
 
bool orientedPath_
 
bool orientationIgnoreZValue_
 
- Protected Attributes inherited from hpp::core::SteeringMethod
const Problemproblem_
 

Detailed Description

Steering method that creates KinodynamicPath instances. It produce a "bang-bang" trajectory connecting exactly the two given state (position and velocity) which respect velocity and acceleration bounds defined by the user (see Problem parameters : Kinodynamic/velocityBound and Kinodynamic/accelerationBound)

Implementation based on the equation of the article https://ieeexplore.ieee.org/document/6943083

Constructor & Destructor Documentation

◆ Kinodynamic() [1/2]

hpp::core::steeringMethod::Kinodynamic::Kinodynamic ( const Problem problem)
protected

Constructor.

◆ Kinodynamic() [2/2]

hpp::core::steeringMethod::Kinodynamic::Kinodynamic ( const Kinodynamic other)
protected

Copy constructor.

Member Function Documentation

◆ computeMinTime()

double hpp::core::steeringMethod::Kinodynamic::computeMinTime ( int  index,
double  p1,
double  p2,
double  v1,
double  v2,
interval_t infInterval 
) const

computeMinTime compute the minimum time required to go from state (p1,v1) to (p2,v2)

Parameters
p1position at state 1
p2position at state 2
v1velocity at state 1
v2velocity at state 2
infInterval: infeasible interval
Returns
T the minimal time

◆ copy()

virtual SteeringMethodPtr_t hpp::core::steeringMethod::Kinodynamic::copy ( ) const
inlinevirtual

Copy instance and return shared pointer.

Implements hpp::core::SteeringMethod.

◆ create()

static KinodynamicPtr_t hpp::core::steeringMethod::Kinodynamic::create ( const Problem problem)
inlinestatic

Create an instance.

◆ createCopy()

static KinodynamicPtr_t hpp::core::steeringMethod::Kinodynamic::createCopy ( const KinodynamicPtr_t other)
inlinestatic

Copy instance and return shared pointer.

◆ fixedTimeTrajectory()

virtual void hpp::core::steeringMethod::Kinodynamic::fixedTimeTrajectory ( int  index,
double  T,
double  p1,
double  p2,
double  v1,
double  v2,
double *  a1,
double *  t0,
double *  t1,
double *  tv,
double *  t2,
double *  vLim 
) const
virtual

fixedTimeTrajectory compute the minimum acceleration trajectory for desired time T (1 dimension)

Parameters
Tlenght of the trajectory
p1position at state 1
p2position at state 2
v1velocity at state 1
v2velocity at state 2 output :
a1acceleration during first phase
t1time of the first segment
tvtime of constant velocity segment (can be = 0)
t2time of the last segment
Returns
T the minimal time

◆ impl_compute()

virtual PathPtr_t hpp::core::steeringMethod::Kinodynamic::impl_compute ( ConfigurationIn_t  q1,
ConfigurationIn_t  q2 
) const
virtual

create a path between two configurations

Implements hpp::core::SteeringMethod.

◆ init()

void hpp::core::steeringMethod::Kinodynamic::init ( KinodynamicWkPtr_t  weak)
inlineprotected

Store weak pointer to itself.

◆ setAmax()

void hpp::core::steeringMethod::Kinodynamic::setAmax ( Vector3  aMax)
inline

◆ setVmax()

void hpp::core::steeringMethod::Kinodynamic::setVmax ( Vector3  vMax)
inline

Member Data Documentation

◆ aMax_

Vector3 hpp::core::steeringMethod::Kinodynamic::aMax_
protected

◆ aMaxFixed_

double hpp::core::steeringMethod::Kinodynamic::aMaxFixed_
protected

◆ aMaxFixed_Z_

double hpp::core::steeringMethod::Kinodynamic::aMaxFixed_Z_
protected

◆ orientationIgnoreZValue_

bool hpp::core::steeringMethod::Kinodynamic::orientationIgnoreZValue_
protected

◆ orientedPath_

bool hpp::core::steeringMethod::Kinodynamic::orientedPath_
protected

◆ synchronizeVerticalAxis_

bool hpp::core::steeringMethod::Kinodynamic::synchronizeVerticalAxis_
protected

◆ vMax_

Vector3 hpp::core::steeringMethod::Kinodynamic::vMax_
protected

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