Skip to content

Adding the diagnostics bridge to the flowstate_ros_bridge package#83

Open
JCarosella wants to merge 8 commits intointrinsic-ai:mainfrom
ekumenlabs:feature/flowstate-diagnostics-ros-bridge
Open

Adding the diagnostics bridge to the flowstate_ros_bridge package#83
JCarosella wants to merge 8 commits intointrinsic-ai:mainfrom
ekumenlabs:feature/flowstate-diagnostics-ros-bridge

Conversation

@JCarosella
Copy link
Copy Markdown
Contributor

@JCarosella JCarosella commented Jan 8, 2026

Summary

Adds the full diagnostics workflow to the ROS bridge, reading diagnostics information from Flowstate and publishing to ROS 2. The project builds and bundles correctly with the flowstate ros bridge service scripts.

Principal changes

  • Added diagnostics module and build support.
  • Implemented gRPC diagnostics client (connect and state retrieval).
  • Integrated DiagnosticsBridge to publish ROS diagnostic messages.
  • Improved logging and cleaned outdated code/comments.

Installation and testing

  1. Build and bundle the new flowstate_ros_bridge. In the root of a colcon workspace with this package i n the src directory of it, run:
./src/sdk-ros/scripts/setup_docker.sh
./src/sdk-ros/flowstate_ros_bridge/scripts/build_service_bundle.sh

This will produce a tarball in a new images directory at the same level of the src directory.

  1. Install the service in Flowstate:
inctl service install --cluster=$CLUSTER images/flowstate_ros_bridge.bundle.tar --org=$INTRINSIC_ORG
  1. Create a solution and add the service or add it to an existing solution

  2. Test the new ROS 2 diagnostics topic by trying to subscribe to the /diagnostics topic.

Result

Diagnostics feature is fully integrated and compiles successfully. New diagnostics bridge publishes correctly to ROS 2. This is the output of a test I ran locally with a solution deployed to an IPC:

image

Testing information here: #88 (comment)

Comment thread flowstate_ros_bridge/flowstate_ros_bridge_default_config.pbtxt Outdated
Copy link
Copy Markdown
Contributor

@Yadunund Yadunund left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this! Left a high level comment to avoid API breaking changes for now. Will do a deeper review after addressing this change.

Comment thread flowstate_ros_bridge/include/flowstate_ros_bridge/bridge_interface.hpp Outdated
@JCarosella JCarosella force-pushed the feature/flowstate-diagnostics-ros-bridge branch from 002eac1 to 0635d8b Compare January 13, 2026 10:53
JCarosella and others added 6 commits January 16, 2026 14:44
Signed-off-by: JCarosella <juancarosella96@ekumenlabs.com>
Signed-off-by: JCarosella <juancarosella96@ekumenlabs.com>
… bridge API

Signed-off-by: JCarosella <juancarosella96@ekumenlabs.com>
Signed-off-by: JCarosella <juancarosella96@ekumenlabs.com>
@JCarosella JCarosella force-pushed the feature/flowstate-diagnostics-ros-bridge branch from ee3e697 to 3f480a1 Compare January 16, 2026 17:44
Copy link
Copy Markdown
Contributor

@b-corry b-corry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor comments, otherwise LGTM

Comment on lines +60 to +64
auto params_interface = ros_node_interfaces.get<rclcpp::node_interfaces::NodeParametersInterface>();
diagnostics_pub_ = rclcpp::create_publisher<diagnostic_msgs::msg::DiagnosticArray>(
params_interface,
topics_interface,
"/diagnostics", rclcpp::SystemDefaultsQoS());
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Potential enhancement: we can add optional remapping for topic names like /diagnostics. This could exist as a new remap proto message which is passed into the service config and propogated to the node options when starting the flowstate_ros_bridge.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!


// Add key-value pairs for more detail.
diagnostic_msgs::msg::KeyValue kv_state;
kv_state.key = "Platform State";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps this could get moved to a const at top of the file.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done!

Signed-off-by: JCarosella <juancarosella96@ekumenlabs.com>
Signed-off-by: JCarosella <juancarosella96@ekumenlabs.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants