hpp-manipulation 7.0.0
Classes for manipulation planning.
Loading...
Searching...
No Matches
hpp::manipulation::pathPlanner::EndEffectorTrajectory Class Reference

#include <hpp/manipulation/path-planner/end-effector-trajectory.hh>

Inheritance diagram for hpp::manipulation::pathPlanner::EndEffectorTrajectory:
Collaboration diagram for hpp::manipulation::pathPlanner::EndEffectorTrajectory:

Public Member Functions

virtual void startSolve ()
virtual void oneStep ()
 One step of the algorithm.
int nRandomConfig () const
void nRandomConfig (int n)
int nDiscreteSteps () const
 Number of steps to generate goal config (successive projections).
void nDiscreteSteps (int n)
void checkFeasibilityOnly (bool enable)
bool checkFeasibilityOnly () const
void ikSolverInitialization (IkSolverInitializationPtr_t solver)
void tryConnectInitAndGoals ()
Public Member Functions inherited from hpp::core::PathPlanner
virtual ~PathPlanner ()
virtual const roadmap () const
problem () const
virtual solve ()
virtual PathVectorPtr_t &path)
void interrupt ()
void maxIterations (const unsigned long int &n)
unsigned long int maxIterations () const
void timeOut (const double &timeOut)
double timeOut () const
void stopWhenProblemIsSolved (bool enable)
computePath () const

Static Public Member Functions

static EndEffectorTrajectoryPtr_t create (const problem)
static EndEffectorTrajectoryPtr_t createWithRoadmap (const roadmap)

Protected Member Functions

 EndEffectorTrajectory (const problem)
 EndEffectorTrajectory (const roadmap)
void init (const EndEffectorTrajectoryWkPtr_t &weak)
 Store weak pointer to itself.
Protected Member Functions inherited from hpp::core::PathPlanner
 problem)
 roadmap)
void init (const PathPlannerWkPtr_t &weak)

Detailed Description

Plan a path for a robot with constrained trajectory of an end effector

This path planner only works with a steering method of type steeringMethod::EndEffectorTrajectory. The steering method defines the desired end-effector trajectory using a time-varying constraint.

To plan a path between two configurations q_init and q_goal, the configurations must satisfy the constraint at the beginning and at the end of the definition interval respectively.

The interval of definition \([0,T]\) of the output path is defined by the time-varying constraint of the steering method. This interval is uniformly discretized in a number of samples that can be accessed using method nDiscreteSteps .

The path is planned by successively calling method oneStep that performs the following actions.

  • A vector of configurations is produced by appending random configurations to q_init. The number of random configurations can be accessed by methods nRandomConfig .
  • for each configuration in the vector,
    • the initial configuration of the path is computed by projecting the configuration on the constraint,
    • the configuration at following samples is computed by projecting the configuration at the previous sample using the time-varying constraint.
    • In case of failure
      • in projecting a configuration or
      • in validating the path for collision, the loop restart with the next random configuration.

Note that continuity is not tested but enforced by projecting the configuration of the previous sample to compute the configuration at a given sample.


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