EmbodiedData Robotics Inspector v0.3.0
Visualize a ROS 2 project, highlight robotics-specific configuration errors, and compare the system inferred from code with the system actually running.
Prototype capabilities
Code inspection — inferred
- Scans ROS 2 source,
package.xml, URDF and Xacro files.
- Highlights invalid robot trees and missing parent or child links.
- Detects publisher/subscriber message-type mismatches.
- Parses controller YAML and cross-checks configured joints against URDF/Xacro.
- Detects joints claimed by multiple controllers.
- Shows inferred packages, nodes, topics, controllers and robot structure.
- Publishes findings as native VS Code diagnostics.
Live inspection — verified
- Reads the active ROS 2 node, topic, service and action graph.
- Reads
ros2_control controller status when available.
- Samples
/tf and /tf_static and validates expected robot transforms.
- Detects TF children with competing parents.
- Compares topics found in code with the running graph.
- Clearly separates inferred from code from verified at runtime.
Interactive visualizations
- Beginner-first health summary and recommended next action.
- Repeated diagnostics grouped into actionable issue categories.
- Searchable node, topic and controller inventory.
- Focused node explorer that shows only one node and its direct connections.
- Directional arrows distinguish published and subscribed topics.
- Collapsible parent-child TF browser instead of a dense whole-tree graph.
- Runtime data is preferred when connected; static inspection remains available without ROS 2.
The extension runs only fixed, read-only ROS inspection commands. It never executes a suggested repair automatically.
Run the prototype
Requirements:
- VS Code 1.95 or newer
- Node.js 20 or newer
- ROS 2 Jazzy for live inspection; static inspection works without ROS 2
npm install
npm run compile
Open this folder in VS Code and press F5. In the Extension Development Host:
- Open a ROS 2 workspace.
- Run EmbodiedData: Open Robotics Inspector from the Command Palette.
- Select Inspect live ROS 2 after starting ROS 2 nodes.
If VS Code was not launched from a sourced terminal, set:
embodieddata.rosSetupScript = /opt/ros/jazzy/setup.bash
Package an installable extension
npm run package
This creates an installable .vsix file.
Current boundaries
This is the first technical foundation, not a claim of complete ROS understanding:
- C++ and Python topic extraction is intentionally conservative.
- Dynamic launch behavior cannot always be inferred statically.
- Live results show what was observed at inspection time.
- Dynamic launch behavior cannot always be inferred statically.
- A one-message TF sample can miss transforms that are not published during the inspection window.
- Nav2, MoveIt 2, TF timing, QoS and complete controller-interface validation remain future work.
Product principle
Inspect the code. Observe the robot. Compare what should happen with what actually happens.