← Previous: Servo Control | Next: Voice Control Interface →
- Overview
- Architecture
- Core Components
- Task System
- Voice Commands
- Control Management
- Status Reporting
- Decorators
- Error Handling
The TaskInterface is the central coordination hub for the hexapod system. It manages robot control, task execution, voice command processing, and hardware integration. The interface provides a unified API for controlling the robot through voice commands while managing complex operations like calibration, movement tasks, and audio processing.
graph TB
subgraph "Task Interface"
subgraph "Core Management"
TI[TaskInterface<br/>• Central Coordinator<br/>• Voice Command Processing<br/>• Task Lifecycle Management]
SR[StatusReporter<br/>• System Health Monitoring<br/>• Status Information<br/>• Diagnostic Data]
end
subgraph "Hardware Integration"
H[Hexapod<br/>• Robot Control<br/>• Movement<br/>• Calibration]
LH[LightsHandler<br/>• Visual Feedback<br/>• Status Display<br/>• Animations]
BH[ButtonHandler<br/>• GPIO Input<br/>• User Interaction<br/>• State Management]
end
subgraph "Task Execution"
TQ[Task Queue<br/>• Task Management<br/>• Lifecycle Control<br/>• Callback Handling]
TE[Task Executor<br/>• Thread Management<br/>• Resource Allocation<br/>• Error Recovery]
end
end
TI --> H
TI --> LH
TI --> BH
TI --> SR
TI --> TQ
TQ --> TE
flowchart LR
VC[Voice Command] --> V[Validation]
V --> TP[Task Preparation]
TP --> TE[Task Execution]
TE --> SF[Status Feedback]
SF --> TC[Task Completion]
TC --> CB[Callback Execution]
CB --> VC
Role: Central coordination and command processing
- Manages robot control and movement
- Processes voice commands and executes tasks
- Coordinates between hardware components
- Handles task lifecycle and callbacks
Key Features:
- Voice command processing with decorators
- Task execution and management
- Hardware component coordination
- State management and control
Role: System health monitoring and diagnostics
- Provides comprehensive system status
- Monitors hardware and software health
- Reports calibration and movement status
- Generates diagnostic information
Key Features:
- Complete system status reporting
- Hardware health monitoring
- Calibration status tracking
- Movement and gait status
All tasks inherit from the abstract Task class which provides:
- Thread-based execution
- Stop event management
- Callback handling
- Lifecycle management
- MoveTask: Directional movement using gait generation
- RotateTask: Rotation with specified angle or direction
- MarchInPlaceTask: In-place marching with duration control
- CompositeCalibrationTask: Complete calibration sequence
- MonitorCalibrationStatusTask: Calibration monitoring
- RunCalibrationTask: Calibration execution
- SoundSourceLocalizationTask: Sound source tracking with ODAS
- FollowTask: Target following using audio localization
- StreamODASAudioTask: Audio streaming and playback
- SitUpTask: Sit-up motion sequence
- HelixTask: Helical movement pattern
- ShowOffTask: Demonstration routine
- SayHelloTask: Greeting sequence
- Task Creation: Task instance created with parameters
- Task Start: Task started in separate thread
- Task Execution:
execute_task()method runs - Task Completion: Callback executed on completion
- Task Cleanup: Resources freed and state reset
hexapod_help(): Display context information and helpsystem_status(): Comprehensive system status reportshut_down(): Initiate shutdown sequence with cancellationwake_up(): Activate robot from sleep statesleep(): Deactivate robot and enter sleep statestop(): Stop all current activities
move(direction, cycles, duration): Move in specified directionrotate(angle, turn_direction, cycles, duration): Rotate robotmarch_in_place(duration): March in placeidle_stance(): Return to home position
calibrate(): Start complete calibration process
sound_source_localization(): Start sound source trackingfollow(): Follow audio targetstream_odas_audio(stream_type): Stream ODAS audio
sit_up(): Perform sit-up motionhelix(): Execute helix maneuversay_hello(): Execute greeting sequence
turn_lights(switch_state): Turn lights on/offchange_color(color): Change light colorset_brightness(brightness_percentage): Set light brightnesspolice(): Police light animationrainbow(): Rainbow light animation
start_recording(duration): Start audio recordingstop_recording(): Stop audio recording
set_speed(speed_percentage): Set servo speedset_accel(accel_percentage): Set servo accelerationrepeat_last_command(): Repeat last executed command
request_pause_voice_control(): Pause voice control systemrequest_unpause_voice_control(): Resume voice control systemrequest_block_voice_control_pausing(): Block voice control togglingrequest_unblock_voice_control_pausing(): Allow voice control toggling
stop_task(): Stop currently running taskset_task_complete_callback(): Set task completion callback_notify_task_completion(): Handle task completion
external_control_paused_event: Control external input during critical tasks- Button Handler Integration: Coordinate with GPIO button input
- System Info: Basic system information and timestamps
- Calibration Status: Servo calibration data and last calibration date
- IMU Status: Inertial measurement unit data and orientation
- Gait Status: Current gait state and parameters
- Movement Status: Current movement state and position
- Leg Positions: Individual leg positions and angles
- Hardware Health: Servo status, IMU data, calibration state
- Movement State: Current position, gait status, movement parameters
- System State: Task status, voice control state, external control state
- Performance Data: Timing information, error counts, status history
@voice_command: Marks methods as voice commands
- Stores last command for repetition
- Provides command logging
- Enables voice control integration
@task: Manages task lifecycle
- Ensures task attribute is set
- Automatically starts task execution
- Provides task management integration
@inject_hexapod: Injects Hexapod instance
@inject_lights_handler: Injects LightsInteractionHandler instance
- Automatic dependency injection
- Cleaner method signatures
- Consistent component access
- Exception Catching: All tasks wrapped in try-catch blocks
- Graceful Degradation: Tasks fail safely without crashing system
- Error Logging: Comprehensive error logging and reporting
- Resource Cleanup: Proper cleanup on task failure
- Component Failures: Graceful handling of hardware failures
- Task Interruption: Safe task stopping and cleanup
- State Recovery: Automatic state recovery after errors
- User Feedback: Clear error messages and status updates
- ODAS Tasks: Special handling for audio processing tasks
- Calibration Tasks: Critical system calibration with error recovery
- Shutdown Tasks: Safe system shutdown with cancellation