Orion Chat is a ROS 2 Jazzy package that orchestrates speech‑to‑text (STT), chat engine, and text‑to‑speech (TTS) nodes using a single launch file. It runs on Ubuntu 24.04 with support for Ignition Harmonic simulation, integrating Whisper for STT, OLLAMA for language processing, and edge-TTS for TTS, enabling seamless human–robot interaction.
orionChatDemo.mp4
- OS: Ubuntu 24.04 LTS
- ROS 2: Jazzy Jalisco (
ros-jazzy-desktop) - Ignition Gazebo: Ignition Harmonic
- Tools:
colcon,rosdep
# Clone and prepare the workspace
mkdir -p ros2_ws/src && mv * ros2_ws/src
git clone https://github.com/Tesis-ORION/orion_chat.git
cd ros2_ws
# Install dependencies
rosdep update
rosdep install --from-paths src --ignore-src -r -y
cd orion_chat
./install_apt.sh
pip install -r requirements.txt --break-system-packages
# Build and source environment
colcon build --packages-select orion_chat
source install/setup.bashros2_ws/
└── src/
├── orion_chat/ # Main package
│ ├── launch/
│ │ └── orion_launch.py # Single launch for STT, Chat, TTS
│ ├── orion_chat/ # Chat logic & prompt loader
│ ├── stt_node.py # STT node (Whisper)
│ ├── tts_node.py # TTS node (edge-TTS + pygame)
│ ├── resource/ # JSON prompts and user data
│ └── sounds/ # Activation audio (MP3)
├── install/ # colcon install output
├── build/ # colcon build output
└── log/ # Build logs
- Executable:
orion_stt - Description: Uses OpenAI Whisper to transcribe microphone audio into text.
- Executable:
orion_chat - Description: Processes text with an LLM via the OLLAMA API using
resource/orion_prompt.json.
- Executable:
orion_tts - Description: Converts text responses into speech using edge-TTS and plays back via pygame.
🔄 Launch STT, chat engine, and TTS modules only
# in a separated terminal
ros2 run orion_chat audio_recorder
# in a separated terminal
ros2 launch orion_chat orion_launch.py🔄 Launch STT, chat engine, and TTS modules with web interface (requires orion_web_interface package)
ros2 launch orion_chat orion_launch.pyLaunch default simulation
ros2 launch orion_chat orion_gz_launch_def.pyLaunch with ORION simulation (requires orion_gz package)
ros2 launch orion_chat orion_gz_launch.pyresource/conversation_config.json– Prompt templateresource/movement_config.json– Movement RAG settings
- Fork the repository
- Create a branch (
feature/...) - Commit your changes and add tests
- Open a Pull Request against
main
MIT License – Permissive and ensures attribution. See LICENSE.