7.8 KiB
NAO6 ROS2 Integration Summary for HRIStudio
Overview
This document summarizes the complete NAO6 ROS2 integration that has been implemented for HRIStudio, providing researchers with full access to NAO6 capabilities through the visual experiment designer and real-time wizard interface.
What's Been Implemented
1. NAO6 ROS2 Plugin (nao6-ros2.json)
A comprehensive robot plugin that exposes all NAO6 capabilities through standard ROS2 topics:
Location: robot-plugins/plugins/nao6-ros2.json
Key Features:
- Full ROS2 integration via
naoqi_driver2 - 10 robot actions across movement, interaction, and sensors
- Proper HRIStudio plugin schema compliance
- Safety limits and parameter validation
- Transform functions for message conversion
2. Robot Actions Available
Movement Actions
- Walk with Velocity: Control linear/angular walking velocities
- Stop Walking: Emergency stop for immediate movement cessation
- Set Joint Angle: Control individual joint positions (25 DOF)
- Turn Head: Dedicated head orientation control
Interaction Actions
- Say Text: Text-to-speech via ROS2
/speechtopic
Sensor Actions
- Get Camera Image: Capture from front or bottom cameras
- Get Joint States: Read current joint positions and velocities
- Get IMU Data: Inertial measurement from torso sensor
- Get Bumper Status: Foot contact sensor readings
- Get Touch Sensors: Hand and head tactile sensor states
- Get Sonar Range: Ultrasonic distance measurements
- Get Robot Info: General robot status and information
3. ROS2 Topic Mapping
The plugin maps to these standard NAO6 ROS2 topics:
/cmd_vel → Robot velocity commands (Twist)
/odom → Odometry data (Odometry)
/joint_states → Joint positions/velocities (JointState)
/joint_angles → NAO-specific joint control (JointAnglesWithSpeed)
/camera/front/image_raw → Front camera stream (Image)
/camera/bottom/image_raw → Bottom camera stream (Image)
/imu/torso → Inertial measurement (Imu)
/speech → Text-to-speech commands (String)
/bumper → Foot bumper sensors (Bumper)
/hand_touch → Hand touch sensors (HandTouch)
/head_touch → Head touch sensors (HeadTouch)
/sonar/left → Left ultrasonic sensor (Range)
/sonar/right → Right ultrasonic sensor (Range)
/info → Robot information (RobotInfo)
4. Transform Functions (nao6-transforms.ts)
Location: src/lib/nao6-transforms.ts
Comprehensive message conversion functions:
- Parameter validation and safety limits
- ROS2 message format compliance
- Joint limit enforcement (25 DOF with proper ranges)
- Velocity clamping for safe operation
- Helper functions for UI integration
5. Setup Documentation (nao6-ros2-setup.md)
Location: docs/nao6-ros2-setup.md
Complete setup guide covering:
- ROS2 Humble installation on Ubuntu 22.04
- NAO6 network configuration
- naoqi_driver2 and rosbridge setup
- Custom launch file creation
- Testing and validation procedures
- HRIStudio plugin configuration
- Troubleshooting and safety guidelines
Technical Architecture
ROS2 Integration Stack
HRIStudio (Web Interface)
↓ WebSocket
rosbridge_server (Port 9090)
↓ ROS2 Topics/Services
naoqi_driver2
↓ NAOqi Protocol (Port 9559)
NAO6 Robot
Message Flow
-
Command Execution:
- HRIStudio wizard interface → WebSocket → rosbridge → ROS2 topic → naoqi_driver2 → NAO6
-
Sensor Data:
- NAO6 → naoqi_driver2 → ROS2 topic → rosbridge → WebSocket → HRIStudio
-
Real-time Feedback:
- Continuous sensor streams for live monitoring
- Event logging for research data capture
Safety Features
Joint Limits Enforcement
- All 25 NAO6 joints have proper min/max limits defined
- Automatic clamping prevents damage from invalid commands
- Parameter validation before message transmission
Velocity Limits
- Linear velocity: -0.55 to 0.55 m/s
- Angular velocity: -2.0 to 2.0 rad/s
- Automatic clamping for safe operation
Emergency Stops
- Dedicated stop action for immediate movement cessation
- Timeout protection on all actions
- Connection monitoring and error handling
Integration Status
✅ Completed Components
- Plugin Definition: Full NAO6 plugin with proper schema
- Action Library: 10 comprehensive robot actions
- Transform Functions: Complete message conversion system
- Documentation: Setup guide and integration instructions
- Safety Systems: Joint limits, velocity clamping, emergency stops
- Repository Integration: Plugin added to official repository
🔄 Usage Workflow
-
Setup Phase:
- Install ROS2 Humble on companion computer
- Configure NAO6 network connection
- Launch naoqi_driver2 and rosbridge
-
HRIStudio Configuration:
- Install NAO6 plugin in study
- Configure ROS bridge URL
- Design experiments using NAO6 actions
-
Experiment Execution:
- Real-time robot control through wizard interface
- Live sensor data monitoring
- Comprehensive event logging
Research Capabilities
Experiment Design
- Visual programming with NAO6-specific actions
- Parameter configuration with safety validation
- Multi-modal data collection coordination
Data Capture
- Synchronized robot commands and sensor data
- Video streams from dual cameras
- Inertial, tactile, and proximity sensor logs
- Speech synthesis and timing records
Reproducibility
- Standardized action definitions
- Consistent parameter schemas
- Version-controlled plugin specifications
- Complete experiment protocol documentation
Next Steps for Researchers
Immediate Use
- Follow setup guide in
docs/nao6-ros2-setup.md - Install NAO6 plugin in HRIStudio study
- Create experiments using available actions
- Run trials with real-time robot control
Advanced Integration
- Custom Actions: Extend plugin with study-specific behaviors
- Multi-Robot: Scale to multiple NAO6 robots
- Navigation: Add SLAM and path planning capabilities
- Manipulation: Implement object interaction behaviors
Research Applications
- Human-robot interaction studies
- Social robotics experiments
- Gesture and speech coordination research
- Sensor fusion and behavior analysis
- Wizard-of-Oz methodology validation
Support and Resources
Documentation
- Setup Guide:
docs/nao6-ros2-setup.md - Plugin Schema:
robot-plugins/docs/schema.md - ROS2 Integration:
docs/ros2-integration.md - Transform Functions:
src/lib/nao6-transforms.ts
External Resources
- NAO6 Documentation: https://developer.softbankrobotics.com/nao6
- naoqi_driver2: https://github.com/ros-naoqi/naoqi_driver2
- ROS2 Humble: https://docs.ros.org/en/humble/
- rosbridge: http://wiki.ros.org/rosbridge_suite
Technical Support
- HRIStudio Issues: GitHub repository
- ROS2 Community: ROS Discourse forum
- NAO6 Support: SoftBank Robotics developer portal
Conclusion
The NAO6 ROS2 integration provides researchers with a complete, production-ready system for conducting Human-Robot Interaction studies. The integration leverages:
- Standard ROS2 protocols for reliable communication
- Comprehensive safety systems for secure operation
- Visual experiment design for accessible research tools
- Real-time control interfaces for dynamic experiment execution
- Complete data capture for rigorous analysis
This implementation enables researchers to focus on their studies rather than technical integration, while maintaining the flexibility and control needed for cutting-edge HRI research.
Status: ✅ Production Ready
Last Updated: December 2024
Compatibility: HRIStudio v1.0+, ROS2 Humble, NAO6 with NAOqi 2.8.7+