def disengagement_classification_callback (self, msg): print 'receiving a message from /disengagement_features' #print 'child left: ' + msg.child_left #print 'child right: ' + msg.child_middle #print 'child right: ' + msg.child_right #print 'robot talking? ' + str(self.robots_talking) #print 'robot bouncing?' + str(self.robots_bouncing) x_left = self.append_features_one_line(msg.feats_child_left) x_middle = self.append_features_one_line(msg.feats_child_middle) x_right = self.append_features_one_line(msg.feats_child_right) print 'left ' + str(x_left) print 'middle ' + str(x_middle) print 'right ' + str(x_right) print '\n' predictions = DisengagementPrediction() predictions.pred_child_left = self.clf.predict(x_left) predictions.pred_child_middle = self.clf.predict(x_middle) predictions.pred_child_right = self.clf.predict(x_right) predictions.feats_child_left = msg.feats_child_left predictions.feats_child_middle = msg.feats_child_middle predictions.feats_child_right = msg.feats_child_right self.pub_disengagement.publish(predictions)
def talker(): #pub = rospy.Publisher('interrupt', String, queue_size=10) pub = rospy.Publisher('/disengagement_prediction', DisengagementPrediction, queue_size=2) rospy.init_node('talker', anonymous=True) message_dis_all = DisengagementPrediction() message_dis_all.pred_child_left = 1 message_dis_all.pred_child_middle = 1 message_dis_all.pred_child_right = 1 message_dis_all.feats_child_right = "" message_dis_all.feats_child_middle = "" message_dis_all.feats_child_left = "" message_eng_all = DisengagementPrediction() message_eng_all.pred_child_left = 0 message_eng_all.pred_child_middle = 0 message_eng_all.pred_child_right = 0 message_eng_all.feats_child_right = "" message_eng_all.feats_child_middle = "" message_eng_all.feats_child_left = "" message_dis_left = DisengagementPrediction() message_dis_left.pred_child_left = 1 message_dis_left.pred_child_middle = -1 message_dis_left.pred_child_right = -1 message_dis_left.feats_child_right = '' message_dis_left.feats_child_middle = '' message_dis_left.feats_child_left = '' message_dis_right = DisengagementPrediction() message_dis_right.pred_child_left = -1 message_dis_right.pred_child_middle = -1 message_dis_right.pred_child_right = 1 message_dis_right.feats_child_right = '' message_dis_right.feats_child_middle = '' message_dis_right.feats_child_left = '' message_dis_middle = DisengagementPrediction() message_dis_middle.pred_child_left = -1 message_dis_middle.pred_child_middle = 1 message_dis_middle.pred_child_right = -1 message_dis_middle.feats_child_right = '' message_dis_middle.feats_child_middle = '' message_dis_middle.feats_child_left = '' while not rospy.is_shutdown(): i= raw_input() if i == 'd': pub.publish(message_dis_all) print "disengagement WoZ: sending all disengaged" if i == 'l': pub.publish(message_dis_left) print "disengagement WoZ: sending disengaged left child" if i == 'm': pub.publish(message_dis_middle) print "disengagement WoZ: sending disengaged middle child" if i == 'r': pub.publish(message_dis_right) print "disengagement WoZ: sending disengaged right child" if i == 'e': pub.publish(message_eng_all) print "disengagement WoZ: sending ENGAGED message"