ROS 2 Device Client Runtime Overview
Document scope
Separate from the server architecture docs, this document explains the ROS 2 client software that runs on devices registered to the server.
If the server architecture docs explain the CoBiz-wide control plane and external-service integrations, this document focuses on the following:
- which ROS 2 nodes run on the robot endpoint
- what inputs each node receives and what outputs it produces
- how plugins must report Task state
- how
config.yamlshould be written and inspected during operation
Runtime purpose
cobiz is the runtime that connects video, audio, LiDAR, sensors, and control on ROS 2-based robot endpoints to the server, and centrally forwards plugin task states back to the server.
The key design changes are:
- plugins do not make HTTP requests directly
- plugins only publish to
/task_state request_manageris responsible for server requests
The purpose of this structure is to separate plugin domain logic from external HTTP communication.
Recommended execution structure
cobiz_bridge_node: registers the robot with the server and publishes/device_infomanager_node: automatically starts and manages child nodes based on/device_infohealth_check_node: forwards server task events to/task_event- plugins (SLAM, TTS, and others): process
/task_eventand publish/task_state request_manager: posts/task_stateto the server API
Boundary with the server architecture
Separating the server docs and the device docs makes the responsibility boundary clearer.
- Server architecture docs: Device registration, Task/Workflow state transitions, Mantis/TGDM integration, operating policy
- Device runtime docs: ROS 2 node execution, sensor/media input collection, control bridging, plugin status reporting
In short, the server owns domain state and policy, while the device runtime owns field I/O and the execution bridging layer.