mirror of
https://github.com/soconnor0919/hristudio.git
synced 2026-03-23 19:27: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
3.3 KiB
Executable File
3.3 KiB
Executable File
HRIStudio Quick Reference Guide
Quick Setup
# Clone with submodules
git clone https://github.com/soconnor0919/hristudio.git
cd hristudio
git submodule update --init --recursive
# Install and setup
bun install
bun run docker:up
bun db:push
bun db:seed
# Start
bun dev
Login: sean@soconnor.dev / password123
Key Concepts
Hierarchy
Study → Experiment → Trial → Step → Action
User Roles
- Administrator: Full system access
- Researcher: Create studies, design experiments
- Wizard: Execute trials, control robots
- Observer: Read-only monitoring
Plugin Identifier System
identifier: Machine-readable key (e.g.,nao6-ros2)name: Display name (e.g.,NAO6 Robot (ROS2 Integration))- Lookup order: identifier → name → fallback
Development Commands
| Command | Description |
|---|---|
bun dev |
Start dev server |
bun build |
Production build |
bun typecheck |
TypeScript validation |
bun db:push |
Push schema changes |
bun db:seed |
Seed data + sync plugins |
bun run docker:up |
Start PostgreSQL |
NAO6 Robot Docker
cd ~/Documents/Projects/nao6-hristudio-integration
docker compose up -d
Services: nao_driver, ros_bridge (:9090), ros_api
Topics:
/speech- TTS/cmd_vel- Movement/leds/eyes- LEDs
Architecture Layers
┌─────────────────────────────────────┐
│ UI: Design / Execute / Playback │
├─────────────────────────────────────┤
│ Server: tRPC, Auth, Trial Logic │
├─────────────────────────────────────┤
│ Data: PostgreSQL, File Storage │
│ Robot: ROS2 via WebSocket │
└─────────────────────────────────────┘
WebSocket Architecture
- Trial Updates:
ws://localhost:3001/api/websocket - ROS Bridge:
ws://localhost:9090(rosbridge) - Real-time: Auto-reconnect with exponential backoff
- Message Types: trial_event, trial_status, connection_established
Database Schema
Core Tables
users- Authenticationstudies- Research projectsexperiments- Protocol templatestrials- Execution instancessteps- Experiment phasesactions- Atomic tasksplugins- Robot integrations (identifier column)trial_events- Execution logs
Route Structure
/dashboard - Global overview
/studies - Study list
/studies/[id] - Study details
/studies/[id]/experiments
/studies/[id]/trials
/studies/[id]/participants
/trials/[id]/wizard - Trial execution
/experiments/[id]/designer - Visual editor
Troubleshooting
Build errors: rm -rf .next && bun build
Database reset: bun db:push --force && bun db:seed
Check types: bun typecheck
Plugin System
// Loading a plugin by identifier
const plugin = await trialExecution.loadPlugin("nao6-ros2");
// Action execution
await robot.execute("nao6-ros2.say_with_emotion", { text: "Hello" });
Last updated: March 2026