Chaining Dynamic Movement Primitives (DMPs) for Learning Complex Tasks from Demonstration

Learning complex tasks is an important goal for Learning from Demonstration. Dynamic Movement Primitives (DMPs), which can be used to encode a trajectory, are a common approach to skill learning. However, it can be difficult to use a DMP to encode a complex task, particularly one that must be flexible enough to accommodate multiple targets that are to be reached throughout the skill execution.

We take a different approach to task learning: chaining multiple DMPs to represent a series of sub-skills, which amount to a complex task. By splitting up a complicated task into several sub-skills and learning a DMP for each sub-skill, the resulting task execution can be more flexible in reaching multiple targets throughout completion. We tested a approach using a book-shelving problem in which the robot learner was taught to slide a book to the edge of a countertop, reorient it, and place it on a target area. We explored using this chained- DMP approach for two scenarios: one in which DMPs modeled a set of three demonstrations, and one in which DMPs modeled a single demonstration. We found that chaining multiple DMPs that were trained over a single demonstration may be an effective method for encoding complex skills.

Date: December 2014

Course: Interactive Robot Learning

Skills: Java, Python, DMPs