9.9 KiB
NAO6 HRIStudio Plugin Repository
Official NAO6 robot integration plugins for the HRIStudio platform
Overview
This repository contains production-ready plugins for integrating NAO6 robots with HRIStudio experiments. The plugins provide comprehensive robot control capabilities including movement, speech synthesis, sensor monitoring, and safety features optimized for human-robot interaction research.
Available Plugins
🤖 NAO6 Enhanced ROS2 Integration (nao6-ros2-enhanced.json)
Complete NAO6 robot control for HRIStudio experiments
Features:
- ✅ Speech Synthesis - Text-to-speech with volume and speed control
- ✅ Movement Control - Walking, turning, and precise positioning
- ✅ Posture Management - Stand, sit, crouch, and custom poses
- ✅ Head Movement - Gaze control and attention direction
- ✅ Gesture Library - Wave, point, applause, and custom animations
- ✅ LED Control - Visual feedback with colors and patterns
- ✅ Sensor Monitoring - Touch, bumper, sonar, and camera sensors
- ✅ Safety Features - Emergency stop and velocity limits
- ✅ System Control - Wake/rest and status monitoring
Requirements:
- NAO6 robot with NAOqi 2.8.7.4+
- ROS2 Humble or compatible
- Network connectivity to robot
nao_launchpackage for ROS integration
Installation:
- Install in HRIStudio study via Plugin Management
- Configure robot IP and WebSocket URL
- Launch ROS integration:
ros2 launch nao_launch nao6_production.launch.py - Test connection in HRIStudio experiment designer
Plugin Actions Reference
Speech & Communication
| Action | Description | Parameters |
|---|---|---|
| Speak Text | Text-to-speech synthesis | text, volume, speed, wait |
| LED Control | Visual feedback with colors | ledGroup, color, intensity, pattern |
Movement & Posture
| Action | Description | Parameters |
|---|---|---|
| Move Robot | Linear and angular movement | direction, distance, speed, duration |
| Set Posture | Predefined poses | posture, speed, waitForCompletion |
| Move Head | Gaze and attention control | yaw, pitch, speed, presetDirection |
| Perform Gesture | Animations and gestures | gesture, intensity, speed, repeatCount |
Sensors & Monitoring
| Action | Description | Parameters |
|---|---|---|
| Monitor Sensors | Touch, bumper, sonar detection | sensorType, duration, sensitivity |
| Check Robot Status | Battery, joints, system health | statusType, logToExperiment |
Safety & System
| Action | Description | Parameters |
|---|---|---|
| Emergency Stop | Immediate motion termination | stopType, safePosture |
| Wake Up / Rest | Power management | action, waitForCompletion |
Quick Start Examples
1. Basic Greeting
{
"sequence": [
{"action": "nao_wake_rest", "parameters": {"action": "wake"}},
{"action": "nao_speak", "parameters": {"text": "Hello! Welcome to our experiment."}},
{"action": "nao_gesture", "parameters": {"gesture": "wave"}}
]
}
2. Interactive Task
{
"sequence": [
{"action": "nao_speak", "parameters": {"text": "Please touch my head when ready."}},
{"action": "nao_sensor_monitor", "parameters": {"sensorType": "touch", "duration": 30}},
{"action": "nao_speak", "parameters": {"text": "Thank you! Let's begin."}}
]
}
3. Attention Direction
{
"sequence": [
{"action": "nao_head_movement", "parameters": {"presetDirection": "left"}},
{"action": "nao_speak", "parameters": {"text": "Look over there please."}},
{"action": "nao_gesture", "parameters": {"gesture": "point_left"}}
]
}
Installation & Setup
Prerequisites
- HRIStudio Platform - Web-based WoZ research platform
- NAO6 Robot - With NAOqi 2.8.7.4 or compatible
- ROS2 Humble - Robot Operating System 2
- Network Setup - Robot and computer on same network
Step 1: Install NAO ROS2 Packages
# Clone and build NAO ROS2 workspace
cd ~/naoqi_ros2_ws
colcon build --packages-select nao_launch
source install/setup.bash
Step 2: Start Robot Integration
# Launch comprehensive NAO integration
ros2 launch nao_launch nao6_production.launch.py \
nao_ip:=nao.local \
password:=robolab \
bridge_port:=9090
Step 3: Install Plugin in HRIStudio
- Access HRIStudio - Open your study in HRIStudio
- Plugin Management - Go to Study → Plugins
- Browse Store - Find "NAO6 Robot (Enhanced ROS2 Integration)"
- Install Plugin - Click install and configure settings
- Configure WebSocket - Set URL to
ws://localhost:9090
Step 4: Test Integration
- Open Experiment Designer - Create or edit an experiment
- Add Robot Action - Drag NAO6 action from plugin section
- Configure Parameters - Set speech text, movement, etc.
- Test Connection - Use "Check Robot Status" action
- Run Trial - Execute experiment and verify robot responds
Configuration Options
Robot Connection
- Robot IP - IP address or hostname (default:
nao.local) - Password - Robot authentication password
- WebSocket URL - ROS bridge connection (default:
ws://localhost:9090)
Safety Settings
- Max Linear Velocity - Maximum movement speed (default: 0.2 m/s)
- Max Angular Velocity - Maximum rotation speed (default: 0.8 rad/s)
- Safety Monitoring - Enable automatic safety checks
- Auto Wake-up - Automatically wake robot when experiment starts
Performance Tuning
- Speech Volume - Default volume level (default: 0.7)
- Movement Speed - Default movement speed factor (default: 0.5)
- Battery Monitoring - Track battery level during experiments
Troubleshooting
❌ Robot Not Responding
Problem: Commands sent but robot doesn't react
Solution:
- Check robot is awake: Press chest button for 3 seconds
- Verify network connectivity:
ping nao.local - Use "Wake Up / Rest Robot" action in experiment
❌ WebSocket Connection Failed
Problem: HRIStudio cannot connect to robot
Solution:
- Verify rosbridge is running:
ros2 node list | grep rosbridge - Check port availability:
ss -an | grep 9090 - Restart integration: Kill processes and relaunch
❌ Movements Too Fast/Unsafe
Problem: Robot moves too quickly or unpredictably
Solution:
- Reduce max velocities in plugin configuration
- Lower movement speed parameters in actions
- Use "Emergency Stop" action if needed
❌ Speech Not Working
Problem: Robot doesn't speak or audio issues
Solution:
- Check robot volume settings
- Verify text-to-speech service:
ros2 topic echo /speech - Ensure speakers are functioning
Safety Guidelines
⚠️ Important Safety Notes
- Clear Space - Ensure 2m clearance around robot during movement
- Emergency Stop - Keep emergency stop action easily accessible
- Supervision - Never leave robot unattended during experiments
- Battery Monitoring - Check battery level for long sessions
- Stable Surface - Keep robot on level, stable flooring
Emergency Procedures
# Immediate stop via CLI
ros2 topic pub --once /cmd_vel geometry_msgs/msg/Twist '{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}'
# Or use HRIStudio emergency stop action
# Add "Emergency Stop" action to experiment for quick access
Technical Details
ROS2 Topics Used
-
Input Topics (Robot Control):
/speech- Text-to-speech commands/cmd_vel- Movement commands/joint_angles- Joint position control/led_control- LED color control
-
Output Topics (Sensor Data):
/naoqi_driver/joint_states- Joint positions/naoqi_driver/bumper- Foot sensors/naoqi_driver/hand_touch- Hand sensors/naoqi_driver/head_touch- Head sensors/naoqi_driver/sonar/*- Ultrasonic sensors
WebSocket Communication
- Protocol - rosbridge v2.0 WebSocket
- Default Port - 9090
- Message Format - JSON-based ROS message serialization
- Authentication - None (local network)
Development & Contributing
Plugin Development
- Follow Schema - Use provided JSON schema for action definitions
- Test Thoroughly - Verify with real NAO6 hardware
- Document Actions - Provide clear parameter descriptions
- Safety First - Include appropriate safety measures
Testing Checklist
- Robot connectivity and wake-up
- All movement actions with safety limits
- Speech synthesis with various texts
- Sensor monitoring and event detection
- Emergency stop functionality
- WebSocket communication stability
Support & Resources
Documentation
- HRIStudio Docs - Platform documentation
- NAO6 Integration Guide - Complete setup guide
- Quick Reference - Essential commands
Community & Support
- GitHub Repository - hristudio/nao6-ros2-plugins
- Issue Tracker - Report bugs and request features
- Email Support - robolab@hristudio.com
Version Information
- Plugin Version - 2.0.0 (Enhanced Integration)
- HRIStudio Compatibility - v1.0+
- ROS2 Distro - Humble (recommended)
- NAO6 Compatibility - NAOqi 2.8.7.4+
- Last Updated - December 2024
License
MIT License - See LICENSE file for details
Citation
If you use these plugins in your research, please cite:
@software{nao6_hristudio_plugins,
title={NAO6 HRIStudio Integration Plugins},
author={HRIStudio RoboLab Team},
year={2024},
url={https://github.com/hristudio/nao6-ros2-plugins},
version={2.0.0}
}
Maintained by: HRIStudio RoboLab Team
Contact: robolab@hristudio.com
Repository: hristudio/nao6-ros2-plugins
Part of the HRIStudio platform for advancing Human-Robot Interaction research