Simox  2.3.50
Saba::ElasticBandProcessor Class Reference

The ElasticBandProcessor uses Cartesian distance vectors to move c-space points in order to produce smooth trajectories. More...

Inheritance diagram for Saba::ElasticBandProcessor:
Saba::PathProcessor

Public Member Functions

 ElasticBandProcessor (CSpacePathPtr path, CSpaceSampledPtr cspace, VirtualRobot::RobotNodePtr node, VirtualRobot::SceneObjectSetPtr obstacles, bool verbose=false)
 
virtual ~ElasticBandProcessor ()
 
virtual CSpacePathPtr optimize (int optimizeSteps)
 A wrapper to the standard interface. More...
 
void setWeights (Eigen::VectorXf w)
 could also be used to disable specific dimensions More...
 
void getForces (unsigned int i, Eigen::Vector3f &internalForce, Eigen::Vector3f &externalForce)
 
Eigen::Vector3f getWSpacePoint (const Eigen::VectorXf &fc)
 
- Public Member Functions inherited from Saba::PathProcessor
 PathProcessor (CSpacePathPtr p, bool verbose=false)
 
virtual ~PathProcessor ()
 
virtual void stopExecution ()
 Stop the execution from outside. More...
 
CSpacePathPtr getOptimizedPath ()
 

Protected Member Functions

bool getCSpaceForce (const Eigen::Vector3f &f, Eigen::VectorXf &fc, float factor, float maxForce)
 
bool getWSpaceForce (const Eigen::VectorXf &fc, Eigen::Vector3f &f)
 
bool getObstacleForce (Eigen::Vector3f &f)
 
bool initSolution ()
 
bool elasticBandLoop ()
 
bool checkRemoveNodes ()
 
bool checkNewNodes ()
 
bool getNeighborCForce (const Eigen::VectorXf &before, const Eigen::VectorXf &act, const Eigen::VectorXf &next, Eigen::VectorXf &fc)
 

Protected Attributes

Eigen::VectorXf weights
 
CSpaceSampledPtr cspace
 
VirtualRobot::RobotNodePtr node
 
VirtualRobot::SceneObjectSetPtr obstacles
 
VirtualRobot::RobotNodeSetPtr rns
 
VirtualRobot::CollisionCheckerPtr colChecker
 
VirtualRobot::GenericIKSolverPtr ik
 
float factorCSpaceNeighborForce
 
float factorCSpaceObstacleForce
 
float maxCSpaceNeighborForce
 
float maxCSpaceObstacleForce
 
float minObstacleDistance
 
- Protected Attributes inherited from Saba::PathProcessor
CSpacePathPtr optimizedPath
 
CSpacePathPtr path
 
unsigned int dim
 
bool verbose
 
bool stopOptimization
 

Detailed Description

The ElasticBandProcessor uses Cartesian distance vectors to move c-space points in order to produce smooth trajectories.

Constructor & Destructor Documentation

Saba::ElasticBandProcessor::ElasticBandProcessor ( CSpacePathPtr  path,
CSpaceSampledPtr  cspace,
VirtualRobot::RobotNodePtr  node,
VirtualRobot::SceneObjectSetPtr  obstacles,
bool  verbose = false 
)
Saba::ElasticBandProcessor::~ElasticBandProcessor ( )
virtual

Member Function Documentation

bool Saba::ElasticBandProcessor::checkNewNodes ( )
protected
bool Saba::ElasticBandProcessor::checkRemoveNodes ( )
protected
bool Saba::ElasticBandProcessor::elasticBandLoop ( )
protected
bool Saba::ElasticBandProcessor::getCSpaceForce ( const Eigen::Vector3f &  f,
Eigen::VectorXf &  fc,
float  factor,
float  maxForce 
)
protected
void Saba::ElasticBandProcessor::getForces ( unsigned int  i,
Eigen::Vector3f &  internalForce,
Eigen::Vector3f &  externalForce 
)

Writes ext and int forces of point i to given variables.

bool Saba::ElasticBandProcessor::getNeighborCForce ( const Eigen::VectorXf &  before,
const Eigen::VectorXf &  act,
const Eigen::VectorXf &  next,
Eigen::VectorXf &  fc 
)
protected
bool Saba::ElasticBandProcessor::getObstacleForce ( Eigen::Vector3f &  f)
protected
bool Saba::ElasticBandProcessor::getWSpaceForce ( const Eigen::VectorXf &  fc,
Eigen::Vector3f &  f 
)
protected
Eigen::Vector3f Saba::ElasticBandProcessor::getWSpacePoint ( const Eigen::VectorXf &  fc)
bool Saba::ElasticBandProcessor::initSolution ( )
protected
CSpacePathPtr Saba::ElasticBandProcessor::optimize ( int  optimizeSteps)
virtual

A wrapper to the standard interface.

Implements Saba::PathProcessor.

void Saba::ElasticBandProcessor::setWeights ( Eigen::VectorXf  w)

could also be used to disable specific dimensions

Field Documentation

VirtualRobot::CollisionCheckerPtr Saba::ElasticBandProcessor::colChecker
protected
CSpaceSampledPtr Saba::ElasticBandProcessor::cspace
protected
float Saba::ElasticBandProcessor::factorCSpaceNeighborForce
protected
float Saba::ElasticBandProcessor::factorCSpaceObstacleForce
protected
VirtualRobot::GenericIKSolverPtr Saba::ElasticBandProcessor::ik
protected
float Saba::ElasticBandProcessor::maxCSpaceNeighborForce
protected
float Saba::ElasticBandProcessor::maxCSpaceObstacleForce
protected
float Saba::ElasticBandProcessor::minObstacleDistance
protected
VirtualRobot::RobotNodePtr Saba::ElasticBandProcessor::node
protected
VirtualRobot::SceneObjectSetPtr Saba::ElasticBandProcessor::obstacles
protected
VirtualRobot::RobotNodeSetPtr Saba::ElasticBandProcessor::rns
protected
Eigen::VectorXf Saba::ElasticBandProcessor::weights
protected