Is your feature request related to a problem? Please describe.
I was attempting to do some dynamic controller configuration and remapping from a launch file (using the xml front-end).
During this I ran into parsing issues with the dynamically created --controller-ros-args, since launch attempts to split the arguments in an unescapable way (hardcoded it works fine, so no real issue in a more normal case).
Furthermore, it is currently not easily possible to set controller parameters that are defined only in a launch file.
Describe the solution you'd like
A launch extension, like provided with ros_gz_sim and ros_gz_bridge in which special launch actions get exposed to spawn and unspawn hardware.
This could be part of the controller_manager package (similar to the Gazebo case) or a separate package (launch_ros2_control), similar to launch_ros.
Describe alternatives you've considered
Writing a Python launch file, which is inconvenient since it is introducing a lot more more complexity to do something relatively simple.
While using a launch front-end (like launch_xml or launch_yaml) could also easily suffice.
Additional context
I would be willing to help realize this feature.
Is your feature request related to a problem? Please describe.
I was attempting to do some dynamic controller configuration and remapping from a launch file (using the xml front-end).
During this I ran into parsing issues with the dynamically created
--controller-ros-args, sincelaunchattempts to split the arguments in an unescapable way (hardcoded it works fine, so no real issue in a more normal case).Furthermore, it is currently not easily possible to set controller parameters that are defined only in a launch file.
Describe the solution you'd like
A
launchextension, like provided withros_gz_simandros_gz_bridgein which special launch actions get exposed to spawn and unspawn hardware.This could be part of the
controller_managerpackage (similar to the Gazebo case) or a separate package (launch_ros2_control), similar tolaunch_ros.Describe alternatives you've considered
Writing a Python launch file, which is inconvenient since it is introducing a lot more more complexity to do something relatively simple.
While using a launch front-end (like
launch_xmlorlaunch_yaml) could also easily suffice.Additional context
I would be willing to help realize this feature.