ros2_shadow
- Software
- Middleware
- Tool
A ROS 2 tool that runs a candidate node beside a production node on the same live inputs, compares their outputs, and reports where they disagree, without letting the candidate drive the robot.
Source on GitHub: github.com/catplotlib/ros2_shadow (opens in a new tab). Facts read at commit f4e8df7 (opens in a new tab).
Licenses
- Code
- MIT (opens in a new tab)
Read by Robotheca from LICENSE (opens in a new tab) (MIT) at commit f4e8df7 (opens in a new tab), on 22 Oct 2026.
- Commercial use
- Yes
What it does
- Only the production node drives the robot; the candidate's outputs are compared, never executed.
- Buffers and pairs outputs from both nodes within a configurable time tolerance, using header stamps or arrival time.
- Computes per-message-type divergence metrics for Twist, PoseStamped, JointTrajectory and Path messages.
- Flags critical or warning divergences, counts unmatched outputs, and publishes results as DiagnosticArray messages.
- Warns about, and suspends the comparison on, candidate publishers reaching forbidden hardware topics; domain_bridge can isolate the candidate fully.
- Includes demos comparing two Nav2 planners and two simple publishers.
Written by Robotheca from the project's README (opens in a new tab) at commit f4e8df7.
Getting started
- Difficulty
- Advanced
- Hardware it needs, as the project states it
- ROS 2 Jazzy and Python 3.10 or later are required.
- How to start
- The project's README (opens in a new tab)
Maintenance
- Status
- Active: a commit in the last 90 days
- Newest commit
- 17 Sept 2026 on main
- Latest release
- None published on GitHub
Checked on GitHub on 22 Oct 2026.
Links
Robots that can run it
No robot on Robotheca is linked to it yet. Links come from a robot's robot.yaml, from its dependency files read as text, or from Robotheca's editors.
Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.