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

Project Description

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.

Project Details

Course Interactive Robot Learning 
Date December 2014
Skills Java, Python, DMPs
Role Code contribution, 3 person team

DMPs encode a trajectory and its associated velocity information. As a result, DMPs are very applicable to situations in which a single trajectory is required to complete a skill, or where the trajectory does not need to be adjusted mid-course. However, in the context of the book-shelving skill, two actions are required to complete the skill:

1) Sliding the book to a location where it can be grasped
2) Reorienting and moving the book to its target location on the shelf.

The original location of the book and the target location are not constant, and may differ between skill executions. Thus, it may be difficult to create a single DMP that encodes both sub-skills and is variable depending on the location of the book and target objects.


Final Project Video

Like What You See?