A comprehensive Wizard-of-Oz (WoZ) platform designed for operating social robots in highly unpredictable environments like classrooms, supporting the creation and evaluation of innovative child-robot interactions. This system addresses challenges related to safety, robustness, and managing multiple, often noisy, interactions while providing an intuitive interface for non-expert users like teachers.
Watch our demonstration of the Wizard-of-Oz platform in action, showcasing the dashboard interface with the TIAGo robot and demonstrating how to configure a new robot.
This platform enables rich user data elicitation and contextual inquiry, both essential for understanding user needs and deriving meaningful requirements in Human-Robot Interaction (HRI) research. By prioritizing usability, modularity, and robustness, our approach facilitates iterative design, accelerates the transition from Wizard-of-Oz prototyping to autonomous behaviors, and contributes to making child-robot interaction technologies more accessible and practical for diverse application domains.
- Improvisation Support: Handles highly unpredictable behaviors, especially from children engaged in collaborative tasks
- Modular Interface: Adapts to different contexts, user profiles, and robotic platforms
- Real-time Control: Web-based dashboard with live camera feeds and responsive control panels
- Easy Customization: Configuration wizard for rapid setup without code modifications
- Multi-Robot Support: Tested with RoboMaster S1 and PAL Robotics TIAGo robots
- Experiment Logging: Comprehensive data recording with structured JSONL format
The system consists of several key components:
Web Dashboard ↔ ROS Bridge ↔ Robot Adapters ↔ Robot Hardware
- Next.js Web Dashboard: Intuitive GUI with dynamic adaptation based on robot capabilities
- ROS Bridge Server: WebSocket-based communication between web interface and ROS ecosystem available at rosbridge_suite
- Robot Adapters: Platform-specific translation layers for different robot types
- Dashboard Bridge: Administrative functions for experiment management and configuration
- Semantic Topic Interface: Standardized command topics for cross-platform compatibility
- Web Interface: Node.js 18+, npm
- Robot Communication: ROS 2 (Humble or later)
- Robot Hardware: Supported robot (RoboMaster S1, TIAGo, or custom with adapter)
- Clone the repository:
git clone <repository-url>
cd wizard-for-kids- Install web dependencies: First source your ROS 2 workspace for compatibility with your custom robot packages.
Then run:
npm install- Build and run the web interface:
npm run build
npm start- Start ROS Bridge Server:
ros2 launch rosbridge_server rosbridge_websocket_launch.xml- Start the Node.js ROS Bridge:
node dashboard_bridge/index.js- Start the web interface: First build the project if not done already:
npm run buildThen start the server:
npm start- Launch Robot-Specific Nodes: Last step is to launch the robot-specific nodes. Examples with RoboMaster EP:
For RoboMaster S1:
# Start robot connection
ros2 launch robomaster_ros ep.launch name:=robomaster conn_type:=ap
# Start safety system
ros2 run safety panic_handler_node
# Start navigation server (if using)
ros2 run navigation_world_ref_action_server navigation_world_ref_action_server_node- Access the Dashboard:
- Open your web browser and navigate to
http://localhost:3000 - Use the configuration wizard to set up your robot interface
- Start controlling your robot through the web interface
- Open your web browser and navigate to
- Capabilities: Omnidirectional movement, LED control, sound effects, arm with gripper
- Capabilities: Mobile manipulation, head tracking, object offering behaviors
The platform uses standardized topics for cross-robot compatibility:
| Topic | Purpose | Example Commands |
|---|---|---|
/dashboard/movement |
Navigation control | {"motion_name": "approach_user", "approach_speed": 0.5} |
/dashboard/arm |
Arm manipulation | {"action": "wave", "params": {"intensity": 0.8}} |
/dashboard/gripper |
Gripper control | {"action": "open", "force": 0.5} |
/dashboard/sound |
Audio feedback | {"action": "encouraging_beep", "volume": 0.7} |
/dashboard/leds |
Visual feedback | {"action": "rainbow_pulse", "intensity": 1.0} |
/experiment/event |
Logging | Structured experiment data in JSONL format |
The web interface includes a built-in configuration wizard that allows users to:
- Add Control Buttons: Each button represents a semantic action (e.g., "wave", "offer_object")
- Configure Parameters: Set robot-specific parameters like speed, force, intensity
- Map Topics: Define topic mappings for different robot capabilities
- Save Configurations: Store and load robot configurations for different experiments
- Create Robot Adapter: Implement a ROS 2 node that subscribes to semantic topics. The example node for TIAGo robot is available here TIAGo Adapter Example.
- Define Robot Configuration: Use the configuration wizard to create a configuration file specifying capabilities of the new robot.
The platform provides comprehensive experiment logging:
# Structured experiment events
/experiment/event → JSONL format with timestamps and context
# ROS bag recording for sensor data
ros2 bag record -a -o experiment_dataWhich is available via the dashboard interface for easy access and download.
This platform has been successfully deployed in:
- Classroom Studies: Children's collaborative learning with robot peers/regulators
- Social Interaction Research: Human-robot approach and offering behaviors
- Iterative Design Processes: Rapid prototyping of interaction paradigms
- Cross-Platform Validation: Testing behaviors across different robot morphologies
This project supports the democratization of WoZ systems in HRI research. Contributions are welcome for:
- New robot adapter implementations
- Enhanced web interface features
- Additional semantic command types
- Safety and accessibility improvements
If you use this work in your research, please cite:
@inproceedings{10.1145/3757279.3788810,
author = {Frova, Davide and Landoni, Monica and Arreghini, Simone and Paolillo, Antonio},
title = {A Wizard for Kids: A Platform for Improvised Child–Robot Interactions},
year = {2026},
isbn = {9798400721281},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3757279.3788810},
doi = {10.1145/3757279.3788810},
abstract = {We present an interface designed to operate social robots in a highly unpredictable context: a classroom, supporting user-centered design of innovative child–robot interactions. Having a functional prototype enables rich user data elicitation and analysis, essential for understanding user needs and deriving meaningful requirements. Deploying robots outside controlled laboratory conditions into a classroom, however, introduces challenges related to safety, robustness, and managing multiple, often noisy, interactions. Our system addresses these challenges by providing a safe, flexible and resilient interface that ensures safe operation while allowing improvisation and adaptability to unpredictable children's behaviors. The interface aims to be intuitive for non-expert users and support everyday teaching and learning activities in the classrooms. By prioritizing usability, modularity, and robustness, our approach facilitates iterative design, accelerates the transition from Wizard-of-Oz prototyping to autonomous behaviors, and contributes to making child–robot interaction technologies more accessible and practical for diverse application domains.},
booktitle = {Proceedings of the 21st ACM/IEEE International Conference on Human-Robot Interaction},
pages = {1308–1312},
numpages = {5},
keywords = {Human–Robot Interaction, Social Robots, User Interface Design, Wizard-of-Oz},
location = {Edinburgh, Scotland, UK},
series = {HRI '26}
}This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
