Robotic Movement Training As an Optimization Problem: Designing a Controller That Assists Only As Needed | Synapse