Skip to content

Add robot_control_bridge plugin for Flowstate-ROS bridge#449

Open
JohnTGZ wants to merge 23 commits intophase_1from
jt/agentbridge_ros
Open

Add robot_control_bridge plugin for Flowstate-ROS bridge#449
JohnTGZ wants to merge 23 commits intophase_1from
jt/agentbridge_ros

Conversation

@JohnTGZ
Copy link
Copy Markdown
Contributor

@JohnTGZ JohnTGZ commented Mar 30, 2026

Overview

This PR introduces the flowstate_ros_bridge::robot_control_bridge plugin that streams control commands in ROS 2 to Flowstate's robot controller actions: AgentBridge and AgentBridgeJoint.
This bridge enables external ROS 2 nodes to send MotionUpdate and JointMotionUpdate messages directly to an active controller session via a stream to the controller server.

ROS 2 Interfaces

Services

Service Name Service Type Description
/aic_controller/change_target_mode aic_control_interfaces/srv/ChangeTargetMode Select the target mode (Cartesian or joint) to define the expected input. The controller will subscribe to either /aic_controller/pose_commands or /aic_controller/joint_commands accordingly. Results in the controller session stopping all actions and then starting the relevant action based on the desired target mode: AgentBridgeJoint for JOINT mode and AgentBridge for CARTESIAN mode.
/aic_controller/restart_bridge std_srvs/srv/Trigger Triggers the restart of the controller bridge. To be called after robot faults occur and are cleared.

Published Topics

Topic Message Type Description
/aic_controller/controller_state aic_control_interfaces/msg/ControllerState Data on current TCP pose and velocity, reference TCP pose, TCP tracking error and reference joint efforts.

Command Topics

The bridge listens to the following topics as motion commands for the controller.

Topic Message Type Description
/aic_controller/joint_commands aic_control_interfaces/msg/JointMotionUpdate Target configurations for joint-space control. Maps to MotionUpdate proto and then streamed to the AgentBridge action
/aic_controller/pose_commands aic_control_interfaces/msg/MotionUpdate Target poses for Cartesian-space control. Maps to JointMotionUpdate proto and then streamed to the AgentBridgeJoint action

@Yadunund Yadunund changed the title Add ICONBridge plugin for Flowstate-ROS bridge Add AgentBridge plugin for Flowstate-ROS bridge Apr 1, 2026
@JohnTGZ JohnTGZ changed the title Add AgentBridge plugin for Flowstate-ROS bridge Add robot_control_bridge plugin for Flowstate-ROS bridge Apr 7, 2026
@JohnTGZ JohnTGZ requested review from Yadunund and trushant05 April 7, 2026 15:27
@JohnTGZ JohnTGZ marked this pull request as ready for review April 7, 2026 15:27
@JohnTGZ JohnTGZ force-pushed the jt/agentbridge_ros branch 2 times, most recently from 0ee7258 to 1e48203 Compare April 17, 2026 09:14
JohnTGZ added 23 commits April 20, 2026 13:20
…cript for bundling aic_flowstate_ros_bridge as a flowstate service
…epath parameter value if it is not an absolute path
…n to agentbridge and agentbridgejoint output streams.
…ntroller_state periodically as part of a ROS timer. 3) Add subscription to zenoh pubsub topic icon/**/robot_status to retrieve sensed TCP pose and twist because retrieving them from the controller action output stream is not reliable especially in between changing target modes
…here is a jump backwards on the simulated clock.
…opic from sim. This is so that resets from sim and actual hardware can be detected. Also added a retry mechanism in the form of a timer
…e, the restart is triggered only when use data->connected_to_controller_ is set to true
@JohnTGZ JohnTGZ force-pushed the jt/agentbridge_ros branch from 1e48203 to 63f0ba3 Compare April 20, 2026 15:37
@Yadunund Yadunund requested a review from codebot April 22, 2026 17:13
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.

1 participant