Supplementary Material for TRO2009 

In this paper, we develop an incremental algorithm for automatically segmenting, clustering and organizing motion pattern primitives, which are observed from human demonstration.  The motion primitives are represented as stochastic Markov-based models, where the size and structure of the model is automatically selected by the algorithm.

First, motions are segmented using a variant of the Kohlmorgen-Lemm stochastic segmentation approach.  An HMM is built over a sliding set of windows, and the Viterbi algorithm used to generate the optimum state sequence representing the segmentation results.

Kohlmorgen-Lemm Segmentation

Segmented motions are then passed to an on-line, incremental clustering algorithm, which incrementally builds a tree structure representing a hierarchy of known motions.

Clustering Algorithm

The motions abstracted by the incremental clustering algorithm are then used to further improve the segmentation result by adding known motions.  In this way, both the segmentation and the clustering performance improves over time, as more motions are observed.  The resulting tree structure is dependent on the history of observations of the robot, with the most specialized (leaf) nodes occuring in those regions of the motion space where the most examples have been observed.

The algorithm has been tested on a large dataset of continuous motions.  Data is first collected from a motion capture studio.  The raw marker data is then converted to joint data for a 20DoF humanoid using online inverse kinematics.  This continuous sequence of joint angle data is then used as input into the segmentation and clustering algorithm.

Motion Capture

video showing the raw marker data

video showing the joint angle data animated on a humanoid

sample segmentation result video

samples of automatically extracted motions:  

        Small Data Set:  Right Arm Raise, Left Arm Lower, Kick Extend, Squat Retract

        Large Data Set: Bow Down, Walk Mid Stride, Right Arm Raise

Motion Capture Data

Video of the motion sequence (50MB)

Raw marker data in MotionAnalysis trc format:  part1 (50MB) , part2 (50MB)

Joint Angle Data (8MB)  Note:  Joint angle data is downsampled by a factor of 3 from the raw marker data.

Joint assignment in the kinematic model

Manual Segmentation results (Start and end indices correspond to the sample number in the raw marker data files)