diff --git a/launch_ros/launch_ros/actions/node.py b/launch_ros/launch_ros/actions/node.py index 77a8706c..73887d3e 100644 --- a/launch_ros/launch_ros/actions/node.py +++ b/launch_ros/launch_ros/actions/node.py @@ -310,6 +310,9 @@ def parse(cls, entity: Entity, parser: Parser): args = entity.get_attr('args', optional=True) if args is not None: kwargs['arguments'] = super()._parse_cmdline(args, parser) + ros_args = entity.get_attr('ros_args', optional=True) + if ros_args is not None: + kwargs['ros_arguments'] = super()._parse_cmdline(ros_args, parser) node_name = entity.get_attr('node-name', optional=True) if node_name is not None: kwargs['node_name'] = parser.parse_substitution(node_name) diff --git a/test_launch_ros/test/test_launch_ros/frontend/test_node_frontend.py b/test_launch_ros/test/test_launch_ros/frontend/test_node_frontend.py index 2bec9208..95d31413 100644 --- a/test_launch_ros/test/test_launch_ros/frontend/test_node_frontend.py +++ b/test_launch_ros/test/test_launch_ros/frontend/test_node_frontend.py @@ -37,7 +37,7 @@ def test_launch_frontend_xml(): - + @@ -91,6 +91,7 @@ def test_launch_frontend_yaml(): namespace: my_ns exec_name: my_talker_process args: '--number_of_cycles 1' + ros_args: '--log-level info' param: - name: param1 value: ads @@ -203,6 +204,10 @@ def check_launch_node(file): assert remappings is not None assert len(remappings) == 2 + talker_node_action = ld.describe_sub_entities()[3] + talker_node_cmd_string = ' '.join(talker_node_action.process_details['cmd']) + assert '--ros-args --log-level info' in talker_node_cmd_string + listener_node_action = ld.describe_sub_entities()[4] listener_node_cmd = listener_node_action.process_details['cmd'] assert [