00001 /* 00002 * hand_description.h 00003 * 00004 * Created on: 2 Aug 2012 00005 * Author: andreas 00006 */ 00007 00008 #ifndef HAND_DESCRIPTION_H_ 00009 #define HAND_DESCRIPTION_H_ 00010 00011 #include <ros/ros.h> 00012 #include <geometry_msgs/Vector3.h> 00013 #include <map> 00014 00015 class HandDescription 00016 { 00017 public: 00018 static const HandDescription& get(const std::string& arm_name); 00019 00020 virtual ~HandDescription(); 00021 00022 const geometry_msgs::Vector3& getApproachDirection() const 00023 { 00024 return approachDirection; 00025 } 00026 00027 const std::string& getArmName() const 00028 { 00029 return armName; 00030 } 00031 00032 const std::string& getAttachLink() const 00033 { 00034 return attachLink; 00035 } 00036 00037 double getEndEffectorLength() const 00038 { 00039 return endEffectorLength; 00040 } 00041 00042 const std::vector<std::string>& getFingerLinks() const 00043 { 00044 return fingerLinks; 00045 } 00046 00047 const std::vector<std::string>& getFingerTipLinks() const 00048 { 00049 return fingerTipLinks; 00050 } 00051 00052 const std::string& getGripperJoint() const 00053 { 00054 return gripperJoint; 00055 } 00056 00057 const std::string& getHandFrame() const 00058 { 00059 return handFrame; 00060 } 00061 00062 const std::string& getHandGroup() const 00063 { 00064 return handGroup; 00065 } 00066 00067 const std::vector<std::string>& getHandLinks() const 00068 { 00069 return handLinks; 00070 } 00071 00072 const std::vector<std::string>& getTouchLinks() const 00073 { 00074 return touchLinks; 00075 } 00076 00077 private: 00078 HandDescription(const std::string& arm); 00079 00080 std::string armName; 00081 std::string handGroup; 00082 std::string attachLink; 00083 std::string handFrame; 00084 std::string gripperJoint; 00085 00086 std::vector<std::string> handLinks; 00087 std::vector<std::string> touchLinks; 00088 std::vector<std::string> fingerTipLinks; 00089 std::vector<std::string> fingerLinks; 00090 00091 double endEffectorLength; 00092 geometry_msgs::Vector3 approachDirection; 00093 00094 static std::map<std::string, HandDescription> descriptions; 00095 }; 00096 00097 #endif /* HAND_DESCRIPTION_H_ */