Part of #570.
Summary
One node publishes /scan_raw, another subscribes /scan_row. Both nodes are up, both report healthy, and neither is talking to the other. Nothing in ROS 2 notices, because from the graph point of view these are simply two different topics that each happen to have one side.
The same shape appears from a wrong remap in a launch file, a renamed topic where only one side was updated, or a namespace that was applied to one node and not the other.
This is hard to see by hand. ros2 topic list shows both names and they look plausible. The operator usually finds it by noticing the robot behaves as if the data never arrives, then comparing topic names character by character.
Proposed solution
Look for a topic that has publishers but no subscribers, or subscribers but no publishers, and check whether a topic with the complementary shape exists nearby: same namespace, same message type, and a name within a very small edit distance.
Two things it has to be careful about.
The fault should name both sides and say plainly that it is a candidate. The tool cannot tell a typo from a counterpart that simply has not started yet or has just exited, so it should say both possibilities rather than assert one and send someone renaming things.
It also needs a persistence requirement. During a staged bringup one side legitimately exists without the other for a while, and that looks exactly like a typo until the second node appears. Reporting on a single sweep would make this fire on every launch.
Part of #570.
Summary
One node publishes
/scan_raw, another subscribes/scan_row. Both nodes are up, both report healthy, and neither is talking to the other. Nothing in ROS 2 notices, because from the graph point of view these are simply two different topics that each happen to have one side.The same shape appears from a wrong remap in a launch file, a renamed topic where only one side was updated, or a namespace that was applied to one node and not the other.
This is hard to see by hand.
ros2 topic listshows both names and they look plausible. The operator usually finds it by noticing the robot behaves as if the data never arrives, then comparing topic names character by character.Proposed solution
Look for a topic that has publishers but no subscribers, or subscribers but no publishers, and check whether a topic with the complementary shape exists nearby: same namespace, same message type, and a name within a very small edit distance.
Two things it has to be careful about.
The fault should name both sides and say plainly that it is a candidate. The tool cannot tell a typo from a counterpart that simply has not started yet or has just exited, so it should say both possibilities rather than assert one and send someone renaming things.
It also needs a persistence requirement. During a staged bringup one side legitimately exists without the other for a while, and that looks exactly like a typo until the second node appears. Reporting on a single sweep would make this fire on every launch.