Service spoofing - overriding - renaming
The short story:
I have a node N providing a service Nsrv and a node M that calls that service. I would like to to create a node K that overrides Nsrv, that is it creates its own service N_srv that hides the original one. This would like like filtering a service (the same would apply to a topic). However:
- N is defined in an unmodifiable launch file Nlaunch which is called by another unmodifiable launch file Toplaunch.
- No remapping args are provided in the Nlaunch or Toplaunch xml.
- Doing roslaunch Toplaunch Nsrv:=Nsrvoriginal doesn't seem to work.
- In Toplaunch there are other nodes that use by default Nsrv
Any idea about how to do this without modifing Toplaunch or Nlaunch?
The (not so) longer story
I am creating an octomap filter that takes the original octomap and changes bits of it according to several filters. This is necessary as many collision detection packages seem to ignore the allowedcollision parts of planning scene. The octomap is provided by collider node which is launched by pr23dnav, and planningscene uses it. I would like to have my octomap filter sit in between the original octomap and environmentserver with the minimum footprint, that is I don't want to change the whole pr2_3dnav.launch file (or any other launch file that uses the arm navigation stack) but only remap the services. Is there a straightforward way of doing this?
Asked by Lorenzo Riano on 2012-08-09 10:40:24 UTC
Comments