ros2 / ros2/rclcpp

Lifecycle Publishers and Subscriptions should not be Discovered by the ROS 2 Network until Configured

Open
#2,805 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement help wanted
Dominant language
C++
Stars
805
Forks
564
Avg merge
1d 17h
Merged PRs (30d)
27

Description

Description

Lifecycle Publishers and Subscriptions (being implemented with #2715) should not be discovered by the ROS 2 network until the Lifecycle Node has entered the inactive state (meaning it is configured)

This was originally brought up by @fujitatomoya in https://github.com/ros2/rclcpp/pull/2715#discussion_r1909639354.

Motivation

This will allow one to determine whether a node is actually publishing/subscribing to a particular topic. It doesn't make sense to list lifecycle nodes as publishing/subscribing to a specific topic when they haven't even been configured.

Design / Implementation Considerations

The following way to implement this has been suggested by @fujitatomoya in https://github.com/ros2/rclcpp/pull/2715#discussion_r1909639354:

for doing that, probably we need to have state control (configured, inactive) in SubscriberBase class and underlying implementations, and then on_configure callback, we can configure the subscription to be discovered.

Additional Information

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the lifecycle publisher and subscription work in #2715, especially SubscriberBase and the on_configure callback discussed there. Trace how configuration currently affects discovery, then verify that lifecycle publishers and subscriptions are absent from ROS 2 network discovery before the node enters the inactive state and appear after configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
distributed-systems, robotics
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.