feat: Redesign Landing, Auth, and Dashboard Pages

Also fixed schema type exports and seed script errors.
This commit is contained in:
2026-02-01 22:28:19 -05:00
parent 816b2b9e31
commit dbfdd91dea
300 changed files with 17239 additions and 5952 deletions

30
docs/README.md Normal file → Executable file
View File

@@ -112,10 +112,16 @@ This documentation suite provides everything needed to understand, build, deploy
- Technical debt resolution
- UI/UX enhancements
### **🤖 Robot Integration Guides**
14. **[NAO6 Complete Integration Guide](./nao6-integration-complete-guide.md)** - Comprehensive NAO6 setup, troubleshooting, and production deployment
15. **[NAO6 Quick Reference](./nao6-quick-reference.md)** - Essential commands and troubleshooting for NAO6 integration
16. **[NAO6 ROS2 Setup](./nao6-ros2-setup.md)** - Basic NAO6 ROS2 driver installation guide
### **📖 Academic References**
14. **[Research Paper](./root.tex)** - Academic LaTeX document
15. **[Bibliography](./refs.bib)** - Research references
17. **[Research Paper](./root.tex)** - Academic LaTeX document
18. **[Bibliography](./refs.bib)** - Research references
---
@@ -152,8 +158,14 @@ This documentation suite provides everything needed to understand, build, deploy
### **For Researchers**
1. **[Project Overview](./project-overview.md)** - Research platform capabilities
2. **[Feature Requirements](./feature-requirements.md)** - User workflows and features
3. **[ROS2 Integration](./ros2-integration.md)** - Robot platform integration
4. **[Research Paper](./root.tex)** - Academic context and methodology
3. **[NAO6 Quick Reference](./nao6-quick-reference.md)** - Essential NAO6 robot control commands
4. **[ROS2 Integration](./ros2-integration.md)** - Robot platform integration
5. **[Research Paper](./root.tex)** - Academic context and methodology
### **For Robot Integration**
1. **[NAO6 Complete Integration Guide](./nao6-integration-complete-guide.md)** - Full NAO6 setup and troubleshooting
2. **[NAO6 Quick Reference](./nao6-quick-reference.md)** - Essential commands and quick fixes
3. **[ROS2 Integration](./ros2-integration.md)** - General robot integration patterns
---
@@ -219,6 +231,13 @@ bun dev
- **Comprehensive Testing**: Realistic seed data with complete scenarios
- **Developer Friendly**: Clear patterns and extensive documentation
### **Robot Integration**
- **NAO6 Full Support**: Complete ROS2 integration with movement, speech, and sensor control
- **Real-time Control**: WebSocket-based robot control through web interface
- **Safety Features**: Emergency stops, movement limits, and comprehensive monitoring
- **Production Ready**: Tested with NAO V6.0 / NAOqi 2.8.7.4 / ROS2 Humble
- **Troubleshooting Guides**: Complete documentation for setup and problem resolution
---
## 🎊 **Project Status: Production Ready**
@@ -238,6 +257,7 @@ bun dev
-**Core Blocks System** - 26 blocks across events, wizard, control, observation
-**Plugin Architecture** - Unified system for core blocks and robot actions
-**Development Environment** - Realistic test data and scenarios
-**NAO6 Robot Integration** - Full ROS2 integration with comprehensive control and monitoring
---
@@ -271,7 +291,7 @@ The platform is considered production-ready when:
- ✅ Performance targets are achieved
- ✅ Type safety is complete throughout
**All success criteria have been met. HRIStudio is ready for production deployment.**
**All success criteria have been met. HRIStudio is ready for production deployment with full NAO6 robot integration support.**
---

0
docs/api-routes.md Normal file → Executable file
View File

0
docs/block-designer-implementation.md Normal file → Executable file
View File

0
docs/block-designer.md Normal file → Executable file
View File

0
docs/cleanup-summary.md Normal file → Executable file
View File

0
docs/core-blocks-system.md Normal file → Executable file
View File

0
docs/database-schema.md Normal file → Executable file
View File

0
docs/deployment-operations.md Normal file → Executable file
View File

0
docs/experiment-designer-redesign.md Normal file → Executable file
View File

0
docs/experiment-designer-step-integration.md Normal file → Executable file
View File

0
docs/feature-requirements.md Normal file → Executable file
View File

0
docs/flow-designer-connections.md Normal file → Executable file
View File

0
docs/implementation-details.md Normal file → Executable file
View File

0
docs/implementation-guide.md Normal file → Executable file
View File

View File

