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)
Example #2
0
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"