hpp-core 7.0.0
Implement basic classes for canonical path planning for kinematic chains.
Loading...
Searching...
No Matches
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.
virtual PathPtr_t impl_compute (ConfigurationIn_t q1, ConfigurationIn_t q2) const
 create a path between two configurations
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)
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)
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 ()
ProblemConstPtr_t problem () const
void constraints (const ConstraintSetPtr_t &constraints)
 Set constraint set.
const ConstraintSetPtr_tconstraints () const
 Get constraint set.

Static Public Member Functions

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

Protected Member Functions

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

Protected Attributes

Vector3 aMax_
Vector3 vMax_
double aMaxFixed_
double aMaxFixed_Z_
bool synchronizeVerticalAxis_
bool orientedPath_
bool orientationIgnoreZValue_

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 ProblemConstPtr_t &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(intindex,
doublep1,
doublep2,
doublev1,
doublev2,
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()

KinodynamicPtr_t hpp::core::steeringMethod::Kinodynamic::create(const ProblemConstPtr_t &problem)
inlinestatic

Create an instance.

◆ createCopy()

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(intindex,
doubleT,
doublep1,
doublep2,
doublev1,
doublev2,
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_tq1,
ConfigurationIn_tq2 ) const
virtual

create a path between two configurations

Implements hpp::core::SteeringMethod.

◆ init()

void hpp::core::steeringMethod::Kinodynamic::init(KinodynamicWkPtr_tweak)
inlineprotected

Store weak pointer to itself.

◆ setAmax()

void hpp::core::steeringMethod::Kinodynamic::setAmax(Vector3aMax)
inline

◆ setVmax()

void hpp::core::steeringMethod::Kinodynamic::setVmax(Vector3vMax)
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: