rosmon_core: Adding fix for rosparam parsing to equivilate with undocumented behavior of roslaunch #118
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This was a really insidious and potentially controversial patch we needed to make to
rosmon
to handle some undocumented behavior ofroslaunch
.The tl;dr is that
roslaunch
parses all<rosparam>
tags before it parses all<param>
tags. This is in contrast to whatrosmon
does:This manifested itself as a really annoying bug when we were working with mavros. Specifically this launch file of theirs made the above difference matter.
We had setups running this file on roslaunch work with custom
param
inputs properly overriding the mavros frame_id namespaces. But when run on rosmon the customparam
namespaces were not propagated, since in the above logic, theparam
fields got overridden byrosparam
anyway.I believe I did attempt a patch of simply moving
rosparam
aboveparam
but this did not solve the problem since the for-loop would still loop aroundparams
before reachingrosparam
tagsThe solution isn't great but it matches how
roslaunch
works, and shouldn't affect existing users.