Controller Optimization
Reflex-based controller for assistive devices using parameter optimization

Controller optimization in MyoAssist enables optimization of a reflex-based musculoskeletal model controller combined with exoskeleton controllers. Using CMA-ES (Covariance Matrix Adaptation Evolution Strategy), this framework can produce controllers that achieve diverse performance objectives.
Optimization Workflow
- Setup: Configure your musculoskeletal model and exoskeleton controller
- Define Objectives: Specify environment configuration, cost functions, and optimization criteria
- Optimize: Run CMA-ES optimization to find optimal controller parameters
- Monitor Progress: Track CMA-ES progress and output cost values
- Analyze Results: Evaluate results and visualize performance
Key Features
- Reflex Control Optimization: Optimize reflex-based controllers using CMA-ES
- Exoskeleton Control Testing: Design, deploy, and optimize controllers for various assistive devices
- Result Analysis: Built-in tools for processing and visualizing optimization results
Key Scripts
run_ctrl_minimal.py
: Simple reflex control testing with random parametersrun_ctrl.py
: Full simulation with video generation and parameter loadingrun_optim.py
: CMA-ES optimization runner for controller tuningrun_eval.py
: Results evaluation and analysis
Getting Started
Codebase Structure
ctrl_optim/
├── run_ctrl_minimal.py # Quick testing script
├── run_ctrl.py # Main simulation script
├── run_optim.py # Optimization runner
├── run_eval.py # Evaluation script
├── results/
│ ├── evaluation_outputs/ # Simulation videos and outputs
│ ├── optim_results/ # Optimization results
│ └── preoptimized/ # Pre-optimized controllers
├── ctrl/ # Controller implementations
│ ├── reflex/ # Reflex controller modules
│ └── exo/ # Exoskeleton controller modules
└── optim/ # Optimization framework
├── cost_functions/ # Cost function implementations
├── config/ # Configuration files
└── training_configs/ # Training configurations
Basic Reflex Control
Start with the minimal script to run reflex control:
cd ctrl_optim
python run_ctrl_minimal.py
This script:
- Creates random control parameters (77 parameters for 2D reflex controller)
- Runs a 5-second simulation with default settings
- Reports walking duration