Finding ways to easily teach service robots new motions will be key to their integration in our everyday environments. Ideally, teaching a robot should be no different than teaching a human.
For example, to teach someone a new dance, you might first show them the basic steps. You will most likely mention motion primitives, such as “right foot forward” and not the actual position of all your body joints. The apprentice dancer will then try to imitate your steps. To refine dance moves, the teacher can physically correct the motion by pushing the elbow higher, straightening the back or guiding the steps. However, if the student has been taught to move forward with its right foot, and the teacher pushes in the opposite direction, the dancer will most likely freeze. This is due to the fact that refinements should fit within a certain region around the movement that the person expects (refinement tube). Over time, the dancer iteratively improves its movements, forgetting older clumsy moves along the way.
Following this exact idea, Lee et al. have been teaching motion primitives to the humanoid upper-body robot “Justin”. Experiments use the 19 joints of the arms (2 times 7 DOF), torso (3 DOF), and head (2 DOF). The framework shown in the schematic below, uses imitation learning followed by iterative kinesthetic motion refinements (physically guided corrections) within a refinement tube. Motion primitives are represented as a hidden Markov Model.
The authors hope that in the future, these algorithms can contribute to making humanoid robots, which are capable of autonomous long-term learning and adaptation.