2929 Command , LaunchConfiguration ,
3030 PathJoinSubstitution , ThisLaunchFileDir
3131)
32- from launch_ros .actions import Node
32+ from launch_ros .actions import Node , SetParametersFromFile
3333from launch_ros .substitutions import FindPackageShare
3434from launch_ros2_control .actions import SpawnControllers
3535from launch_ros2_control .descriptions import Controller
@@ -67,15 +67,17 @@ def generate_launch_description():
6767
6868 robot_description_content = LaunchConfiguration ('robot_description_content' )
6969
70+ diffbot_controller_parameters = PathJoinSubstitution ([
71+ FindPackageShare ('ros2_control_demo_example_2' ),
72+ 'config' ,
73+ 'diffbot_controllers.yaml'
74+ ])
75+
7076 ld .add_action (Node (
7177 package = 'controller_manager' ,
7278 executable = 'ros2_control_node' ,
7379 output = 'both' ,
74- parameters = [PathJoinSubstitution ([
75- FindPackageShare ('ros2_control_demo_example_2' ),
76- 'config' ,
77- 'diffbot_controllers.yaml'
78- ])]))
80+ parameters = [diffbot_controller_parameters ]))
7981
8082 ld .add_action (Node (
8183 package = 'robot_state_publisher' ,
@@ -86,6 +88,9 @@ def generate_launch_description():
8688 pid_controller_config_file = PathJoinSubstitution ([
8789 ThisLaunchFileDir (), 'diffbot_pid_controllers.yaml' ])
8890
91+ # Use global parameters to ensure parameter overriding happens in the correct order
92+ ld .add_action (SetParametersFromFile (diffbot_controller_parameters ))
93+
8994 ld .add_action (SpawnControllers ([
9095 Controller (
9196 name = 'pid_controller_left_wheel_joint' ,
0 commit comments