Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nodelet namespacing issues #7

Open
stonier opened this issue Aug 14, 2013 · 5 comments
Open

Nodelet namespacing issues #7

stonier opened this issue Aug 14, 2013 · 5 comments

Comments

@stonier
Copy link
Contributor

stonier commented Aug 14, 2013

Test catkin package: https://github.com/stonier/ros_testing

Namespacing for public and private is broken in a particular configuration: https://github.com/stonier/ros_testing/blob/master/namespaced_manager.launch

The results of that launch file put public and private topics in quite disparate places:

/dude/private
/family/public

where it should probably be

/dude/private
/public

I have three other namespace variations there, all of which behave as expected.

Seems to be only a problem if the nodelet's parent namespace is the root, '/'.

@progtologist
Copy link

This is a really important issue that has not received any attention since 2013! The problem itself roots to the NodeHandle constructor API, which apparently has no real global namespace constructor. I have made a minor change in roscpp and issue a pull request, though I doubt it will be integrated anytime soon.

@tfoote
Copy link
Member

tfoote commented Jan 22, 2016

@progtologist Can you link to your pull request here so we can review it?

@progtologist
Copy link

@tfoote I postponed the PR because I found a minor unresolved issue while testing it. I will work on it in the next days and link the PR here once I have tested it extensively.

@progtologist
Copy link

@tfoote I have created a PR here (#37) that unit tests the nodehandles. I tried to trace it back in roscpp but I got lost at some point (debugging with nodelets and launchfiles is not that trivial for me).

As you can see, one of the tests is failing. The problem is that, when the NodeHandle constructor receives a NodeHandle with the namespace "/", it tries to resolve this, instead of assuming it is a global nodehandle.

Also, this raises the question, whether there is actlually a global nodehandle. since, in my point of view, the global nodehandle is actually a namespaced nodehandle.

@tfoote
Copy link
Member

tfoote commented Feb 10, 2016

@progtologist Thanks for the unit tests. That will be very helpful for tracking this down. I haven't looked into the full details, but based on what you've described it, I would have expected the '/' to resolve immediately to itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants