00001 #include "ros/ros.h" 00002 #include <iri_wam_common_msgs/wamInverseKinematics.h> 00003 #include "iri_fake_recorder.h" 00004 #include <geometry_msgs/PoseStamped.h> 00005 #include <string> 00006 00007 class IKFakeRecorder : public IRIFakeRecorder<geometry_msgs::PoseStamped> 00008 { 00009 private: 00010 ros::NodeHandle nh_; 00011 ros::ServiceServer ik_cmd_server_; 00012 std::string server_uri_; 00013 00014 bool ik_cmdCallback(iri_wam_common_msgs::wamInverseKinematics::Request &req, 00015 iri_wam_common_msgs::wamInverseKinematics::Response &res); 00016 00017 public: 00018 IKFakeRecorder(const std::string server_uri); 00019 }; 00020 00021 IKFakeRecorder::IKFakeRecorder(const std::string server_uri) : 00022 server_uri_(server_uri) 00023 { 00024 ik_cmd_server_ = nh_.advertiseService(server_uri_, & IKFakeRecorder::ik_cmdCallback, this); 00025 } 00026 00027 bool 00028 IKFakeRecorder::ik_cmdCallback(iri_wam_common_msgs::wamInverseKinematics::Request & req, 00029 iri_wam_common_msgs::wamInverseKinematics::Response &res) 00030 { 00031 msg_recieved_history_.push_back(req.pose); 00032 00033 // Simulate the seven DOF from wam 00034 for (int i = 0; i < 7; i++) 00035 res.joints.position.push_back(1.0); 00036 00037 return true; 00038 }