Skip to content

Add starting_up_state parameter to Updater#354

Merged
ct2034 merged 9 commits into
ros:ros2from
redvinaa:starting-up-state
May 20, 2026
Merged

Add starting_up_state parameter to Updater#354
ct2034 merged 9 commits into
ros:ros2from
redvinaa:starting-up-state

Conversation

@redvinaa
Copy link
Copy Markdown
Contributor

In the current implementation, when the Updater object is constructed, it sends off an "OK" signal. This could be problematic if we consider "Everything is running as expected" (definition of "OK" status as per REP107), that running is already initialized.

The default behavior doesn't change with this PR, so it wouldn't break anything.
Also, in the python implementation, None can be passed to skip "Node starting up" status publishing altogether.

@ct2034 ct2034 self-assigned this Jun 27, 2024
@ct2034 ct2034 added bug This is a bug in the code (and not a new feature) ros2 PR tackling a ROS2 branch labels Jun 27, 2024
@redvinaa
Copy link
Copy Markdown
Contributor Author

Hi! Can I get an update on this one?

If it wasn't merged because of this test case failing, can I get some help understanding the error? I'm sure a few minutes of someone who already understands these template-based tests can save me hours of trial and error.
After that I can also rebase to fix the conflict.

@ct2034
Copy link
Copy Markdown
Collaborator

ct2034 commented Feb 10, 2025

Hi @redvinaa.
Could we please have a quick discussion about this? I am not sure if it is worth the extra overhead. Yes,

"Everything is running as expected" (definition of "OK" status as per REP107)

On the other hand, I also would not like my system starting in an error state. Your issue could also be solved by additional state, such as proposed in ros2/common_interfaces#268. What is your opinion about that?

@ct2034 ct2034 added enhancement This tackles a new feature of the code (and not a bug) and removed bug This is a bug in the code (and not a new feature) labels May 26, 2025
@redvinaa
Copy link
Copy Markdown
Contributor Author

redvinaa commented Jun 4, 2025

Hi! Sorry for the long delay. It's possible that it would make sense to add new states, but that's a huge change and it appears to be moving very slowly. This PR on the other hand is not breaking, and I think is still useful until the new states get added.

@redvinaa redvinaa force-pushed the starting-up-state branch from 692fd7c to 687c0c4 Compare April 20, 2026 13:58
Comment thread diagnostic_updater/src/diagnostic_updater.cpp Outdated
@ct2034 ct2034 added the backport Mergify will try to backport this. (WIP / Testing the functionality) label Apr 20, 2026
Comment thread diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp Outdated
Comment thread diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp Outdated
Comment thread diagnostic_updater/include/diagnostic_updater/diagnostic_updater.hpp Outdated
Comment thread diagnostic_updater/src/diagnostic_updater.cpp Outdated
@ct2034 ct2034 added the needs more work Someone has worked on this but more work is needed label Apr 20, 2026
@redvinaa
Copy link
Copy Markdown
Contributor Author

redvinaa commented May 4, 2026

I think the xmllint failure is not coming from this PR (no xml was modified). Otherwise, all requested changes have been addressed.

@ct2034 ct2034 removed the needs more work Someone has worked on this but more work is needed label May 20, 2026
Noel215 and others added 5 commits May 20, 2026 17:55
…ros#551)

The previous implementation is using a callback that is invoked for all
the parameter events of all ROS 2 nodes and it filters by node name.
It could lead to race conditions when setting parameters depending on
the depth size of the callback.

With this new approach, the callback is only triggered when setting
parameters for the analyzers node, avoiding possible race conditions
when setting the parameters.

Co-authored-by: Christian Henkel <[email protected]>
Signed-off-by: Christian Henkel <[email protected]>
@ct2034 ct2034 merged commit 60232a7 into ros:ros2 May 20, 2026
5 checks passed
ct2034 added a commit that referenced this pull request May 20, 2026
* Add starting_up_state parameter to Updater

* Lint

* Change to unsigned char

* Remove condition

* Fix example relative path (#550)

* Implement onParametersSet for handling only analyzers node parameters (#551)

The previous implementation is using a callback that is invoked for all
the parameter events of all ROS 2 nodes and it filters by node name.
It could lead to race conditions when setting parameters depending on
the depth size of the callback.

With this new approach, the callback is only triggered when setting
parameters for the analyzers node, avoiding possible race conditions
when setting the parameters.



* Get rid of deprecated rclcpp::spin_some() (#563)



* -Wreorder



---------






(cherry picked from commit 60232a7)

Signed-off-by: mini-1235 <[email protected]>
Signed-off-by: Christian Henkel <[email protected]>
Co-authored-by: Vince Reda <[email protected]>
Co-authored-by: Noel Jiménez García <[email protected]>
Co-authored-by: Christian Henkel <[email protected]>
Co-authored-by: Maurice Alexander Purnawan <[email protected]>
ct2034 added a commit that referenced this pull request May 20, 2026
* Add starting_up_state parameter to Updater

* Lint

* Change to unsigned char

* Remove condition

* Fix example relative path (#550)

* Implement onParametersSet for handling only analyzers node parameters (#551)

The previous implementation is using a callback that is invoked for all
the parameter events of all ROS 2 nodes and it filters by node name.
It could lead to race conditions when setting parameters depending on
the depth size of the callback.

With this new approach, the callback is only triggered when setting
parameters for the analyzers node, avoiding possible race conditions
when setting the parameters.



* Get rid of deprecated rclcpp::spin_some() (#563)



* -Wreorder



---------






(cherry picked from commit 60232a7)

Signed-off-by: mini-1235 <[email protected]>
Signed-off-by: Christian Henkel <[email protected]>
Co-authored-by: Vince Reda <[email protected]>
Co-authored-by: Noel Jiménez García <[email protected]>
Co-authored-by: Christian Henkel <[email protected]>
Co-authored-by: Maurice Alexander Purnawan <[email protected]>
ct2034 added a commit that referenced this pull request May 20, 2026
* Add starting_up_state parameter to Updater

* Lint

* Change to unsigned char

* Remove condition

* Fix example relative path (#550)

* Implement onParametersSet for handling only analyzers node parameters (#551)

The previous implementation is using a callback that is invoked for all
the parameter events of all ROS 2 nodes and it filters by node name.
It could lead to race conditions when setting parameters depending on
the depth size of the callback.

With this new approach, the callback is only triggered when setting
parameters for the analyzers node, avoiding possible race conditions
when setting the parameters.



* Get rid of deprecated rclcpp::spin_some() (#563)



* -Wreorder



---------






(cherry picked from commit 60232a7)

Signed-off-by: mini-1235 <[email protected]>
Signed-off-by: Christian Henkel <[email protected]>
Co-authored-by: Vince Reda <[email protected]>
Co-authored-by: Noel Jiménez García <[email protected]>
Co-authored-by: Christian Henkel <[email protected]>
Co-authored-by: Maurice Alexander Purnawan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport Mergify will try to backport this. (WIP / Testing the functionality) enhancement This tackles a new feature of the code (and not a bug) ros2 PR tackling a ROS2 branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants