Skip to content

Data Flow

Data exchange occurs asynchronously via Redis Streams. This allows for decoupling of producers (e.g., camera drivers, AI models) and consumers (e.g., robot control, visualization).

Image Streaming Sequence

sequenceDiagram participant P as Publisher (e.g., Camera) participant R as Redis Stream participant C as Consumer (e.g., GUI) P->>P: Capture Image P->>P: Compress to JPEG P->>R: XADD robot_camera (image_data, metadata) R-->>P: Stream ID C->>R: XREAD/XREVRANGE robot_camera R-->>C: Image Data + Metadata C->>C: Decode JPEG C->>C: Display Image

Object Detection Workflow

flowchart LR Img[Image Source] --> Det[Detector] Det --> |Object List| Broker[RedisMessageBroker] Broker --> |XADD| Stream[(Redis Stream)] Stream --> |XREAD| Control[Robot Control] Control --> |Action| Robot[Robot]