Skip to content

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.

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.

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.