Skip to content

Commit 965e664

Browse files
committed
Update coffee_voice_agent README
1 parent e09a8df commit 965e664

File tree

1 file changed

+82
-3
lines changed

1 file changed

+82
-3
lines changed

coffee_ws/src/coffee_voice_agent_ui/README.md

Lines changed: 82 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
A 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
4254
source 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
```
106136
VoiceAgentMonitorApp (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

119161
The 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
285332
The 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
324378
ros2 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

329408
Run with debug logging for detailed information:

0 commit comments

Comments
 (0)