3 from cv_bridge
import CvBridge
4 from sound_classification.msg
import InSound
5 from sensor_msgs.msg
import Image
7 from topic_tools
import LazyTransport
12 Detect whether the robot is in sound or not by sound volume.
14 Robot is detected as 'in_sound' when
15 the average power of pixels is more then 'power_per_pixel_threshold'
19 super(self.__class__, self).
__init__()
21 self.
threshold = rospy.get_param(
'~power_per_pixel_threshold', 0)
26 self.
sub = rospy.Subscriber(
'~input', Image, self.
_cb)
34 pub_msg.header = msg.header
35 power_per_pixel = img.sum() / img.size
36 rospy.logdebug(
'power_per_pixel: {}, threshold: {}'.format(
39 rospy.logdebug(
'### In sound ###')
40 pub_msg.in_sound =
True
42 rospy.logdebug(
'No sound')
43 pub_msg.in_sound =
False
44 self.
pub.publish(pub_msg)
47 if __name__ ==
'__main__':
48 rospy.init_node(
'sound_detector_volume')