Skip to main content
Community

Get help. Share ideas. Contribute.

ROS2 Inspector is built in the open. Come ask questions, share what you've built, report bugs, or contribute code.

About the Creator

🤖
Amine Bensaid Founder
Built ROS2 Inspector to bring static architecture visibility to ROS2 — something the ecosystem was missing. @aminebensaid66 on GitHub.

Frequently Asked Questions

Does ros2inspector require a running ROS2 environment?
No. v0.1.0 performs static analysis entirely offline — no ROS2 daemon, sourced setup.bash, or running nodes are required.
Does it support C++ packages?
Yes. ros2inspector uses Tree-sitter to parse C++ ASTs and detect rclcpp::Node and rclcpp_lifecycle::LifecycleNode subclasses, extracting common direct publisher, subscription, service, and client construction patterns.
How accurate is the static analysis?
Very accurate for standard patterns. Nodes with dynamically-computed topic names (e.g., string concatenation at runtime) are detected and flagged with has_dynamic_names: true. Template metaprogramming edge cases may be missed.
Can I use it in CI?
Absolutely — that's a core use case. Pipe JSON output to jq, diff architecture graphs between branches, or fail a PR if a forbidden dependency is introduced. See the CI/CD guide.
What ROS2 distributions are supported?
ros2inspector does not require a running ROS2 graph for static analysis. Compatibility depends on the source patterns, Python version, platform, and ROS2 APIs used; see the published compatibility matrix and treat unrecognized constructs as diagnostics.
Is Python 3.11+ really required?
Yes. The tool uses structural pattern matching and modern type annotations internally. Python 3.11, 3.12, and 3.13 are all tested in CI.
🤔

Still stuck?

Open a GitHub Discussion — the maintainers respond fast.

Ask a Question →