40 #include <pr2_gripper_sensor_msgs/PR2GripperEventDetectorAction.h> 41 #include <pr2_gripper_sensor_msgs/PR2GripperEventDetectorData.h> 42 #include <pr2_gripper_sensor_msgs/PR2GripperEventDetectorCommand.h> 62 node_.
advertise<pr2_gripper_sensor_msgs::PR2GripperEventDetectorCommand>(
"event_detector", 1);
101 bool should_abort =
false;
105 ROS_WARN(
"Aborting goal because we have never heard a controller state message.");
110 ROS_WARN(
"Aborting goal because we haven't heard from the controller in %.3lf seconds",
118 has_active_goal_ =
false;
126 if (has_active_goal_)
130 has_active_goal_ =
false;
135 has_active_goal_ =
true;
148 if (active_goal_ == gh)
158 has_active_goal_ =
false;
166 last_controller_state_ = msg;
169 if (!has_active_goal_)
172 pr2_gripper_sensor_msgs::PR2GripperEventDetectorFeedback feedback;
173 feedback.data = *msg;
175 pr2_gripper_sensor_msgs::PR2GripperEventDetectorResult result;
181 if(feedback.data.trigger_conditions_met && (feedback.data.stamp.toSec() > action_start_time.
toSec()+dT ))
183 ROS_INFO(
"Event Detector Triggered: slip %d, acceleration %d",feedback.data.slip_event,feedback.data.acceleration_event);
185 has_active_goal_ =
false;
193 int main(
int argc,
char** argv)
195 ros::init(argc, argv,
"find_contact_node");
void publishFeedback(const Feedback &feedback)
void publish(const boost::shared_ptr< M > &message) const
ros::Time last_movement_time_
ros::Time action_start_time
Subscriber subscribe(const std::string &topic, uint32_t queue_size, void(T::*fp)(M), T *obj, const TransportHints &transport_hints=TransportHints())
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
boost::shared_ptr< const Goal > getGoal() const
actionlib::ActionServer< pr2_gripper_sensor_msgs::PR2GripperEventDetectorAction > GAS
GAS::GoalHandle GoalHandle
void setCanceled(const Result &result=Result(), const std::string &text=std::string(""))
pr2_gripper_sensor_msgs::PR2GripperEventDetectorDataConstPtr last_controller_state_
ROSCPP_DECL void spin(Spinner &spinner)
void setAccepted(const std::string &text=std::string(""))
~Pr2GripperEventDetector()
void setSucceeded(const Result &result=Result(), const std::string &text=std::string(""))
Timer createTimer(Rate r, Handler h, Obj o, bool oneshot=false, bool autostart=true) const
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
void watchdog(const ros::TimerEvent &e)
void setAborted(const Result &result=Result(), const std::string &text=std::string(""))
Pr2GripperEventDetector(ros::NodeHandle &n)
ros::Subscriber sub_controller_state_
ros::Publisher pub_controller_command_
void goalCB(GoalHandle gh)
void cancelCB(GoalHandle gh)
void controllerStateCB(const pr2_gripper_sensor_msgs::PR2GripperEventDetectorDataConstPtr &msg)
ros::Timer watchdog_timer_
int main(int argc, char **argv)