From 130f00b94604b90cc6cd9529f550f963d9ec02e8 Mon Sep 17 00:00:00 2001 From: Jihoon Lee Date: Fri, 24 Oct 2014 13:52:31 +0900 Subject: [PATCH 1/5] add sim param --- rocon_app_manager/src/rocon_app_manager/ros_parameters.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rocon_app_manager/src/rocon_app_manager/ros_parameters.py b/rocon_app_manager/src/rocon_app_manager/ros_parameters.py index 597374b..3c652d3 100644 --- a/rocon_app_manager/src/rocon_app_manager/ros_parameters.py +++ b/rocon_app_manager/src/rocon_app_manager/ros_parameters.py @@ -41,4 +41,7 @@ def setup_ros_parameters(): # Preferred rapp configuration param['preferred'] = rospy.get_param('~preferred',[]) + # Simulation + param['sim'] = rospy.get_param('~sim', False) + return param From db386d42bb6106d3d3f81cd3d663f698ff490158 Mon Sep 17 00:00:00 2001 From: Jihoon Lee Date: Fri, 24 Oct 2014 14:14:25 +0900 Subject: [PATCH 2/5] process sim param --- rocon_app_manager/src/rocon_app_manager/rapp.py | 6 ++++-- .../src/rocon_app_manager/rapp_manager.py | 1 + rocon_app_manager/src/rocon_app_manager/utils.py | 11 ++++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/rocon_app_manager/src/rocon_app_manager/rapp.py b/rocon_app_manager/src/rocon_app_manager/rapp.py index a314f65..55cdc46 100644 --- a/rocon_app_manager/src/rocon_app_manager/rapp.py +++ b/rocon_app_manager/src/rocon_app_manager/rapp.py @@ -107,7 +107,7 @@ def install(self, dependency_checker): return success, str() - def start(self, application_namespace, gateway_name, rocon_uri_string, remappings=[], parameters=[], force_screen=False, + def start(self, application_namespace, gateway_name, rocon_uri_string, remappings=[], parameters=[], force_screen=False, sim=False, caps_list=None): ''' Some important jobs here. @@ -131,6 +131,8 @@ def start(self, application_namespace, gateway_name, rocon_uri_string, remapping :type parameters: list of rocon_std_msgs.msg.KeyValue :param force_screen: whether to roslaunch the app with --screen or not :type force_screen: boolean + :param sim: whether the rapp manager is for simulated robot or not + :type sim: boolean :param caps_list: this holds the list of available capabilities, if app needs capabilities :type caps_list: CapsList ''' @@ -142,7 +144,7 @@ def start(self, application_namespace, gateway_name, rocon_uri_string, remapping public_parameters = utils.apply_requested_public_parameters(data['public_parameters'], parameters) temp = tempfile.NamedTemporaryFile(mode='w+t', delete=False) - self._launch = utils.prepare_launcher(data, public_parameters, application_namespace, gateway_name, rocon_uri_string, capability_nodelet_manager_name, force_screen, temp) + self._launch = utils.prepare_launcher(data, public_parameters, application_namespace, gateway_name, rocon_uri_string, capability_nodelet_manager_name, force_screen, sim, temp) # Better logic for the future, 1) get remap rules from capabilities. 2) get remap rules from requets. 3) apply them all. It would be clearer to understand the logic and easily upgradable if 'required_capabilities' in data: # apply capability-specific remappings needed diff --git a/rocon_app_manager/src/rocon_app_manager/rapp_manager.py b/rocon_app_manager/src/rocon_app_manager/rapp_manager.py index 81975a7..20cd70b 100644 --- a/rocon_app_manager/src/rocon_app_manager/rapp_manager.py +++ b/rocon_app_manager/src/rocon_app_manager/rapp_manager.py @@ -559,6 +559,7 @@ def _process_start_app(self, req): req.remappings, req.parameters, self._param['app_output_to_screen'], + self._param['sim'], self.caps_list) rospy.loginfo("Rapp Manager : %s" % self._remote_name) diff --git a/rocon_app_manager/src/rocon_app_manager/utils.py b/rocon_app_manager/src/rocon_app_manager/utils.py index f60e00c..e46cd9c 100644 --- a/rocon_app_manager/src/rocon_app_manager/utils.py +++ b/rocon_app_manager/src/rocon_app_manager/utils.py @@ -33,7 +33,7 @@ def dict_to_KeyValue(d): def _prepare_launch_text(launch_file, launch_args, public_parameters, application_namespace, - gateway_name, rocon_uri_string, capability_server_nodelet_manager_name=None): + gateway_name, rocon_uri_string, sim, capability_server_nodelet_manager_name=None): ''' Prepare the launch file text. This essentially wraps the rapp launcher with the following roslaunch elements: @@ -60,6 +60,8 @@ def _prepare_launch_text(launch_file, launch_args, public_parameters, applicatio :type gateway_name: str :param rocon_uri_string: used to pass down information about the platform that is running this app to the app itself. :type rocon_uri_string: str - a rocon uri string + :param sim: true if rapp manager is for simulated robot + :type sim: boolen The rocon_uri_string variable is a fixed identifier for this app manager's platform - i.e. no special characters or wildcards should be contained therein. @@ -71,6 +73,7 @@ def _prepare_launch_text(launch_file, launch_args, public_parameters, applicatio launch_arg_mapping['gateway_name'] = gateway_name launch_arg_mapping['rocon_uri'] = rocon_uri_string launch_arg_mapping['capability_server_nodelet_manager_name'] = capability_server_nodelet_manager_name + launch_arg_mapping['sim'] = sim if(application_namespace == ""): launch_text = '\n \n' % (launch_file) @@ -110,7 +113,7 @@ def resolve_chain_remappings(nodes): n.remap_args = new_remap_args_dict.items() -def prepare_launcher(data, public_parameters, application_namespace, gateway_name, rocon_uri_string, capability_nodelet_manager_name, force_screen, temp): +def prepare_launcher(data, public_parameters, application_namespace, gateway_name, rocon_uri_string, capability_nodelet_manager_name, force_screen, sim, temp): ''' prepare roslaunch to start rapp. ''' @@ -122,7 +125,9 @@ def prepare_launcher(data, public_parameters, application_namespace, gateway_nam application_namespace, gateway_name, rocon_uri_string, - capability_nodelet_manager_name) + sim, + capability_nodelet_manager_name + ) temp.write(launch_text) temp.close() # unlink it later From cdf463b88b08ae046e81ae0477756e79f87caa5e Mon Sep 17 00:00:00 2001 From: Jihoon Lee Date: Fri, 24 Oct 2014 15:21:17 +0900 Subject: [PATCH 3/5] sim parameter passing --- rocon_app_manager/launch/concert_client.launch | 4 ++++ rocon_app_manager/launch/includes/_app_manager.xml | 2 ++ rocon_app_manager/launch/multimaster.launch | 2 ++ rocon_app_utilities/src/rocon_app_utilities/rapp_loader.py | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/rocon_app_manager/launch/concert_client.launch b/rocon_app_manager/launch/concert_client.launch index 29fb8f7..07f4848 100644 --- a/rocon_app_manager/launch/concert_client.launch +++ b/rocon_app_manager/launch/concert_client.launch @@ -33,6 +33,9 @@ + + + @@ -59,6 +62,7 @@ + diff --git a/rocon_app_manager/launch/includes/_app_manager.xml b/rocon_app_manager/launch/includes/_app_manager.xml index 947a84e..c486d62 100644 --- a/rocon_app_manager/launch/includes/_app_manager.xml +++ b/rocon_app_manager/launch/includes/_app_manager.xml @@ -12,6 +12,7 @@ + @@ -28,6 +29,7 @@ + diff --git a/rocon_app_manager/launch/multimaster.launch b/rocon_app_manager/launch/multimaster.launch index 2c7aaa5..77c88fc 100644 --- a/rocon_app_manager/launch/multimaster.launch +++ b/rocon_app_manager/launch/multimaster.launch @@ -46,6 +46,7 @@ + @@ -56,6 +57,7 @@ + diff --git a/rocon_app_utilities/src/rocon_app_utilities/rapp_loader.py b/rocon_app_utilities/src/rocon_app_utilities/rapp_loader.py index 0dca098..4798e3b 100644 --- a/rocon_app_utilities/src/rocon_app_utilities/rapp_loader.py +++ b/rocon_app_utilities/src/rocon_app_utilities/rapp_loader.py @@ -198,7 +198,7 @@ def _get_standard_args(roslaunch_file): :raises RappMalformedException: if launch file format is invalid ''' - standard_args = ['gateway_name', 'application_namespace', 'rocon_uri', 'capability_server_nodelet_manager_name'] + standard_args = ['gateway_name', 'application_namespace', 'rocon_uri', 'capability_server_nodelet_manager_name', 'sim'] try: available_args = _get_available_args(roslaunch_file) From b1a06e0c01e3e6f3112430233bf670f2ba9d404a Mon Sep 17 00:00:00 2001 From: Jihoon Lee Date: Wed, 29 Oct 2014 17:16:40 +0900 Subject: [PATCH 4/5] add sim param in standalone launcher --- rocon_app_manager/launch/concert_client.launch | 2 +- rocon_app_manager/launch/multimaster.launch | 2 +- rocon_app_manager/launch/standalone.launch | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/rocon_app_manager/launch/concert_client.launch b/rocon_app_manager/launch/concert_client.launch index 07f4848..7ac3f8d 100644 --- a/rocon_app_manager/launch/concert_client.launch +++ b/rocon_app_manager/launch/concert_client.launch @@ -34,7 +34,7 @@ - + diff --git a/rocon_app_manager/launch/multimaster.launch b/rocon_app_manager/launch/multimaster.launch index 77c88fc..2a3fbb7 100644 --- a/rocon_app_manager/launch/multimaster.launch +++ b/rocon_app_manager/launch/multimaster.launch @@ -46,7 +46,7 @@ - + diff --git a/rocon_app_manager/launch/standalone.launch b/rocon_app_manager/launch/standalone.launch index 8f30e6b..d536549 100644 --- a/rocon_app_manager/launch/standalone.launch +++ b/rocon_app_manager/launch/standalone.launch @@ -30,7 +30,8 @@ - + + @@ -40,6 +41,7 @@ + From 902fca6f74076471258e873ed4fad6e82a527180 Mon Sep 17 00:00:00 2001 From: Jihoon Lee Date: Mon, 3 Nov 2014 14:45:07 +0900 Subject: [PATCH 5/5] rename sim to simulation --- rocon_app_manager/launch/concert_client.launch | 4 ++-- rocon_app_manager/launch/includes/_app_manager.xml | 4 ++-- rocon_app_manager/launch/multimaster.launch | 4 ++-- rocon_app_manager/launch/standalone.launch | 4 ++-- rocon_app_manager/src/rocon_app_manager/rapp.py | 8 ++++---- .../src/rocon_app_manager/rapp_manager.py | 2 +- .../src/rocon_app_manager/ros_parameters.py | 2 +- rocon_app_manager/src/rocon_app_manager/utils.py | 12 ++++++------ .../src/rocon_app_utilities/rapp_loader.py | 2 +- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/rocon_app_manager/launch/concert_client.launch b/rocon_app_manager/launch/concert_client.launch index 7ac3f8d..4ef62e3 100644 --- a/rocon_app_manager/launch/concert_client.launch +++ b/rocon_app_manager/launch/concert_client.launch @@ -34,7 +34,7 @@ - + @@ -62,7 +62,7 @@ - + diff --git a/rocon_app_manager/launch/includes/_app_manager.xml b/rocon_app_manager/launch/includes/_app_manager.xml index c486d62..4561ca6 100644 --- a/rocon_app_manager/launch/includes/_app_manager.xml +++ b/rocon_app_manager/launch/includes/_app_manager.xml @@ -12,7 +12,7 @@ - + @@ -29,7 +29,7 @@ - + diff --git a/rocon_app_manager/launch/multimaster.launch b/rocon_app_manager/launch/multimaster.launch index 2a3fbb7..8776ac4 100644 --- a/rocon_app_manager/launch/multimaster.launch +++ b/rocon_app_manager/launch/multimaster.launch @@ -46,7 +46,7 @@ - + @@ -57,7 +57,7 @@ - + diff --git a/rocon_app_manager/launch/standalone.launch b/rocon_app_manager/launch/standalone.launch index d536549..a345703 100644 --- a/rocon_app_manager/launch/standalone.launch +++ b/rocon_app_manager/launch/standalone.launch @@ -31,7 +31,7 @@ - + @@ -41,7 +41,7 @@ - + diff --git a/rocon_app_manager/src/rocon_app_manager/rapp.py b/rocon_app_manager/src/rocon_app_manager/rapp.py index 55cdc46..07d49bc 100644 --- a/rocon_app_manager/src/rocon_app_manager/rapp.py +++ b/rocon_app_manager/src/rocon_app_manager/rapp.py @@ -107,7 +107,7 @@ def install(self, dependency_checker): return success, str() - def start(self, application_namespace, gateway_name, rocon_uri_string, remappings=[], parameters=[], force_screen=False, sim=False, + def start(self, application_namespace, gateway_name, rocon_uri_string, remappings=[], parameters=[], force_screen=False, simulation=False, caps_list=None): ''' Some important jobs here. @@ -131,8 +131,8 @@ def start(self, application_namespace, gateway_name, rocon_uri_string, remapping :type parameters: list of rocon_std_msgs.msg.KeyValue :param force_screen: whether to roslaunch the app with --screen or not :type force_screen: boolean - :param sim: whether the rapp manager is for simulated robot or not - :type sim: boolean + :param simulation: whether the rapp manager is for simulated robot or not + :type simulation: boolean :param caps_list: this holds the list of available capabilities, if app needs capabilities :type caps_list: CapsList ''' @@ -144,7 +144,7 @@ def start(self, application_namespace, gateway_name, rocon_uri_string, remapping public_parameters = utils.apply_requested_public_parameters(data['public_parameters'], parameters) temp = tempfile.NamedTemporaryFile(mode='w+t', delete=False) - self._launch = utils.prepare_launcher(data, public_parameters, application_namespace, gateway_name, rocon_uri_string, capability_nodelet_manager_name, force_screen, sim, temp) + self._launch = utils.prepare_launcher(data, public_parameters, application_namespace, gateway_name, rocon_uri_string, capability_nodelet_manager_name, force_screen, simulation, temp) # Better logic for the future, 1) get remap rules from capabilities. 2) get remap rules from requets. 3) apply them all. It would be clearer to understand the logic and easily upgradable if 'required_capabilities' in data: # apply capability-specific remappings needed diff --git a/rocon_app_manager/src/rocon_app_manager/rapp_manager.py b/rocon_app_manager/src/rocon_app_manager/rapp_manager.py index 20cd70b..ff0f610 100644 --- a/rocon_app_manager/src/rocon_app_manager/rapp_manager.py +++ b/rocon_app_manager/src/rocon_app_manager/rapp_manager.py @@ -559,7 +559,7 @@ def _process_start_app(self, req): req.remappings, req.parameters, self._param['app_output_to_screen'], - self._param['sim'], + self._param['simulation'], self.caps_list) rospy.loginfo("Rapp Manager : %s" % self._remote_name) diff --git a/rocon_app_manager/src/rocon_app_manager/ros_parameters.py b/rocon_app_manager/src/rocon_app_manager/ros_parameters.py index 3c652d3..4d05bc8 100644 --- a/rocon_app_manager/src/rocon_app_manager/ros_parameters.py +++ b/rocon_app_manager/src/rocon_app_manager/ros_parameters.py @@ -42,6 +42,6 @@ def setup_ros_parameters(): param['preferred'] = rospy.get_param('~preferred',[]) # Simulation - param['sim'] = rospy.get_param('~sim', False) + param['simulation'] = rospy.get_param('~simulation', False) return param diff --git a/rocon_app_manager/src/rocon_app_manager/utils.py b/rocon_app_manager/src/rocon_app_manager/utils.py index e46cd9c..288fea9 100644 --- a/rocon_app_manager/src/rocon_app_manager/utils.py +++ b/rocon_app_manager/src/rocon_app_manager/utils.py @@ -33,7 +33,7 @@ def dict_to_KeyValue(d): def _prepare_launch_text(launch_file, launch_args, public_parameters, application_namespace, - gateway_name, rocon_uri_string, sim, capability_server_nodelet_manager_name=None): + gateway_name, rocon_uri_string, simulation, capability_server_nodelet_manager_name=None): ''' Prepare the launch file text. This essentially wraps the rapp launcher with the following roslaunch elements: @@ -60,8 +60,8 @@ def _prepare_launch_text(launch_file, launch_args, public_parameters, applicatio :type gateway_name: str :param rocon_uri_string: used to pass down information about the platform that is running this app to the app itself. :type rocon_uri_string: str - a rocon uri string - :param sim: true if rapp manager is for simulated robot - :type sim: boolen + :param simulation: true if rapp manager is for simulated robot + :type simulation: boolen The rocon_uri_string variable is a fixed identifier for this app manager's platform - i.e. no special characters or wildcards should be contained therein. @@ -73,7 +73,7 @@ def _prepare_launch_text(launch_file, launch_args, public_parameters, applicatio launch_arg_mapping['gateway_name'] = gateway_name launch_arg_mapping['rocon_uri'] = rocon_uri_string launch_arg_mapping['capability_server_nodelet_manager_name'] = capability_server_nodelet_manager_name - launch_arg_mapping['sim'] = sim + launch_arg_mapping['simulation'] = simulation if(application_namespace == ""): launch_text = '\n \n' % (launch_file) @@ -113,7 +113,7 @@ def resolve_chain_remappings(nodes): n.remap_args = new_remap_args_dict.items() -def prepare_launcher(data, public_parameters, application_namespace, gateway_name, rocon_uri_string, capability_nodelet_manager_name, force_screen, sim, temp): +def prepare_launcher(data, public_parameters, application_namespace, gateway_name, rocon_uri_string, capability_nodelet_manager_name, force_screen, simulation, temp): ''' prepare roslaunch to start rapp. ''' @@ -125,7 +125,7 @@ def prepare_launcher(data, public_parameters, application_namespace, gateway_nam application_namespace, gateway_name, rocon_uri_string, - sim, + simulation, capability_nodelet_manager_name ) temp.write(launch_text) diff --git a/rocon_app_utilities/src/rocon_app_utilities/rapp_loader.py b/rocon_app_utilities/src/rocon_app_utilities/rapp_loader.py index 4798e3b..e2fb2ce 100644 --- a/rocon_app_utilities/src/rocon_app_utilities/rapp_loader.py +++ b/rocon_app_utilities/src/rocon_app_utilities/rapp_loader.py @@ -198,7 +198,7 @@ def _get_standard_args(roslaunch_file): :raises RappMalformedException: if launch file format is invalid ''' - standard_args = ['gateway_name', 'application_namespace', 'rocon_uri', 'capability_server_nodelet_manager_name', 'sim'] + standard_args = ['gateway_name', 'application_namespace', 'rocon_uri', 'capability_server_nodelet_manager_name', 'simulation'] try: available_args = _get_available_args(roslaunch_file)