22
33A comprehensive PyQt-based monitoring dashboard for the Coffee Voice Agent system. This package provides real-time visualization and control of voice agent status, emotions, tool usage, conversation flow, and system analytics.
44
5- ![ Coffee Voice Agent Monitor] ( https://img.shields.io/badge/ROS2-Jazzy-blue ) ![ PyQt5] ( https://img.shields.io/badge/UI-PyQt5-green ) ![ License] ( https://img.shields.io/badge/License-TODO-red )
5+ ![ Coffee Voice Agent Monitor] ( https://img.shields.io/badge/ROS2-Jazzy-blue ) ![ PyQt5] ( https://img.shields.io/badge/UI-PyQt5-green ) ![ Platform ] ( https://img.shields.io/badge/Platform-Ubuntu%20%7C%20macOS-brightgreen ) ![ License] ( https://img.shields.io/badge/License-TODO-red )
66
77## 🎯 Overview
88
@@ -26,9 +26,21 @@ The Coffee Voice Agent UI is a standalone ROS2 application that provides compreh
2626- ** coffee_voice_agent_msgs** package
2727- ** coffee_voice_agent** package (for full system operation)
2828
29+ ### Platform Requirements
30+
31+ #### Ubuntu 20.04+ / Linux
32+ - Standard ROS2 installation with ` python_qt_binding `
33+ - All emoji and Unicode characters supported natively
34+
35+ #### macOS 10.15+ / Apple Silicon
36+ - ** RoboStack** environment recommended for ROS2 on macOS
37+ - ** Mamba/Conda** package manager (via Miniforge)
38+ - Qt environment variables automatically configured for stability
39+ - Platform-specific emoji handling implemented for compatibility
40+
2941## 🚀 Installation
3042
31- ### 1. Clone and Build
43+ ### 1. Linux/Ubuntu Installation
3244
3345``` bash
3446# Navigate to your ROS2 workspace
@@ -42,7 +54,25 @@ colcon build --packages-select coffee_voice_agent_ui
4254source install/setup.bash
4355```
4456
45- ### 2. Verify Installation
57+ ### 2. macOS Installation (RoboStack)
58+
59+ ``` bash
60+ # Activate your ROS2 mamba environment
61+ mamba activate ros_env
62+
63+ # Navigate to your workspace
64+ cd ~ /your_ros2_ws
65+
66+ # Build the package
67+ colcon build --packages-select coffee_voice_agent_ui
68+
69+ # Source the workspace
70+ source install/setup.bash
71+ ```
72+
73+ ** Note for macOS** : The application automatically configures Qt environment variables for optimal stability and cross-platform emoji compatibility.
74+
75+ ### 3. Verify Installation
4676
4777``` bash
4878# Check if the package is available
@@ -104,6 +134,7 @@ Voice Agent ←→ Voice Agent Bridge ←→ ROS2 Topics ←→ Monitor UI
104134
105135```
106136VoiceAgentMonitorApp (QMainWindow)
137+ ├── Platform-Specific Initialization (Qt environment, emoji system)
107138├── Left Column Container (vertical layout)
108139│ ├── Agent Status Widget (connection, state, metrics)
109140│ ├── Emotion Display Widget (current emotion, transitions, timeline)
@@ -114,6 +145,17 @@ VoiceAgentMonitorApp (QMainWindow)
114145└── Virtual Request Widget (manual testing, virtual coffee requests)
115146```
116147
148+ ### Cross-Platform Components
149+
150+ ** Emoji Management System (` emoji_utils.py ` )** :
151+ ```
152+ EmojiManager
153+ ├── Platform Detection (macOS vs Linux/Ubuntu)
154+ ├── Emoji Mapping (Unicode ↔ Text alternatives)
155+ ├── Widget Integration (automatic emoji replacement)
156+ └── Consistent UI Experience (cross-platform compatibility)
157+ ```
158+
117159### ROS2 Integration
118160
119161The monitor subscribes to these topics:
@@ -281,11 +323,23 @@ Launches both the voice agent bridge and monitor UI for complete system operatio
281323- ` QT_AUTO_SCREEN_SCALE_FACTOR=1 ` - Qt high DPI scaling
282324- ` ROS_DOMAIN_ID ` - ROS2 domain for multi-robot systems
283325
326+ ** macOS-specific (automatically configured):**
327+ - ` QT_QPA_PLATFORM=cocoa ` - Native macOS Qt platform
328+ - ` QT_MAC_WANTS_LAYER=1 ` - Layer-backed rendering for stability
329+ - ` QT_XCB_GL_INTEGRATION=none ` - Disable X11/GL conflicts
330+
284331### Parameters
285332The monitor can be configured through ROS2 parameters:
286333- ` use_sim_time ` (default: false) - Use simulation time
287334- ` window_title ` - Custom window title
288335
336+ ### Cross-Platform Emoji System
337+ The UI includes a platform-specific emoji handling system:
338+ - ** Ubuntu/Linux** : Native emoji support with full Unicode rendering
339+ - ** macOS** : Text-based alternatives for emojis to ensure stability and compatibility
340+ - Automatic platform detection and appropriate emoji mapping
341+ - Consistent visual experience across operating systems
342+
289343## 🐛 Troubleshooting
290344
291345### Common Issues
@@ -324,6 +378,31 @@ python3 -c "from python_qt_binding.QtWidgets import QApplication; print('PyQt OK
324378ros2 pkg deps coffee_voice_agent_ui
325379```
326380
381+ ** 6. macOS-Specific Issues**
382+
383+ ** "Bus error: 10" on macOS:**
384+ - This was a known issue with emoji rendering on macOS external terminals
385+ - ** Solution** : Automatically resolved by the built-in platform-specific emoji system
386+ - No manual intervention required - the UI now works reliably on all macOS terminals
387+
388+ ** RoboStack Environment Issues:**
389+ ``` bash
390+ # Ensure you're in the correct mamba environment
391+ mamba activate ros_env
392+
393+ # Verify ROS2 installation
394+ ros2 --version
395+
396+ # Check Qt platform detection
397+ echo $QT_QPA_PLATFORM # Should show 'cocoa' on macOS
398+ ```
399+
400+ ** Terminal Compatibility:**
401+ - Works in VS Code integrated terminal ✅
402+ - Works in macOS Terminal.app ✅
403+ - Works in iTerm2 ✅
404+ - Works in external terminal applications ✅
405+
327406### Debug Mode
328407
329408Run with debug logging for detailed information:
0 commit comments