mirror of
https://github.com/soconnor0919/hristudio.git
synced 2026-03-24 03:37:51 -04:00
- Move 30+ outdated docs to docs/_archive/ - Move obsolete root files to _archive/ - Update README.md (Better Auth, current features) - Update docs/README.md (new architecture diagram) - Update docs/quick-reference.md (consolidated) - Update docs/project-status.md (March 2026 state) - Update docs/nao6-quick-reference.md (14 actions, Docker services) - Update docs/implementation-guide.md (Better Auth, git submodule) - Update docs/proposal.tex (timeline updates) - Archive errors.txt, plugin_dump.json, test HTML files
4.5 KiB
Executable File
4.5 KiB
Executable File
NAO6 Quick Reference
Essential commands for using NAO6 robots with HRIStudio.
Quick Start (Docker)
1. Start Docker Integration
cd ~/Documents/Projects/nao6-hristudio-integration
docker compose up -d
The robot will automatically wake up and autonomous life will be disabled on startup.
2. Start HRIStudio
cd ~/Documents/Projects/hristudio
bun dev
3. Verify Connection
- Open:
http://localhost:3000 - Navigate to trial wizard
- WebSocket should connect automatically
Docker Services
| Service | Port | Description |
|---|---|---|
| nao_driver | - | NAOqi driver + robot init |
| ros_bridge | 9090 | WebSocket bridge |
| ros_api | - | ROS API services |
Auto-initialization: On Docker startup, init_robot.sh runs automatically via SSH to:
- Wake up the robot (
ALMotion.wakeUp) - Disable autonomous life (
ALAutonomousLife.setState disabled) - Ensure robot is ready for commands
ROS Topics
Commands (Publish to these):
/speech - Text-to-speech
/cmd_vel - Velocity commands (movement)
/joint_angles - Joint position commands
Sensors (Subscribe to these):
/camera/front/image_raw - Front camera
/camera/bottom/image_raw - Bottom camera
/joint_states - Joint positions
/imu/torso - IMU data
/bumper - Foot bumpers
/{hand,head}_touch - Touch sensors
/sonar/{left,right} - Ultrasonic sensors
/info - Robot info
Robot Actions (HRIStudio)
When actions are triggered via the wizard interface, they publish to these topics:
| Action | Topic | Message Type |
|---|---|---|
| say | /speech |
std_msgs/String |
| say_with_emotion | /speech |
std_msgs/String (with NAOqi markup) |
| wave_goodbye | /speech |
std_msgs/String + gesture |
| walk | /cmd_vel |
geometry_msgs/Twist |
| turn | /cmd_vel |
geometry_msgs/Twist |
| move_to_posture | /service/robot_pose |
naoqi_bridge_msgs/SetRobotPose |
| play_animation | /animation |
std_msgs/String |
| set_eye_leds | /leds/eyes |
std_msgs/ColorRGBA |
Manual Control
Test Connectivity
# Network
ping 10.0.0.42
# ROS topics (inside Docker)
docker exec -it nao6-hristudio-integration-nao_driver-1 ros2 topic list
Direct Commands (inside Docker)
# Speech
docker exec -it nao6-hristudio-integration-nao_driver-1 \
ros2 topic pub --once /speech std_msgs/String "{data: 'Hello'}"
# Movement (robot must be awake!)
docker exec -it nao6-hristudio-integration-nao_driver-1 \
ros2 topic pub --once /cmd_vel geometry_msgs/Twist "{linear: {x: 0.1, y: 0.0, z: 0.0}}"
Robot Control via SSH
# SSH to robot
sshpass -p "nao" ssh nao@10.0.0.42
# Wake up
qicli call ALMotion.wakeUp
# Disable autonomous life
qicli call ALAutonomousLife.setState disabled
# Go to stand
qicli call ALRobotPosture.goToPosture Stand 0.5
WebSocket
URL: ws://localhost:9090
Example message:
{
"op": "publish",
"topic": "/speech",
"type": "std_msgs/String",
"msg": {"data": "Hello world"}
}
Troubleshooting
Robot not moving:
- Check robot is awake:
qicli call ALMotion.isWakeUp→ returnstrue - If not:
qicli call ALMotion.wakeUp
WebSocket fails:
# Check rosbridge is running
docker compose ps
# View logs
docker compose logs ros_bridge
Connection issues:
# Restart Docker
docker compose down && docker compose up -d
# Check robot IP in .env
cat nao6-hristudio-integration/.env
Environment Variables
Create nao6-hristudio-integration/.env:
NAO_IP=10.0.0.42
NAO_USERNAME=nao
NAO_PASSWORD=nao
BRIDGE_PORT=9090
🚨 Safety Notes
- Always verify robot is awake before movement commands
- Keep emergency stop accessible (
qicli call ALMotion.rest()) - Start with small movements (0.05 m/s)
- Monitor battery level
- Ensure clear space around robot
Credentials
NAO Robot:
- IP:
10.0.0.42(configurable) - Username:
nao - Password:
nao
HRIStudio:
- Email:
sean@soconnor.dev - Password:
password123
Complete Restart
# 1. Restart Docker integration
cd ~/Documents/Projects/nao6-hristudio-integration
docker compose down
docker compose up -d
# 2. Verify robot is awake (check logs)
docker compose logs nao_driver | grep -i "wake\|autonomous"
# 3. Start HRIStudio
cd ~/Documents/Projects/hristudio
bun dev
✅ Integration Status: Production Ready
🤖 Tested With: NAO V6 / ROS2 Humble / Docker