Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ repos:
rev: 1.6.1
hooks:
- id: copyright-required
exclude: '(^\.git/|(\.ini|\.json|\.service|__init__\.py|\.md|\.gitkeep|\.conf|LICENSE|\.toml|\.template|\.style\..*|\.gitattributes|\.gitignore|\.editorconfig|\.bash-completion|\.install|\.links|changelog|debian/source/format|.codespellrc|copyright|ament_code_style\.cfg|test_pep257\.py|test_flake8\.py|test_copyright\.py)$)'
exclude: '(^\.git/|(\.ini|\.json|\.service|__init__\.py|\.md|\.rst|\.gitkeep|\.conf|LICENSE|\.toml|\.template|\.style\..*|\.gitattributes|\.gitignore|\.editorconfig|\.bash-completion|\.install|\.links|changelog|debian/source/format|.codespellrc|copyright|ament_code_style\.cfg|test_pep257\.py|test_flake8\.py|test_copyright\.py)$)'
- repo: local
hooks:
- id: uncrustify
Expand All @@ -56,3 +56,4 @@ repos:
rev: v2.4.1
hooks:
- id: codespell
exclude: '\.rst$'
55 changes: 55 additions & 0 deletions greenwave_monitor/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package greenwave_monitor
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1.0.0 (2026-02-27)
------------------
* Fix flakey minimal publisher shutdown (`#36 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/36>`_)
* Fix errors overlaying on topics in ncurses frontend (`#35 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/35>`_)
Logs are now directed to a logfile instead of the screen by default.
---------
* Fix issue `#23 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/23>`_: prevent duplicate diagnostics when external node is already publishing (`#33 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/33>`_)
Fixes `#23 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/23>`_.
Subscribe to /diagnostics in GreenwaveMonitor to track topic names already published externally. add_topic() now returns an error if a topic's diagnostics are already being published by an external node, preventing duplicate and potentially conflicting diagnostic entries.
----
* Unify timestamp checks and fix headerless FPS checks (`#31 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/31>`_)
Fixes `#18 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/18>`_ . Also migrates the time check logic to one shared class configured with flags. This unifies logic between node and message time allowing for them to both verify similar failure cases. The current checks that can be enabled are:
checkFpsJitter: the normal check previously implemented where we produce diagnostic errors if the time between frames is ever outside of the FPS tolerance
checkFpsWindow: a new check that uses the average frame rate from the FPS window to evaluate if it is out of range. This is useful for timestamps that have high variance and may trigger the FpsJitter check frequently.
checkIncreasing: same check from before but also being applied to node time now too. Makes sure time is always increasing.
Alongside the new checks there is a ROS parameter gw_time_check_preset. This parameter accepts presets HeaderWithFallback, HeaderOnly, NodeOnly, and None. The HeaderWithFallback configures the tests to use message time when a message timestamp exists and node time when it does not. None does not change the configuration and allows the user to fully specify the checks they want to be enabled. The *Only presets enable flags specifically for Header or Node time.
* Remove ament_target_dependencies to match ROS 2 Rolling (`#32 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/32>`_)
Apparently ROS 2 on rolling is fully deprecating ament_target_dependencies 😮 `#572 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/572>`_
Update the Cmakelist to do the same. Recently in Jan 2026 it was fully removed. The post I linked is the reasons for doing it.
---
* Add more docs and a clean integration example publisher. (`#29 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/29>`_)
Adds docs for how to inline greenwave diagnostics into a node. Include clean example node, add an agents.md file.
* Add pre-commit for better linting (`#25 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/25>`_)
Adds a pre-commit config that uses uncrustify and flake8 just like ament. ament isn't used directly since I wanted formatting to occur outside of a ROS environment when making small fixes. Also has other tools like whitespace, newline, copyright, yaml checks, code spelling, shell script formatting, and commit sign off checking.
Useful for fixing most issues with linting before it is pushed. Automatically reformats your commits, fixes copyright year issues, etc.
* Use parameter yaml on startup for configuring greenwave monitor + rename to greenwave diagnostics (`#22 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/22>`_)
Add support for ROS parameter YAML on startup and rename message diagnostics to greenwave diagnostics to match parameter yaml group name. Look at the example.yaml if you want to see how it is integrated.
Fixes a few bugs/makes the system robust also. Specifically `#16 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/16>`_ .
* Add --hide-unmonitored flag to ncurses frontend (`#20 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/20>`_)
Add a --hide-unmonitored flag to the ncurses frontend. This makes it possible for the user to start greenwave monitor with only the topics that are being monitored visible.
Tests were also added to verify the argument parsing is functional with the frontend.
* Relax test tolerances to avoid flaky tests in buildfarm. (`#17 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/17>`_)
* Make r2s_gw an optional dependency (`#13 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/13>`_)
r2s_gw requires a version of textual that the ubuntu noble Debians don't have, which makes getting into ros2 build farm annoying, so just make it it's own repo that is optional, and use curses UI as the primary.
Move r2s_gw into seperate repo, r2s_gw depends on greenwave_monitor, but no dependencies in the other direction.
* Fix mixing ament_cmake_auto rosdep, update CI to use base images rather than ros-core images
* replace large latency values with N/A, add latency note to README (`#11 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/11>`_)
* add N/A when latency is nonsense
* minor fixup to make types in messaage_diagnostics consistent
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: "messaage_diagnostics" should be "message_diagnostics"

