Static Analysis Scope
ROS2 Inspector v0.1.0 analyzes workspace source files. It does not connect to a live ROS graph, execute nodes, or build the workspace.
What is analyzed
package.xmlmanifests and declared dependencies;- supported Python node and endpoint patterns through Python AST;
- supported C++ patterns through Tree-sitter;
.msg,.srv, and.actioninterface definitions;- supported Python, XML, and YAML launch-file patterns and remaps;
- relationships assembled into the Unified Architecture Model.
Advantages
- works in CI and on unbuilt workspaces;
- requires no ROS2 daemon or running nodes;
- produces deterministic results for the same source inputs;
- catches package, connectivity, and policy issues before deployment;
- supports incremental analysis through content fingerprints.
Boundaries
Static analysis cannot guarantee a complete runtime graph. Common limits include:
- names computed from parameters, environment variables, or arbitrary expressions;
- nodes and endpoints hidden behind wrappers, macros, plugins, or complex templates;
- runtime-only remapping and conditional launch behavior;
- actual QoS compatibility and live endpoint availability;
- components loaded dynamically by a running system.
When a name or type is not statically resolvable, v0.1.0 records dynamic-name flags, evidence, confidence, or diagnostics rather than presenting the result as certain.
Choosing a command
| Need | Command |
|---|---|
| Package inventory and health | scan or packages |
| Detected node endpoints | nodes |
| Architecture export | graph |
| Interactive offline view | viz |
| Zero-config structural checks | audit |
| Project-specific architecture rules | validate |