Skip to content

ROS2 Chat

A wrapper ROS2 node for ros_llm, ros_stt and ros_tts to simplify the chat pipeline.

The chat node in this solution includes a /chat ROS2 service that accepts audio data and returns a generated audio response with extra metadata.

This documentation provides all the information you need to get started with ros_chat, from setting up your environment to using the service and contributing to the project.

---
config:
    theme: redux
    look: neo
---
flowchart TB
    subgraph s1["Server"]
        direction TB
        n11["Chat Node"]

        subgraph s11["Whisper STT"]
            direction TB
            n112["STT Node"] <-- HTTP --> n111["whisper.cpp"]
        end

        subgraph s12["Gemma 3 12b"]
                direction TB
                n122["LLM Node"] <-- HTTP --> n121["llama.cpp"]
            end

        subgraph s13["Orpheus TTS"]
            direction TB
            n132["TTS Node"] <-- HTTP --> n131["llama-swap"]
        end

        n11 -- ROS2 --> n112
        n11 -- ROS2 --> n122
        n11 -- ROS2 --> n132
    end
    subgraph s21["Robot"]
        direction TB
        n21["UI Com"] <-- WebSocket --> n22["Emotion"]
    end
    n11 <-- "ROS2" --> n21

Requirements

Contributing

We welcome contributions to this project! Please see the contributing guidelines at contributing.md in the root of this repository for more information on how to get started.