Suggested change
* minor fixup to make types in messaage_diagnostics consistent
* minor fixup to make types in message_diagnostics consistent

* update readme and update tests
* Contributors: Sean Gillen, bmchalenv

0.1.0 (2025-10-09)
------------------
* Update package.xml to add authors tag (`#9 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/9>`_)
* Change logic for UI adaptor to still work with NITROS (`#7 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/7>`_)
* Fixup headers, maintainers, README, lint, before public release (`#5 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/5>`_)
* Add nccurses based frontend (`#3 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/3>`_)
Adds a simple curses based frontend, less featureful, but more performant with large number of topics than r2s_gw
* Initial Commit
* Contributors: Sean Gillen
4 changes: 2 additions & 2 deletions greenwave_monitor/package.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>

<!--
SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand All @@ -21,7 +21,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>greenwave_monitor</name>
<version>0.1.0</version>
<version>1.0.0</version>
<description>A ROS 2 diagnostic tool for monitoring topic frame rates and latency metrics.</description>
<maintainer email="sgillen@nvidia.com">Sean Gillen</maintainer>
<license>Apache-2.0</license>
Expand Down
17 changes: 17 additions & 0 deletions greenwave_monitor_interfaces/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package greenwave_monitor_interfaces
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1.0.0 (2026-02-27)
------------------
* Add pre-commit for better linting (`#25 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/25>`_)
Adds a pre-commit config that uses uncrustify and flake8 just like ament. ament isn't used directly since I wanted formatting to occur outside of a ROS environment when making small fixes. Also has other tools like whitespace, newline, copyright, yaml checks, code spelling, shell script formatting, and commit sign off checking.
Useful for fixing most issues with linting before it is pushed. Automatically reformats your commits, fixes copyright year issues, etc.
* Contributors: bmchalenv

0.1.0 (2025-10-09)
------------------
* Update package.xml to add authors tag (`#9 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/9>`_)
* Fixup headers, maintainers, README, lint, before public release (`#5 <https://github.com/NVIDIA-ISAAC-ROS/greenwave_monitor/issues/5>`_)
* Initial Commit
* Contributors: Sean Gillen
2 changes: 1 addition & 1 deletion greenwave_monitor_interfaces/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>greenwave_monitor_interfaces</name>
<version>0.1.0</version>
<version>1.0.0</version>
<description>Interfaces for the greenwave_monitor package</description>
<maintainer email="sgillen@nvidia.com">Sean Gillen</maintainer>
<license>Apache-2.0</license>
Expand Down