This allows us to more easily tune parameters in the real world. However, it could make debugging in PyCharm more difficult. A few ideas
Manually add a run config which passes in command-line arguments.
Write a script which translates a launch file into command-line arguments. Then paste these into a run configuration.
Within a node, only look for params in one spot (e.g. a function annotation like click). Then write a wrapper which runs a node as it appears in a launch file, passing all parameters directly to this wrapper and ignoring rosparam entirely.
Make each node either run on import or have a main method (standardize this). Then make a wrapper which reads a launch file (for params/remapping) and a node file (for node name), manually puts the parameters on the parameter server, and runs the node by importing it or running its main function.
This allows us to more easily tune parameters in the real world. However, it could make debugging in PyCharm more difficult. A few ideas