Skip to content

Commit

Permalink
Improve launch utils to support the multiple controller names (#1782)
Browse files Browse the repository at this point in the history
  • Loading branch information
saikishor authored and christophfroehlich committed Oct 13, 2024
1 parent d3de746 commit 89e2ff4
Showing 1 changed file with 27 additions and 11 deletions.
38 changes: 27 additions & 11 deletions controller_manager/controller_manager/launch_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,11 @@
from launch_ros.actions import Node


def generate_load_controller_launch_description(
controller_name, controller_type=None, controller_params_file=None, extra_spawner_args=[]
def generate_controllers_spawner_launch_description(
controller_names: list,
controller_type=None,
controller_params_file=None,
extra_spawner_args=[],
):
"""
Generate launch description for loading a controller using spawner.
Expand All @@ -32,11 +35,11 @@ def generate_load_controller_launch_description(
Examples
--------
# Assuming the controller type and controller parameters are known to the controller_manager
generate_load_controller_launch_description('joint_state_broadcaster')
generate_controllers_spawner_launch_description(['joint_state_broadcaster'])
# Passing controller type and controller parameter file to load
generate_load_controller_launch_description(
'joint_state_broadcaster',
# Passing controller type and parameter file to load the controller
generate_controllers_spawner_launch_description(
['joint_state_broadcaster'],
controller_type='joint_state_broadcaster/JointStateBroadcaster',
controller_params_file=os.path.join(get_package_share_directory('my_pkg'),
'config', 'controller_params.yaml'),
Expand All @@ -55,11 +58,13 @@ def generate_load_controller_launch_description(
description="Wait until the node is interrupted and then unload controller",
)

spawner_arguments = [
controller_name,
"--controller-manager",
LaunchConfiguration("controller_manager_name"),
]
spawner_arguments = controller_names
spawner_arguments.extend(
[
"--controller-manager",
LaunchConfiguration("controller_manager_name"),
]
)

if controller_type:
spawner_arguments += ["--controller-type", controller_type]
Expand Down Expand Up @@ -98,3 +103,14 @@ def generate_load_controller_launch_description(
spawner,
]
)


def generate_load_controller_launch_description(
controller_name: str, controller_type=None, controller_params_file=None, extra_spawner_args=[]
):
return generate_controllers_spawner_launch_description(
controller_names=[controller_name],
controller_type=controller_type,
controller_params_file=controller_params_file,
extra_spawner_args=extra_spawner_args,
)

0 comments on commit 89e2ff4

Please sign in to comment.