diff --git a/kuka_iiqka_eac_driver/launch/startup.launch.py b/kuka_iiqka_eac_driver/launch/startup.launch.py index 2d207aeb..d29a5cea 100644 --- a/kuka_iiqka_eac_driver/launch/startup.launch.py +++ b/kuka_iiqka_eac_driver/launch/startup.launch.py @@ -145,28 +145,34 @@ def launch_setup(context, *args, **kwargs): ) # Spawn controllers - def controller_spawner(controller_names, activate=False): + def controller_spawner(controller_name, param_file=None, activate=False): arg_list = [ - controller_names, + controller_name, "-c", controller_manager_node, "-n", ns, ] + + # Add param-file if it's provided + if param_file: + arg_list.extend(["--param-file", param_file]) + if not activate: arg_list.append("--inactive") + return Node(package="controller_manager", executable="spawner", arguments=arg_list) - controller_names = [ - "joint_state_broadcaster", - "joint_trajectory_controller", - "joint_group_impedance_controller", - "effort_controller", - "control_mode_handler", - "event_broadcaster", - ] + controllers = { + "joint_state_broadcaster": None, + "joint_trajectory_controller": jtc_config, + "joint_group_impedance_controller": jic_config, + "effort_controller": ec_config, + "control_mode_handler": None, + "event_broadcaster": None, + } - controller_spawners = [controller_spawner(name) for name in controller_names] + controller_spawners = [controller_spawner(name, param_file) for name, param_file in controllers.items()] nodes_to_start = [ control_node, diff --git a/kuka_kss_rsi_driver/launch/startup.launch.py b/kuka_kss_rsi_driver/launch/startup.launch.py index 7f03ca07..b6855e15 100644 --- a/kuka_kss_rsi_driver/launch/startup.launch.py +++ b/kuka_kss_rsi_driver/launch/startup.launch.py @@ -128,24 +128,30 @@ def launch_setup(context, *args, **kwargs): ) # Spawn controllers - def controller_spawner(controller_names, activate=False): + def controller_spawner(controller_name, param_file=None, activate=False): arg_list = [ - controller_names, + controller_name, "-c", controller_manager_node, "-n", ns, ] + + # Add param-file if it's provided + if param_file: + arg_list.extend(["--param-file", param_file]) + if not activate: arg_list.append("--inactive") + return Node(package="controller_manager", executable="spawner", arguments=arg_list) - controller_names = [ - "joint_state_broadcaster", - "joint_trajectory_controller", - ] + controllers = { + "joint_state_broadcaster": None, + "joint_trajectory_controller": jtc_config, + } - controller_spawners = [controller_spawner(name) for name in controller_names] + controller_spawners = [controller_spawner(name, param_file) for name, param_file in controllers.items()] nodes_to_start = [ control_node, diff --git a/kuka_sunrise_fri_driver/launch/startup.launch.py b/kuka_sunrise_fri_driver/launch/startup.launch.py index 913a89e1..9d2e6691 100644 --- a/kuka_sunrise_fri_driver/launch/startup.launch.py +++ b/kuka_sunrise_fri_driver/launch/startup.launch.py @@ -147,31 +147,37 @@ def launch_setup(context, *args, **kwargs): ) # Spawn controllers - def controller_spawner(controller_names, activate=False): + def controller_spawner(controller_name, param_file=None, activate=False): arg_list = [ - controller_names, + controller_name, "-c", controller_manager_node, "-n", ns, ] + + # Add param-file if it's provided + if param_file: + arg_list.extend(["--param-file", param_file]) + if not activate: arg_list.append("--inactive") + return Node(package="controller_manager", executable="spawner", arguments=arg_list) - controller_names = [ - "joint_state_broadcaster", - "external_torque_broadcaster", - "joint_trajectory_controller", - "fri_configuration_controller", - "fri_state_broadcaster", - "joint_group_impedance_controller", - "effort_controller", - "control_mode_handler", - "event_broadcaster", - ] - - controller_spawners = [controller_spawner(name) for name in controller_names] + controllers = { + "joint_state_broadcaster": None, + "external_torque_broadcaster": etb_config, + "joint_trajectory_controller": jtc_config, + "fri_configuration_controller": None, + "fri_state_broadcaster": None, + "joint_group_impedance_controller": jic_config, + "effort_controller": ec_config, + "control_mode_handler": None, + "event_broadcaster": None, + } + + controller_spawners = [controller_spawner(name, param_file) for name, param_file in controllers.items()] nodes_to_start = [ control_node,