Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef FINGER_HAND_H
00033 #define FINGER_HAND_H
00034
00035 #include <Eigen/Dense>
00036 #include <iostream>
00037 #include <vector>
00038
00048 class FingerHand
00049 {
00050 public:
00051
00055 FingerHand()
00056 {
00057 }
00058
00065 FingerHand(double finger_width, double hand_outer_diameter, double hand_depth);
00066
00071 void evaluateFingers(double bite);
00072
00076 void evaluateHand();
00077
00086 void evaluateGraspParameters(double bite);
00087
00093 void deepenHand(double init_deepness, double max_deepness);
00094
00103 void setPoints(const Eigen::MatrixXd& points)
00104 {
00105 this->points_ = points;
00106 }
00107
00112 double getHandDepth() const
00113 {
00114 return hand_depth_;
00115 }
00116
00121 const Eigen::Array<bool, 1, Eigen::Dynamic>& getHand() const
00122 {
00123 return hand_;
00124 }
00125
00130 const Eigen::Array<bool, 1, Eigen::Dynamic>& getFingers() const
00131 {
00132 return fingers_;
00133 }
00134
00139 const Eigen::Vector2d& getGraspBottom() const
00140 {
00141 return grasp_bottom;
00142 }
00143
00148 const Eigen::Vector2d& getGraspSurface() const
00149 {
00150 return grasp_surface;
00151 }
00152
00157 double getGraspWidth() const
00158 {
00159 return grasp_width_;
00160 }
00161
00166 double getBackOfHand() const
00167 {
00168 return back_of_hand_;
00169 }
00170
00171 private:
00172
00173 double finger_width_;
00174 double hand_outer_diameter_;
00175 double hand_depth_;
00176
00177 double back_of_hand_;
00178
00179 double grasp_width_;
00180
00181 Eigen::VectorXd finger_spacing_;
00182 Eigen::Array<bool, 1, Eigen::Dynamic> fingers_;
00183 Eigen::Array<bool, 1, Eigen::Dynamic> hand_;
00184 Eigen::MatrixXd points_;
00185 Eigen::Vector2d grasp_bottom;
00186 Eigen::Vector2d grasp_surface;
00187 };
00188
00189 #endif