orocos / rtt_ros_integration

Orocos-ROS integration libraries and tools
BSD 3-Clause "New" or "Revised" License
84 stars 56 forks source link

Adding ROS namespace manipulation operations #141

Open meyerj opened 4 years ago

meyerj commented 4 years ago

Copy of https://github.com/jhu-lcsr-forks/rtt_ros_integration/pull/59 by @jbohren:

This aims to resolve issues mentioned in https://github.com/orocos/rtt_ros_integration/issues/35

This allows us to do the following (in ops for example):

ros.setNS("/controllers/left")
// call function which creates other components
// all ROS names will be scoped to "/controllers/left"

ros.setNS("/controllers/right")
// call same function which creates other components
// all ROS names will be scoped to "/controllers/right"

ros.resetNS()

Or, if you have multiple deployers, you could run this code in each of them, without having ROS namespace collisions (unless you do something with an absolute namespace):

ros.pushNS("deployer_1")
// create a bunch of components
// all ROS names will be scoped to "deployer_1"
ros.popNS()

@smits @meyerj @konradb3 @cpaxton What do you guys think?