00001 00046 #ifndef JACO_DRIVER_JACO_TYPES_H 00047 #define JACO_DRIVER_JACO_TYPES_H 00048 00049 #include <kinova/KinovaTypes.h> 00050 #include <geometry_msgs/Pose.h> 00051 #include <jaco_msgs/JointAngles.h> 00052 #include <jaco_msgs/FingerPosition.h> 00053 00054 #include <string> 00055 00056 00057 namespace jaco 00058 { 00059 00060 class JacoException : public std::exception {}; 00061 00062 00063 class JacoCommException : public JacoException 00064 { 00065 public: 00066 explicit JacoCommException(const std::string& message, const int error_code); 00067 ~JacoCommException() throw() {} 00068 00069 const char* what() const throw(); 00070 private: 00071 std::string desc_; 00072 }; 00073 00074 00075 class JacoPose : public CartesianInfo 00076 { 00077 public: 00078 JacoPose() {} 00079 explicit JacoPose(const geometry_msgs::Pose &pose); 00080 explicit JacoPose(const CartesianInfo &pose); 00081 00082 geometry_msgs::Pose constructPoseMsg(); 00083 bool isCloseToOther(const JacoPose &, float tolerance) const; 00084 }; 00085 00086 00087 class JacoAngles : public AngularInfo 00088 { 00089 public: 00090 JacoAngles() {} 00091 explicit JacoAngles(const jaco_msgs::JointAngles &angles); 00092 explicit JacoAngles(const AngularInfo &angles); 00093 00094 jaco_msgs::JointAngles constructAnglesMsg(); 00095 bool isCloseToOther(const JacoAngles &, float tolerance) const; 00096 }; 00097 00098 00099 class FingerAngles : public FingersPosition 00100 { 00101 public: 00102 FingerAngles() {} 00103 explicit FingerAngles(const jaco_msgs::FingerPosition &position); 00104 explicit FingerAngles(const FingersPosition &angle); 00105 00106 jaco_msgs::FingerPosition constructFingersMsg(); 00107 bool isCloseToOther(const FingerAngles &, float tolerance) const; 00108 }; 00109 00110 } // namespace jaco 00111 #endif // JACO_DRIVER_JACO_TYPES_H