|
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | Manipulability (RobotPtr robot) |
|
std::vector< ManipulabiliyGrasp > | analyseGrasps (GraspSetPtr grasps, ManipulationObjectPtr object) |
|
ManipulabiliyGrasp | analyseGrasp (GraspPtr grasp, ManipulationObjectPtr object) |
|
void | setManipulabilityMeasure (PoseQualityMeasurementPtr m) |
|
PoseQualityMeasurementPtr | getManipulabilityMeasure () |
|
float | measureCurrentPose () |
| measureCurrentPose Uses internal quality measure to determine the quality value of the current tcp pose More...
|
|
std::string | getMeasureName () const |
|
bool | consideringJointLimits () const |
|
void | setMaxManipulability (float maximalManip) |
|
float | getMaxManipulability () |
|
float | getManipulabilityAtPose (const Eigen::Matrix4f &globalPose) |
|
void | initSelfDistanceCheck (RobotNodeSetPtr staticModel, RobotNodeSetPtr dynamicModel) |
|
virtual bool | checkForParameters (RobotNodeSetPtr nodeSet, float steps, float storeMinBounds[6], float storeMaxBounds[6], float &storeMaxManipulability, RobotNodePtr baseNode=RobotNodePtr(), RobotNodePtr tcpNode=RobotNodePtr()) |
|
bool | smooth (unsigned int minNeighbors=1) |
|
GraspSetPtr | getReachableGrasps (GraspSetPtr grasps, ManipulationObjectPtr object) |
|
void | getSelfDistConfig (bool &storeConsiderSelfDist, RobotNodeSetPtr &storeStatic, RobotNodeSetPtr &storeDynamic) |
|
WorkspaceRepresentationPtr | clone () override |
|
void | addRandomTCPPoses (unsigned int loops, unsigned int numThreads, bool checkForSelfCollisions=true) override |
|
| WorkspaceRepresentation (RobotPtr robot) |
|
virtual void | reset () |
|
virtual void | load (const std::string &filename) |
|
virtual void | save (const std::string &filename) |
|
unsigned char | getEntry (const Eigen::Matrix4f &globalPose) const |
|
int | getMaxEntry () const |
| Returns the maximum entry of a voxel. More...
|
|
float | getVoxelSize (int dim) const |
| returns the extends of a voxel at corresponding dimension. More...
|
|
RobotNodePtr | getBaseNode () |
| The base node of this workspace data. More...
|
|
RobotNodePtr | getTCP () |
| The corresponding TCP. More...
|
|
RobotNodeSetPtr | getNodeSet () |
| The kinematic chain that is covered by this workspace data. More...
|
|
void | invalidateBehindRobot (bool inverted=false) |
|
virtual void | initialize (RobotNodeSetPtr nodeSet, float discretizeStepTranslation, float discretizeStepRotation, const float minBounds[6], const float maxBounds[6], SceneObjectSetPtr staticCollisionModel=SceneObjectSetPtr(), SceneObjectSetPtr dynamicCollisionModel=SceneObjectSetPtr(), RobotNodePtr baseNode=RobotNodePtr(), RobotNodePtr tcpNode=RobotNodePtr(), bool adjustOnOverflow=true) |
|
virtual void | setCurrentTCPPoseEntryIfLower (unsigned char e) |
|
virtual void | setCurrentTCPPoseEntry (unsigned char e) |
|
virtual void | clear () |
|
virtual bool | setRobotNodesToRandomConfig (VirtualRobot::RobotNodeSetPtr nodeSet=VirtualRobot::RobotNodeSetPtr(), bool checkForSelfCollisions=true) |
|
virtual void | binarize () |
|
virtual int | fillHoles (unsigned int minNeighbors=1) |
|
virtual void | print () |
|
Eigen::Matrix4f | sampleCoveredPose () |
| returns a random pose that is covered by the workspace data More...
|
|
bool | isCovered (const Eigen::Matrix4f &globalPose) |
|
bool | isCovered (unsigned int v[6]) |
|
virtual int | getNumVoxels (int dim) const |
|
virtual float | getMinBound (int dim) const |
|
virtual float | getMaxBound (int dim) const |
|
virtual unsigned char | getVoxelEntry (unsigned int a, unsigned int b, unsigned int c, unsigned int d, unsigned int e, unsigned int f) const |
|
virtual int | sumAngleReachabilities (int x0, int x1, int x2) const |
|
virtual int | avgAngleReachabilities (int x0, int x1, int x2) const |
|
virtual int | getMaxEntry (int x0, int x1, int x2) const |
|
virtual int | getMaxEntry (const Eigen::Vector3f &position_global) const |
|
virtual bool | getVoxelFromPose (const Eigen::Matrix4f &globalPose, unsigned int v[6]) const |
|
virtual bool | getVoxelFromPosition (const Eigen::Matrix4f &globalPose, unsigned int v[3]) const |
|
Eigen::Matrix4f | getPoseFromVoxel (unsigned int v[6], bool transformToGlobalPose=true) |
|
Eigen::Matrix4f | getPoseFromVoxel (float v[6], bool transformToGlobalPose=true) |
|
virtual int | getMaxSummedAngleReachablity () |
|
virtual bool | hasEntry (unsigned int x, unsigned int y, unsigned int z) |
|
virtual bool | checkForParameters (RobotNodeSetPtr nodeSet, float steps, float storeMinBounds[6], float storeMaxBounds[6], RobotNodePtr baseNode=RobotNodePtr(), RobotNodePtr tcpNode=RobotNodePtr()) |
|
WorkspaceCut2DPtr | createCut (const Eigen::Matrix4f &referencePose, float cellSize, bool sumAngles) const |
|
WorkspaceCut2DPtr | createCut (float heightPercent, float cellSize, bool sumAngles) const |
| createCut Create a cut at a specific height (assuming z is upwards). More...
|
|
std::vector< WorkspaceCut2DTransformationPtr > | createCutTransformations (WorkspaceCut2DPtr cutXY, RobotNodePtr referenceNode=RobotNodePtr(), float maxAngle=M_PIf32) |
|
bool | getWorkspaceExtends (Eigen::Vector3f &storeMinBBox, Eigen::Vector3f &storeMaxBBox) const |
|
MathTools::OOBB | getOOBB (bool achievedValues=false) const |
|
float | getDiscretizeParameterTranslation () |
|
float | getDiscretizeParameterRotation () |
|
RobotPtr | getRobot () |
|
SceneObjectSetPtr | getCollisionModelStatic () |
|
SceneObjectSetPtr | getCollisionModelDynamic () |
|
RobotNodePtr | getTcp () |
|
bool | getAdjustOnOverflow () |
|
virtual void | addCurrentTCPPose () |
|
void | addRandomTCPPoses (unsigned int loops, bool checkForSelfCollisions=true) |
|
void | setVoxelEntry (unsigned int v[6], unsigned char e) |
|
void | setEntry (const Eigen::Matrix4f &poseGlobal, unsigned char e) |
|
void | setEntryCheckNeighbors (const Eigen::Matrix4f &poseGlobal, unsigned char e, unsigned int neighborVoxels) |
|
virtual void | toLocal (Eigen::Matrix4f &p) const |
|
virtual void | toGlobal (Eigen::Matrix4f &p) const |
|
void | toLocalVec (Eigen::Vector3f &positionGlobal) const |
|
void | toGlobalVec (Eigen::Vector3f &positionLocal) const |
|
void | matrix2Vector (const Eigen::Matrix4f &m, float x[6]) const |
| Convert a 4x4 matrix to a pos + ori vector. More...
|
|
void | vector2Matrix (const float x[6], Eigen::Matrix4f &m) const |
|
void | vector2Matrix (const Eigen::Vector3f &pos, const Eigen::Vector3f &rot, Eigen::Matrix4f &m) const |
|
virtual bool | getVoxelFromPose (float x[6], unsigned int v[6]) const |
|
virtual bool | getVoxelFromPosition (float x[3], unsigned int v[3]) const |
|
void | setOrientationType (eOrientationType t) |
|
WorkspaceDataPtr | getData () |
|
bool | getPoseFromVoxel (unsigned int x[], float v[]) const |
|
virtual VolumeInfo | computeVolumeInformation () |
|
|
bool | customLoad (std::ifstream &file) override |
|
bool | customSave (std::ofstream &file) override |
|
void | customPrint () override |
|
void | customInitialize () override |
|
bool | customStringRead (std::ifstream &file, std::string &res) |
|
float | getCurrentManipulability (PoseQualityMeasurementPtr qualMeasure, RobotNodeSetPtr selfDistSt=RobotNodeSetPtr(), RobotNodeSetPtr selfDistDyn=RobotNodeSetPtr()) |
|
void | addPose (const Eigen::Matrix4f &p) override |
|
void | addPose (const Eigen::Matrix4f &p, PoseQualityMeasurementPtr qualMeasure) override |
| addPose Adds pose and rate it with the given quality measure. Ignored in this implementation, but used in derived classes ( More...
|
|
void | addPose (const Eigen::Matrix4f &p, PoseQualityMeasurementPtr qualMeasure, RobotNodeSetPtr selfDistSt, RobotNodeSetPtr selfDistDyn) |
|
void | uncompressData (const unsigned char *source, int size, unsigned char *dest) |
| Uncompress the data. More...
|
|
unsigned char * | compressData (const unsigned char *source, int size, int &compressedSize) |
| Compress the data. More...
|
|
virtual Eigen::Matrix4f | getToLocalTransformation () const |
|
virtual Eigen::Matrix4f | getToGlobalTransformation () const |
|
This class represents an approximation of the distribution of a kinematic chain's manipulability. Therefore, the Cartesian space (6D) is voxelized. Each voxel holds a quality value, approximatively representing the maximum manipulability that can be achieved at the given pose. The discretized manipulability data can be written to and loaded from binary files.
The manipulability is linked to a base coordinate system which is defined by a robot joint. This base system is used to align the data when the robot is moving. I.e. think of an arm of a humanoid where the manipulability data is linked to the shoulder. When the torso moves, the manipulability also changes it's position according to the position of the shoulder.
For buildup different manipulability measures can be incorporated (e.g. Yoshikawa's manipulability measure or extensions to this approach).
- See also
- PoseQualityMeasurement
-
PoseQualityManipulability
-
PoseQualityExtendedManipulability