@@ -1,233 +0,0 @@
# 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 `/speech` topic
#### 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
1. **Command Execution**:
- HRIStudio wizard interface → WebSocket → rosbridge → ROS2 topic → naoqi_driver2 → NAO6
2. **Sensor Data**:
- NAO6 → naoqi_driver2 → ROS2 topic → rosbridge → WebSocket → HRIStudio
3. **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
1. **Plugin Definition**: Full NAO6 plugin with proper schema
2. **Action Library**: 10 comprehensive robot actions
3. **Transform Functions**: Complete message conversion system
4. **Documentation**: Setup guide and integration instructions
5. **Safety Systems**: Joint limits, velocity clamping, emergency stops
6. **Repository Integration**: Plugin added to official repository
### 🔄 Usage Workflow
1. **Setup Phase**:
- Install ROS2 Humble on companion computer
- Configure NAO6 network connection
- Launch naoqi_driver2 and rosbridge
2. **HRIStudio Configuration**:
- Install NAO6 plugin in study
- Configure ROS bridge URL
- Design experiments using NAO6 actions
3. **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
1. Follow setup guide in `docs/nao6-ros2-setup.md`
2. Install NAO6 plugin in HRIStudio study
3. Create experiments using available actions
4. Run trials with real-time robot control
### Advanced Integration
1. **Custom Actions**: Extend plugin with study-specific behaviors
2. **Multi-Robot**: Scale to multiple NAO6 robots
3. **Navigation**: Add SLAM and path planning capabilities
4. **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+

177
docs/nao6-quick-reference.md Executable file
View File

@@ -0,0 +1,177 @@
# NAO6 Quick Reference
Essential commands for using NAO6 robots with HRIStudio.
## Quick Start
### 1. Start NAO Integration
```bash
cd ~/naoqi_ros2_ws
source install/setup.bash
ros2 launch nao_launch nao6_hristudio.launch.py nao_ip:=nao.local password:=robolab
```
### 2. Wake Robot
Press chest button for 3 seconds, or use:
```bash
# Via SSH (institution-specific password)
ssh nao@nao.local
# Then run wake-up command (see integration repo docs)
```
### 3. Start HRIStudio
```bash
cd ~/Documents/Projects/hristudio
bun dev
```
### 4. Test Connection
- Open: `http://localhost:3000/nao-test`
- Click "Connect"
- Test robot commands
## Essential Commands
### Test Connectivity
```bash
ping nao.local # Test network
ros2 topic list | grep naoqi # Check ROS topics
```
### Manual Control
```bash
# Speech
ros2 topic pub --once /speech std_msgs/String "data: 'Hello world'"
# Movement (robot must be awake!)
ros2 topic pub --once /cmd_vel geometry_msgs/msg/Twist '{linear: {x: 0.1}}'
# Stop
ros2 topic pub --once /cmd_vel geometry_msgs/msg/Twist '{linear: {x: 0.0}}'
```
### Monitor Status
```bash
ros2 topic echo /naoqi_driver/battery # Battery level
ros2 topic echo /naoqi_driver/joint_states # Joint positions
```
## Troubleshooting
**Robot not moving:** Press chest button for 3 seconds to wake up
**WebSocket fails:** Check rosbridge is running on port 9090
```bash
ss -an | grep 9090
```
**Connection lost:** Restart rosbridge
```bash
pkill -f rosbridge
ros2 run rosbridge_server rosbridge_websocket
```
## ROS Topics
**Commands (Input):**
- `/speech` - Text-to-speech
- `/cmd_vel` - Movement
- `/joint_angles` - Joint control
**Sensors (Output):**
- `/naoqi_driver/joint_states` - Joint data
- `/naoqi_driver/battery` - Battery level
- `/naoqi_driver/bumper` - Foot sensors
- `/naoqi_driver/sonar/*` - Distance sensors
- `/naoqi_driver/camera/*` - Camera feeds
## WebSocket
**URL:** `ws://localhost:9090`
**Example message:**
```javascript
{
"op": "publish",
"topic": "/speech",
"type": "std_msgs/String",
"msg": {"data": "Hello world"}
}
```
## More Information
See **[nao6-hristudio-integration](../../nao6-hristudio-integration/)** repository for:
- Complete installation guide
- Detailed usage instructions
- Full troubleshooting guide
- Plugin definitions
- Launch file configurations
## Common Use Cases
### Make Robot Speak
```bash
ros2 topic pub --once /speech std_msgs/String "data: 'Welcome to the experiment'"
```
### Walk Forward 3 Steps
```bash
ros2 topic pub --times 3 /cmd_vel geometry_msgs/msg/Twist '{linear: {x: 0.1, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}'
```
### Turn Head Left
```bash
ros2 topic pub --once /joint_angles naoqi_bridge_msgs/msg/JointAnglesWithSpeed '{joint_names: ["HeadYaw"], joint_angles: [0.8], speed: 0.2}'
```
### Emergency Stop
```bash
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}}'
```
## 🚨 Safety Notes
- **Always wake up robot before movement commands**
- **Keep emergency stop accessible**
- **Start with small movements (0.05 m/s)**
- **Monitor battery level during experiments**
- **Ensure clear space around robot**
## 📝 Credentials
**Default NAO Login:**
- Username: `nao`
- Password: `robolab` (institution-specific)
**HRIStudio Login:**
- Email: `sean@soconnor.dev`
- Password: `password123`
## 🔄 Complete Restart Procedure
```bash
# 1. Kill all processes
sudo fuser -k 9090/tcp
pkill -f "rosbridge\|naoqi\|ros2"
# 2. Restart database
sudo docker compose down && sudo docker compose up -d
# 3. Start ROS integration
cd ~/naoqi_ros2_ws && source install/setup.bash
ros2 launch install/nao_launch/share/nao_launch/launch/nao6_hristudio.launch.py nao_ip:=nao.local password:=robolab
# 4. Wake up robot (in another terminal)
sshpass -p "robolab" ssh nao@nao.local "python2 -c \"import sys; sys.path.append('/opt/aldebaran/lib/python2.7/site-packages'); import naoqi; naoqi.ALProxy('ALMotion', '127.0.0.1', 9559).wakeUp()\""
# 5. Start HRIStudio (in another terminal)
cd /home/robolab/Documents/Projects/hristudio && bun dev
```
---
**📖 For detailed setup instructions, see:** [NAO6 Complete Integration Guide](./nao6-integration-complete-guide.md)
**✅ Integration Status:** Production Ready
**🤖 Tested With:** NAO V6.0 / NAOqi 2.8.7.4 / ROS2 Humble

View File

@@ -1,372 +0,0 @@
# NAO6 ROS2 Setup Guide for HRIStudio
This guide walks you through setting up your NAO6 robot with ROS2 integration for use with HRIStudio's experiment platform.
## Prerequisites
- NAO6 robot with NAOqi OS 2.8.7+
- Ubuntu 22.04.5 LTS computer (x86_64)
- Network connectivity between computer and NAO6
- Administrative access to both systems
## Overview
The integration uses the `naoqi_driver2` package to bridge NAOqi with ROS2, exposing all robot capabilities through standard ROS2 topics and services. HRIStudio connects via WebSocket using `rosbridge_server`.
## Step 1: NAO6 Network Configuration
1. **Power on your NAO6** and wait for boot completion
2. **Connect NAO6 to your network**:
- Press chest button to get IP address
- Or use Choregraphe to configure WiFi
3. **Verify connectivity**:
```bash
ping nao.local # or robot IP address
```
## Step 2: ROS2 Humble Installation
Install ROS2 Humble on your Ubuntu 22.04 system:
```bash
# Update system
sudo apt update && sudo apt upgrade -y
# Install ROS2 Humble
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
sudo apt update
sudo apt install ros-humble-desktop
sudo apt install ros-dev-tools
# Source ROS2
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
```
## Step 3: Install NAO ROS2 Packages
Install the required ROS2 packages for NAO6 integration:
```bash
# Install naoqi_driver2 and dependencies
sudo apt install ros-humble-naoqi-driver2
sudo apt install ros-humble-naoqi-bridge-msgs
sudo apt install ros-humble-geometry-msgs
sudo apt install ros-humble-sensor-msgs
sudo apt install ros-humble-nav-msgs
sudo apt install ros-humble-std-msgs
# Install rosbridge for HRIStudio communication
sudo apt install ros-humble-rosbridge-suite
# Install additional useful packages
sudo apt install ros-humble-rqt
sudo apt install ros-humble-rqt-common-plugins
```
## Step 4: Configure NAO Connection
Create a launch file for easy NAO6 connection:
```bash
# Create workspace
mkdir -p ~/nao_ws/src
cd ~/nao_ws
# Create launch file directory
mkdir -p src/nao_launch/launch
# Create the launch file
cat > src/nao_launch/launch/nao6_hristudio.launch.py << 'EOF'
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
from launch.launch_description_sources import PythonLaunchDescriptionSource
from ament_index_python.packages import get_package_share_directory
import os
def generate_launch_description():
return LaunchDescription([
# NAO IP configuration
DeclareLaunchArgument('nao_ip', default_value='nao.local'),
DeclareLaunchArgument('nao_port', default_value='9559'),
DeclareLaunchArgument('bridge_port', default_value='9090'),
# NAOqi Driver
Node(
package='naoqi_driver2',
executable='naoqi_driver',
name='naoqi_driver',
parameters=[{
'nao_ip': LaunchConfiguration('nao_ip'),
'nao_port': LaunchConfiguration('nao_port'),
'publish_joint_states': True,
'publish_odometry': True,
'publish_camera': True,
'publish_sensors': True,
'joint_states_frequency': 30.0,
'odom_frequency': 30.0,
'camera_frequency': 15.0,
'sensor_frequency': 10.0
}],
output='screen'
),
# Rosbridge WebSocket Server
Node(
package='rosbridge_server',
executable='rosbridge_websocket',
name='rosbridge_websocket',
parameters=[{
'port': LaunchConfiguration('bridge_port'),
'address': '0.0.0.0',
'authenticate': False,
'fragment_timeout': 600,
'delay_between_messages': 0,
'max_message_size': 10000000
}],
output='screen'
)
])
EOF
# Create package.xml
cat > src/nao_launch/package.xml << 'EOF'
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypeid="pf3"?>
<package format="3">
<name>nao_launch</name>
<version>1.0.0</version>
<description>Launch files for NAO6 HRIStudio integration</description>
<maintainer email="you@example.com">Your Name</maintainer>
<license>MIT</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<exec_depend>launch</exec_depend>
<exec_depend>launch_ros</exec_depend>
<exec_depend>naoqi_driver2</exec_depend>
<exec_depend>rosbridge_server</exec_depend>
</package>
EOF
# Create CMakeLists.txt
cat > src/nao_launch/CMakeLists.txt << 'EOF'
cmake_minimum_required(VERSION 3.8)
project(nao_launch)
find_package(ament_cmake REQUIRED)
install(DIRECTORY launch/
DESTINATION share/${PROJECT_NAME}/launch/
)
ament_package()
EOF
# Build the workspace
colcon build
source install/setup.bash
```
## Step 5: Test NAO Connection
Start the NAO6 ROS2 integration:
```bash
cd ~/nao_ws
source install/setup.bash
# Launch with your NAO's IP address
ros2 launch nao_launch nao6_hristudio.launch.py nao_ip:=YOUR_NAO_IP
```
Replace `YOUR_NAO_IP` with your NAO's actual IP address (e.g., `192.168.1.100`).
## Step 6: Verify ROS2 Topics
In a new terminal, verify that NAO topics are publishing:
```bash
source /opt/ros/humble/setup.bash
# List all topics
ros2 topic list
# You should see these NAO6 topics:
# /cmd_vel - Robot velocity commands
# /odom - Odometry data
# /joint_states - Joint positions and velocities
# /joint_angles - NAO-specific joint control
# /camera/front/image_raw - Front camera
# /camera/bottom/image_raw - Bottom camera
# /imu/torso - Inertial measurement unit
# /bumper - Foot bumper sensors
# /hand_touch - Hand tactile sensors
# /head_touch - Head tactile sensors
# /sonar/left - Left ultrasonic sensor
# /sonar/right - Right ultrasonic sensor
# /info - Robot information
# Test specific topics
ros2 topic echo /joint_states --once
ros2 topic echo /odom --once
ros2 topic echo /info --once
```
## Step 7: Test Robot Control
Test basic robot control:
```bash
# Make NAO say something
ros2 topic pub /speech std_msgs/msg/String "data: 'Hello from ROS2!'" --once
# Move head (be careful with joint limits)
ros2 topic pub /joint_angles naoqi_bridge_msgs/msg/JointAnglesWithSpeed \
"joint_names: ['HeadYaw']
joint_angles: [0.5]
speed: 0.3" --once
# Basic walking command (very small movement)
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist \
"linear: {x: 0.1, y: 0.0, z: 0.0}
angular: {x: 0.0, y: 0.0, z: 0.0}" --once
# Stop movement
ros2 topic pub /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}" --once
```
## Step 8: Configure HRIStudio
1. **Start HRIStudio** with your development setup
2. **Add NAO6 Plugin Repository**:
- Go to Admin → Plugin Repositories
- Add the HRIStudio official repository if not already present
- Sync to get the latest plugins including `nao6-ros2`
3. **Install NAO6 Plugin**:
- In your study, go to Plugins
- Install the "NAO6 Robot (ROS2 Integration)" plugin
- Configure the ROS bridge URL: `ws://YOUR_COMPUTER_IP:9090`
4. **Create Experiment**:
- Use the experiment designer
- Add NAO6 actions from the robot blocks section
- Configure parameters for each action
5. **Run Trial**:
- Ensure your NAO6 ROS2 system is running
- Start a trial in HRIStudio
- Control the robot through the wizard interface
## Available Robot Actions
Your NAO6 plugin provides these actions for experiments:
### Movement Actions
- **Walk with Velocity**: Control linear/angular velocity
- **Stop Walking**: Emergency stop
- **Set Joint Angle**: Control individual joints
- **Turn Head**: Head orientation control
### Interaction Actions
- **Say Text**: Text-to-speech via ROS2
### Sensor Actions
- **Get Camera Image**: Capture from front/bottom cameras
- **Get Joint States**: Read all joint positions
- **Get IMU Data**: Inertial measurement data
- **Get Bumper Status**: Foot contact sensors
- **Get Touch Sensors**: Hand/head touch detection
- **Get Sonar Range**: Ultrasonic distance sensors
- **Get Robot Info**: General robot status
## Troubleshooting
### NAO Connection Issues
```bash
# Check NAO network connectivity
ping nao.local
# Check NAOqi service
telnet nao.local 9559
# Restart NAOqi on NAO
# (Use robot's web interface or Choregraphe)
```
### ROS2 Issues
```bash
# Check if naoqi_driver2 is running
ros2 node list | grep naoqi
# Check topic publication rates
ros2 topic hz /joint_states
# Restart the launch file
ros2 launch nao_launch nao6_hristudio.launch.py nao_ip:=YOUR_NAO_IP
```
### HRIStudio Connection Issues
```bash
# Verify rosbridge is running
netstat -an | grep 9090
# Check WebSocket connection
curl -i -N -H "Connection: Upgrade" \
-H "Upgrade: websocket" \
-H "Sec-WebSocket-Key: test" \
-H "Sec-WebSocket-Version: 13" \
http://localhost:9090
```
### Robot Safety
- Always keep emergency stop accessible
- Start with small movements and low speeds
- Monitor robot battery level
- Ensure clear space around robot
- Never leave robot unattended during operation
## Performance Optimization
### Network Optimization
```bash
# Increase network buffer sizes for camera data
sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.rmem_default=26214400
```
### ROS2 Optimization
```bash
# Adjust QoS settings for better performance
export RMW_IMPLEMENTATION=rmw_cyclonedx_cpp
export CYCLONEDX_URI=file:///path/to/cyclonedx.xml
```
## Next Steps
1. **Experiment Design**: Create experiments using NAO6 actions
2. **Data Collection**: Use sensor actions for research data
3. **Custom Actions**: Extend the plugin with custom behaviors
4. **Multi-Robot**: Scale to multiple NAO6 robots
5. **Advanced Features**: Implement navigation, manipulation, etc.
## Support Resources
- **NAO Documentation**: https://developer.softbankrobotics.com/nao6
- **naoqi_driver2**: https://github.com/ros-naoqi/naoqi_driver2
- **ROS2 Humble**: https://docs.ros.org/en/humble/
- **HRIStudio Docs**: See `docs/` folder
- **Community**: HRIStudio Discord/Forum
---
**Success!** Your NAO6 is now ready for use with HRIStudio experiments. The robot's capabilities are fully accessible through the visual experiment designer and real-time wizard interface.

0
docs/paper.md Normal file → Executable file
View File

0
docs/plugin-system-implementation-guide.md Normal file → Executable file
View File

0
docs/project-overview.md Normal file → Executable file
View File

0
docs/project-status.md Normal file → Executable file
View File

0
docs/proposal.tex Normal file → Executable file
View File

0
docs/quick-reference.md Normal file → Executable file
View File

0
docs/roman-2025-talk.md Normal file → Executable file
View File

0
docs/ros2-integration.md Normal file → Executable file
View File

0
docs/ros2_naoqi.md Normal file → Executable file
View File

0
docs/route-consolidation-summary.md Normal file → Executable file
View File

0
docs/thesis-project-priorities.md Normal file → Executable file
View File

0
docs/trial-system-overhaul.md Normal file → Executable file
View File

0
docs/wizard-interface-final.md Normal file → Executable file
View File

0
docs/wizard-interface-guide.md Normal file → Executable file
View File

0
docs/wizard-interface-redesign.md Normal file → Executable file
View File

0
docs/wizard-interface-summary.md Normal file → Executable file
View File

0
docs/work_in_progress.md Normal file → Executable file
View File