00001 00012 #ifndef JACO_JOY_TELEOP_H_ 00013 #define JACO_JOY_TELEOP_H_ 00014 00015 #include <ros/ros.h> 00016 #include <wpi_jaco_msgs/AngularCommand.h> 00017 #include <wpi_jaco_msgs/CartesianCommand.h> 00018 #include <wpi_jaco_msgs/EStop.h> 00019 #include <sensor_msgs/Joy.h> 00020 00021 //Control modes 00022 #define ARM_CONTROL 0 00023 #define FINGER_CONTROL 1 00024 00025 //Joystick types 00026 #define ANALOG 0 //analog triggers 00027 #define DIGITAL 1 //digital triggers 00028 00034 #define MAX_TRANS_VEL .175 00035 00040 #define MAX_FINGER_VEL 30 00041 00047 #define MAX_ANG_VEL 1.047 00048 00056 class jaco_joy_teleop 00057 { 00058 public: 00066 jaco_joy_teleop(); 00067 00071 void publish_velocity(); 00072 00073 private: 00074 bool loadParameters(const ros::NodeHandle n); 00075 00081 void joy_cback(const sensor_msgs::Joy::ConstPtr& joy); 00082 00083 ros::NodeHandle node; 00085 ros::Publisher angular_cmd; 00086 ros::Publisher cartesian_cmd; 00087 ros::Subscriber joy_sub; 00089 ros::ServiceClient eStopClient; 00091 wpi_jaco_msgs::AngularCommand fingerCmd; 00092 wpi_jaco_msgs::CartesianCommand cartesianCmd; 00094 int mode; 00095 int controllerType; 00096 double linear_throttle_factor; 00097 double angular_throttle_factor; 00098 double finger_throttle_factor; 00099 bool stopMessageSentArm; 00100 bool stopMessageSentFinger; 00101 bool initLeftTrigger; 00102 bool initRightTrigger; 00103 bool calibrated; 00104 bool EStopEnabled; 00105 bool helpDisplayed; 00106 std::string arm_name_; 00107 std::string topic_prefix_; 00108 }; 00109 00117 int main(int argc, char **argv); 00118 00119 #endif