def __init__(self): #################### # Discovery #################### (self.service_name, self.service_description, self.service_id) = concert_service_utilities.get_service_info() try: known_resources_topic_name = rocon_python_comms.find_topic('scheduler_msgs/KnownResources', timeout=rospy.rostime.Duration(5.0), unique=True) except rocon_python_comms.NotFoundException as e: rospy.logerr("AdapterSvc : could not locate the scheduler's known resources topic [%s]" % str(e)) sys.exit(1) #################### # Setup #################### self.allocated_resources = [] self.requester = self.setup_requester(self.service_id) self.lock = threading.Lock() self.pending_requests = [] self.allocated_requests = {} self.command='' # Subscribe a topic from BPEL service self.bpel_service_subscriber = rospy.Subscriber('resources_alloc_request', adapter_msgs.Adapter, self.resources_alloc_request_callback) self.bpel_command_subscriber = rospy.Subscriber('command_request', adapter_msgs.Adapter, self.command_request_callback) self.allocation_timeout = rospy.get_param('allocation_timeout', 15.0) # seconds
def test_concert_info(self): try: (name, unused_description, unused_uuid) = concert_service_utilities.get_service_info() if name == 'chatter': self._success = True except concert_service_utilities.ServiceInfoException: pass self.assert_(self._success)
def setup_variables(self): ''' Need to setup the following variables service_priority, service_id, resource_type, available_resource_publisher_name, capture_topic_name ''' (service_name, service_description, service_priority, service_id) = concert_service_utilities.get_service_info() self.service_priority = service_priority self.service_id = service_id self.resource_type = 'rocon_apps/image_stream' self.available_resource_publisher_name = 'available_image_stream' self.capture_topic_name = 'capture_image_stream'
def setup_variables(self): ''' Need to setup the following variables service_priority, service_id, resource_type, available_resource_publisher_name, capture_topic_name ''' (service_name, service_description, service_priority, service_id) = concert_service_utilities.get_service_info() self.service_priority = service_priority self.service_id = service_id self.resource_type = 'rocon_apps/waypoint_nav' self.available_resource_publisher_name = 'available_waypoint_nav' self.capture_topic_name = 'capture_waypoint_nav' # it should be rapp's public interface self._default_map_topic = 'map' self._default_waypoints_topic = 'waypoints'
def __init__(self): #################### # Initiate SOAP Server #################### self.soap_server = Starter() self.soap_server.daemon = True self.soap_server.start() #################### # Discovery #################### (self.service_name, self.service_description, self.service_priority, self.service_id) = concert_service_utilities.get_service_info() try: known_resources_topic_name = rocon_python_comms.find_topic( 'scheduler_msgs/KnownResources', timeout=rospy.rostime.Duration(5.0), unique=True) except rocon_python_comms.NotFoundException as e: rospy.logerr( "AdapterSvc : could not locate the scheduler's known resources topic [%s]" % str(e)) sys.exit(1) #################### # Setup #################### self.allocated_resources = [] self.requester = self.setup_requester(self.service_id) self.lock = threading.Lock() self.pending_requests = [] self.allocated_requests = {} self.command = '' # Subscribe a topic from BPEL service self.bpel_package_subscriber = rospy.Subscriber( 'package_find_request', String, self.package_find_request_callback) self.bpel_service_subscriber = rospy.Subscriber( 'resources_alloc_request', adapter_msgs.Adapter, self.resources_alloc_request_callback) self.bpel_command_subscriber = rospy.Subscriber( 'command_request', adapter_msgs.Adapter, self.command_request_callback) self.allocation_timeout = rospy.get_param('allocation_timeout', 15.0) # seconds
def __init__(self): #################### # Discovery #################### (self.service_name, self.service_description, self.service_id) = concert_service_utilities.get_service_info() try: known_resources_topic_name = rocon_python_comms.find_topic( 'scheduler_msgs/KnownResources', timeout=rospy.rostime.Duration(5.0), unique=True) except rocon_python_comms.NotFoundException as e: rospy.logerr( "TeleopPimp : could not locate the scheduler's known resources topic [%s]" % str(e)) sys.exit(1) #################### # Setup #################### self.concert_clients_subscriber = rospy.Subscriber( known_resources_topic_name, scheduler_msgs.KnownResources, self.ros_scheduler_known_resources_callback) self.available_teleops_publisher = rospy.Publisher( 'available_teleops', rocon_std_msgs.StringArray, latch=True) self.teleopable_robots = [] self.requester = self.setup_requester(self.service_id) self.lock = threading.Lock() self.pending_requests = [] self.allocated_requests = {} self.allocate_teleop_service_pair_server = rocon_python_comms.ServicePairServer( 'capture_teleop', self.ros_capture_teleop_callback, rocon_service_msgs.CaptureTeleopPair, use_threads=True) self.allocation_timeout = 5.0 # seconds
# ############################################################################## # Imports ############################################################################## import rospy import concert_service_link_graph import concert_service_utilities ############################################################################## # Main ############################################################################## if __name__ == '__main__': rospy.init_node('static_link_graph_service', anonymous=True) # this is a uuid.UUID key (name, description, priority, uuid) = concert_service_utilities.get_service_info() filename = rospy.get_param('~filename') impl_name, impl = concert_service_link_graph.load_linkgraph_from_file( filename) if not name: name = impl_name static_link_graph_service = concert_service_link_graph.StaticLinkGraphHandler( name, description, priority, uuid, impl) static_link_graph_service.spin()
def __init__(self): # Initialization (self.service_name, self.service_description, self.service_priority, self.service_id) = concert_service_utilities.get_service_info() self.allocation_timeout = rospy.get_param('allocation_timeout', 15.0) # seconds # Check the scheduler's KnownResources topic try: rocon_python_comms.find_topic('scheduler_msgs/KnownResources', timeout=rospy.rostime.Duration(5.0), unique=True) except rocon_python_comms.NotFoundException as e: rospy.logerr("Could not locate the scheduler's known_resources topic. [%s]" % str(e)) sys.exit(1) # Set up the requester self._set_requester(self.service_id) self.pending_requests = dict() # Prepare a basket for storing allocated resources # Form: {__resource_uri__:{resource:__Resource.msg__, publisher:__Publisher__}, ...} self.linkgraph_info = dict() self.publishers = dict() self.action_clients_map = dict() self.service_proxies_map = dict() # Starting a SOAP server as a thread try: threading.Thread(target=self._start_soap_server).start() except: rospy.loginfo("Error on SOAP Server Thread...")
#!/usr/bin/env python import rospy import yaml import concert_service_roslaunch import concert_service_utilities import map_store.srv import annotations_store.srv from concert_msgs.srv import * from concert_msgs.msg import * if __name__ == '__main__': rospy.init_node('start_cafe_delivery', anonymous=True) (name, description, uuid) = concert_service_utilities.get_service_info() filename = rospy.get_param('~filename') impl_name, impl = concert_service_roslaunch.load_linkgraph_from_file( filename) if not name: name = impl_name sgsh = concert_service_roslaunch.StaticLinkGraphHandler( name, description, uuid, impl) rospy.rostime.wallsleep(3.0) # human time #sgsh._request_resources(True) map_id = rospy.get_param('~map_id', None) # It is hack to wait until the map database is up. # The proper way to do is wait until the service obtained the all resources and request to load a map
def __init__(self): #################### # Discovery #################### (self.service_name, self.service_description, self.service_priority, self.service_id) = concert_service_utilities.get_service_info() #################### # Setup #################### self.requester = self.setup_requester(self.service_id) self.pending_requests = [] self.allocated_requests = [] turtles = rospy.get_param("turtles", default=[{'x_vel':1.0,'z_vel':0.4,'square_scale':1.0}]) rospy.loginfo("TurtlePond : requesting %s turtles" % len(turtles)) for turtle in turtles: x_vel = turtle['x_vel'] z_vel = turtle['z_vel'] scale = turtle['square_scale'] self.request_turtle(x_vel, z_vel, scale)
#!/usr/bin/env python import concert_service_utilities import rospy from concert_service_gazebo import GazeboRobotManager if __name__ == '__main__': rospy.init_node('gazebo_robot_manager') (service_name, unused_service_description, unused_service_id, unused_key) = concert_service_utilities.get_service_info() robots = rospy.get_param('robots', []) #robot_types = rospy.get_param('types', []) world_name = rospy.get_param('world', 'gazebo') world_namespace = '/services/' + service_name + '/' + str(world_name) + '/' concert_name = rospy.get_param('/concert/name') gazebo_manager = GazeboRobotManager(world_namespace, concert_name) gazebo_manager.loginfo('spawning robots : %s' % str(robots)) gazebo_manager.spawn_robots(robots) gazebo_manager.spin() gazebo_manager.loginfo('Bye Bye')
rospy.logerr("Turtle Herder : failed to unlink temporary file [%s]" % str(e)) ############################################################################## # Launch point ############################################################################## if __name__ == "__main__": rospy.init_node("turtle_herder") ( service_name, unused_service_description, service_priority, unused_service_id, ) = concert_service_utilities.get_service_info() turtles = [] turtle_parameters = rospy.get_param("/services/" + service_name + "/turtles", {}) # should check that turtle_parameters is a dict here for name, parameters in turtle_parameters.items(): try: turtles.append( Turtle( name, parameters["rapp_whitelist"], parameters["concert_whitelist"], parameters["disable_zeroconf"], parameters["rosbridge_port"], parameters["rostful_port"], ) )
def __init__(self): # Initialization (self.service_name, self.service_description, self.service_priority, self.service_id) = concert_service_utilities.get_service_info() self.allocation_timeout = rospy.get_param('allocation_timeout', 15.0) # seconds # Check the scheduler's KnownResources topic try: rocon_python_comms.find_topic('scheduler_msgs/KnownResources', timeout=rospy.rostime.Duration(5.0), unique=True) except rocon_python_comms.NotFoundException as e: rospy.logerr("Could not locate the scheduler's known_resources topic. [%s]" % str(e)) sys.exit(1) self.action_invocation_flag = 0 # Set up the requester self._set_requester(self.service_id) self.pending_requests = dict() self.linkgraph_info = dict() self.publishers = dict() self.subscribers = dict() self.action_clients_map = dict() self.service_proxies_map = dict() self.callback_bpel_method_map = dict() # Prepare a basket for storing allocated resources # Form: {__resource_uri__:{resource:__Resource.msg__, publisher:__Publisher__}, ...} self.allocated_resources = dict() # Starting a SOAP server as a thread try: threading.Thread(target=self._start_soap_server).start() except: rospy.loginfo("Error on SOAP Server Thread...") # Set Publisher to invoke rapp #rospy.loginfo("Publisher to invoke rapp is set...") #self.rapp_pub = rospy.Publisher('/service_invoke', String, queue_size=DEFAULT_QUEUE_SIZE) #self.rapp_pub2 = rospy.Publisher("/sphero_backstep_cmd", String, queue_size=10) # Set Subscriber for Testing #self.test_sub = rospy.Subscriber("/fault/test", String, self._test) rospy.loginfo("Register Subscriber: /fault/test")