Simox
2.3.74.0
|
The ElasticBandProcessor uses Cartesian distance vectors to move c-space points in order to produce smooth trajectories. More...
Public Member Functions | |
ElasticBandProcessor (CSpacePathPtr path, CSpaceSampledPtr cspace, VirtualRobot::RobotNodePtr node, VirtualRobot::SceneObjectSetPtr obstacles, bool verbose=false) | |
~ElasticBandProcessor () override | |
CSpacePathPtr | optimize (int optimizeSteps) override |
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 |
The ElasticBandProcessor uses Cartesian distance vectors to move c-space points in order to produce smooth trajectories.
Saba::ElasticBandProcessor::ElasticBandProcessor | ( | CSpacePathPtr | path, |
CSpaceSampledPtr | cspace, | ||
VirtualRobot::RobotNodePtr | node, | ||
VirtualRobot::SceneObjectSetPtr | obstacles, | ||
bool | verbose = false |
||
) |
|
overridedefault |
|
protected |
|
protected |
|
protected |
|
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.
|
protected |
|
protected |
|
protected |
Eigen::Vector3f Saba::ElasticBandProcessor::getWSpacePoint | ( | const Eigen::VectorXf & | fc | ) |
|
protected |
|
overridevirtual |
A wrapper to the standard interface.
Implements Saba::PathProcessor.
void Saba::ElasticBandProcessor::setWeights | ( | Eigen::VectorXf | w | ) |
could also be used to disable specific dimensions
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |