mirror of
https://github.com/soconnor0919/hristudio.git
synced 2025-12-11 14:44:44 -05:00
feat: Complete NAO6 ROS2 integration for HRIStudio
🤖 Full NAO6 Robot Integration with ROS2 and WebSocket Control ## New Features - **NAO6 Test Interface**: Real-time robot control via web browser at /nao-test - **ROS2 Integration**: Complete naoqi_driver2 + rosbridge setup with launch files - **WebSocket Control**: Direct robot control through HRIStudio web interface - **Plugin System**: NAO6 robot plugins for movement, speech, and sensors - **Database Integration**: Updated seed data with NAO6 robot and plugin definitions ## Key Components Added - **Web Interface**: src/app/(dashboard)/nao-test/page.tsx - Complete robot control dashboard - **Plugin Repository**: public/nao6-plugins/ - Local NAO6 plugin definitions - **Database Updates**: Updated robots table with ROS2 protocol and enhanced capabilities - **Comprehensive Documentation**: Complete setup, troubleshooting, and quick reference guides ## Documentation - **Complete Integration Guide**: docs/nao6-integration-complete-guide.md (630 lines) - **Quick Reference**: docs/nao6-quick-reference.md - Essential commands and troubleshooting - **Updated Setup Guide**: Enhanced docs/nao6-ros2-setup.md with critical notes - **Updated Main Docs**: docs/README.md with robot integration section ## Robot Capabilities - ✅ **Speech Control**: Text-to-speech with emotion and language support - ✅ **Movement Control**: Walking, turning, stopping with configurable speeds - ✅ **Head Control**: Precise yaw/pitch positioning with sliders - ✅ **Sensor Monitoring**: Joint states, touch sensors, sonar, cameras, IMU - ✅ **Safety Features**: Emergency stop, movement limits, real-time monitoring - ✅ **Real-time Data**: Live sensor data streaming through WebSocket ## Critical Discovery **Robot Wake-Up Requirement**: NAO robots start in safe mode with loose joints and must be explicitly awakened via SSH before movement commands work. This is now documented with automated solutions. ## Technical Implementation - **ROS2 Humble**: Complete naoqi_driver2 integration with rosbridge WebSocket server - **Topic Mapping**: Correct namespace handling for control vs. sensor topics - **Plugin Architecture**: Extensible NAO6 action definitions with parameter validation - **Database Schema**: Enhanced robots table with comprehensive NAO6 capabilities - **Import Consistency**: Fixed React import aliases to use ~ consistently ## Testing & Verification - ✅ Tested with NAO V6.0 / NAOqi 2.8.7.4 / ROS2 Humble - ✅ Complete end-to-end testing from web interface to robot movement - ✅ Comprehensive troubleshooting procedures documented - ✅ Production-ready launch scripts and deployment guides ## Production Ready This integration is fully tested and production-ready for Human-Robot Interaction research with complete documentation, safety guidelines, and troubleshooting procedures.
This commit is contained in:
@@ -216,9 +216,20 @@ async function main() {
|
||||
manufacturer: "SoftBank Robotics",
|
||||
model: "NAO V6",
|
||||
description:
|
||||
"Humanoid robot designed for education, research, and social interaction",
|
||||
capabilities: ["speech", "vision", "walking", "gestures"],
|
||||
communicationProtocol: "rest" as const,
|
||||
"Humanoid robot designed for education, research, and social interaction with ROS2 integration",
|
||||
capabilities: [
|
||||
"speech",
|
||||
"vision",
|
||||
"walking",
|
||||
"gestures",
|
||||
"joint_control",
|
||||
"touch_sensors",
|
||||
"sonar_sensors",
|
||||
"camera_feed",
|
||||
"imu",
|
||||
"odometry",
|
||||
],
|
||||
communicationProtocol: "ros2" as const,
|
||||
},
|
||||
];
|
||||
|
||||
@@ -295,6 +306,17 @@ async function main() {
|
||||
syncStatus: "pending" as const,
|
||||
createdBy: seanUser.id,
|
||||
},
|
||||
{
|
||||
name: "NAO6 ROS2 Integration Repository",
|
||||
url: "http://localhost:3000/nao6-plugins",
|
||||
description:
|
||||
"Official NAO6 robot plugins for ROS2-based Human-Robot Interaction experiments",
|
||||
trustLevel: "official" as const,
|
||||
isEnabled: true,
|
||||
isOfficial: true,
|
||||
syncStatus: "pending" as const,
|
||||
createdBy: seanUser.id,
|
||||
},
|
||||
];
|
||||
|
||||
const insertedRepos = await db
|
||||
|
||||
Reference in New Issue
Block a user