mirror of
https://github.com/soconnor0919/hristudio.git
synced 2025-12-11 06:34:44 -05:00
- 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
2.9 KiB
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
- Wizard Actions
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
- Core action system and visual editor
- Basic wizard actions (movement, speech)
- TurtleBot3 integration
- Flow control actions
- Data collection
- Analysis tools