Source code for scripts.NodeB

#! /usr/bin/env python3

"""
.. module:: NodeB
   :platform: Unix
   :synopsis: Python module for the second assignment of Research Track I course
   
.. moduleauthor:: Manuel Delucchi

A more detailed description of the node:

This node prints the number of target canceled and the number of target reached

Subsribes to:
	/reaching_goal/result
	
"""

import rospy
import actionlib
import actionlib.msg
import assignment_2_2022
import assignment_2_2022.msg
	
# Initialize global count variables to 0
goals_cancelled = 0
goals_reached = 0

[docs]def status(msg): """ Function that updates the number of goals reached or cancelled based on the status *Args*: msg """ global goals_cancelled global goals_reached # Update the number of goals reached or cancelled based on the status if msg.status.status == 2: goals_cancelled += 1 elif msg.status.status == 3: goals_reached += 1 print("Number of Goals Reached: ", goals_reached) print("Number of Goals Cancelled: ", goals_cancelled) print("----------------------------------")
if __name__ == '__main__': # Init the Node rospy.init_node("NodeB") # Create a subscriber to listen ot the goal result topic sub_goal = rospy.Subscriber("/reaching_goal/result", assignment_2_2022.msg.PlanningActionResult, status) # Keep the node running rospy.spin()