Sub-node name is ignored in service name resolving
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 805
- Forks
- 564
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 27
Description
When I create sub-nodes using Node::create_sub_node() and then resolve a private name on this sub-node, the sub-namespace is ignored.
auto nh_left = this->create_sub_node( "left" );
std::string resolved_service_name = nh_left->get_node_base_interface()->resolve_topic_or_service_name(
"~/set_camera_info", true, false );
Resolves to: /test_cam_info_manager/set_camera_info
But I would expect it to resolve to: /test_cam_info_manager/**left**/set_camera_info
Background:
In order to create two CameraInfoManager's for a stereo setup, I need some way to push the CameraInfoManagers into a sub-namespace. I thought this is exactly what sub-nodes are for, but it's not working. Original issue: https://github.com/ros-perception/image_common/issues/341
Note: In rolling release, I believe this can be circumvented because CameraInfoManager has a new namespace parameter, but this is not the case in jazzy.
Required Info:
- Operating System:
- Ubuntu 24.04
- Installation type:
- binaries
- Version or commit hash:
- jazzy
- Client library (if applicable):
- rclcpp
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the Jazzy behavior through Node::create_sub_node() and resolve_topic_or_service_name() with the provided private name. Trace how the sub-node namespace is handled, then verify that the resolved name includes /left/ as expected and that the original resolution behavior remains correct.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- api
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100