Files
hristudio/docs/plan.md
Sean O'Connor ab08c1b724 feat: Enhance plugin store and experiment design infrastructure
- Add plugin store system with dynamic loading of robot actions
- Implement plugin store API routes and database schema
- Update experiment designer to support plugin-based actions
- Refactor environment configuration and sidebar navigation
- Improve authentication session handling with additional user details
- Update Tailwind CSS configuration and global styles
- Remove deprecated files and consolidate project structure
2025-02-28 11:10:56 -05:00

2.9 KiB

HRIStudio Development Plan

Immediate Goal: Paper Submission (1 Month)

Focus on delivering a functional experiment designer that demonstrates the platform's capabilities for Wizard-of-Oz HRI studies.

1. Experiment Designer Core

  • Basic flow-based designer UI
  • Step containers with drag-and-drop, that can contain sets of actions
  • Action node system
    • Action schema definition
    • Visual node editor
    • Connection validation
    • Parameter configuration UI

2. Plugin System

  • Plugin store infrastructure
  • Basic plugin loading mechanism
  • Action Libraries
    • Wizard Actions
      • Robot movement control
      • Speech synthesis
      • Gesture control
    • TurtleBot3 Integration
      • ROS2 message types
      • Movement actions
      • Sensor feedback
    • Experiment Flow
      • Timing controls
      • Wait conditions
      • Participant input handling
      • Data recording triggers

3. Execution Engine

  • Step execution pipeline
  • Action validation
  • Real-time monitoring
  • Data collection
    • Action logs
    • Timing data
    • Participant responses

Future Extensions

1. Enhanced Plugin Ecosystem

  • Community plugin repository
  • Plugin versioning and compatibility
  • Custom action development tools

2. Advanced Experiment Features

  • Conditional branching
  • Dynamic parameter adjustment
  • Multi-robot coordination
  • Real-time visualization

3. Data Analysis Tools

  • Session replay
  • Data export
  • Analysis templates
  • Visualization tools

Technical Requirements

Action Schema

interface ActionDefinition {
  actionId: string;
  type: ActionType;
  title: string;
  description: string;
  parameters: {
    type: "object";
    properties: Record<string, {
      type: string;
      title: string;
      description?: string;
      default?: any;
      minimum?: number;
      maximum?: number;
      enum?: string[];
      unit?: string;
    }>;
    required: string[];
  };
  ros2?: {
    messageType: string;
    topic?: string;
    service?: string;
    action?: string;
    payloadMapping: {
      type: "direct" | "transform";
      map?: Record<string, string>;
      transformFn?: string;
    };
    qos?: {
      reliability: "reliable" | "best_effort";
      durability: "volatile" | "transient_local";
      history: "keep_last" | "keep_all";
      depth?: number;
    };
  };
}

Plugin Structure

plugin-name/
├── plugin.json       # Plugin metadata and action definitions
├── transforms.ts     # Custom transform functions
├── validators.ts     # Parameter validation
└── assets/          # Icons and documentation

Implementation Priority

  1. Core action system and visual editor
  2. Basic wizard actions (movement, speech)
  3. TurtleBot3 integration
  4. Flow control actions
  5. Data collection
  6. Analysis tools