in robot_ws/src/cloudwatch_robot/nodes/monitor_obstacle_distance.py [0:0]
def report_metric(self, msg):
filtered_scan = self.filter_scan(msg)
if not filtered_scan:
rospy.loginfo(
'No obstacles with scan range (%s,%s)', msg.range_min, msg.range_max
)
return
min_distance = min(filtered_scan)
rospy.loginfo('Nearest obstacle: %s', min_distance)
header = Header()
header.stamp = rospy.Time.from_sec(time.time())
dimensions = [
MetricDimension(name='robot_id', value='Turtlebot3'),
MetricDimension(name='category', value='RobotOperations'),
]
metric = MetricData(
header=header,
metric_name='nearest_obstacle_distance',
unit=MetricData.UNIT_NONE,
value=min_distance,
time_stamp=rospy.Time.from_sec(time.time()),
dimensions=dimensions,
)
self.metrics_pub.publish(MetricList([metric]))