Work Description

Title: Perturbative Sit-to-Stand Experiment Dataset and Stability Basin Code Open Access Deposited

Attribute Value
  • Kinematic motion capture data was collected from 11 subjects participating in a perturbative Sit-to-Stand experiment. Motor-driven cables were attached to the subjects' waists, pulling them forwards or backwards as they stood from a chair. MATLAB was used to process the data into individual trials, which are presented here.
  • This work was collected to evaluate Stability Basins for characterizing the limits of human stability during Sit-to-Stand.

  • MATLAB code was used to process the data into individual trials. Trials are labeled by Sit-to-Stand type (Natural, Momentum-Transfer, or Quasi-Static) and experimental condition. MATLAB code for analyzing the data and computing Stability Basins is provided. A GUI is provided to animate a subject's movement and display projections of the Stability Basins in the horizontal and vertical planes.
Contact information
Funding agency
  • National Science Foundation (NSF)
Citations to related material
Resource type
Last modified
  • 12/16/2019
  • 12/16/2019
To Cite this Work:
Holmes, P. Perturbative Sit-to-Stand Experiment Dataset and Stability Basin Code [Data set], (2019). University of Michigan - Deep Blue.


Files (Count: 2; Size: 728 MB)


Stability Basins for characterizing stability of sit-to-stand control strategies


keywords: Sit-to-Stand, Biomechanics, Stability


This repository contains MATLAB code for generating and validating Stability Basins (SB) for sit-to-stand (STS).

SBs are a model-based method for determining the set of perturbations that would cause an individual to step, sit, or fall during STS under a given motor control strategy. The SB corresponds to the set of body configurations that do not lead to failure during STS, and characterizes stability throughout the duration of the motion

We conducted a perturbative STS experiment (dataset included in repo) where subjects were pulled by motor-driven cables during STS.
We had subjects perform STS using three different strategies: Natural, Momentum-Transfer, and Quasi-Static.
Subjects sometimes stepped or sat in response to perturbation, as demonstrated in the figure below:

Individualized biomechanical models of STS are constructed for each subject, and kinematic data is translated into trajectories of these models.
Subject and strategy specific input bounds are formed from data.
Then, we use a reachability toolbox called CORA to compute the SB for a given subject and STS strategy.
The SB is the backwards reachable set of a standing set, under the model's dynamics and input bounds:

Finally, we evaluate the accuracy of SBs by using them to predict whether or not an STS trial will succeed or fail (e.g., the subject will take a step or sit).
These predictions are compared to experimentally observed results.


MATLAB Version

  • R2019b ### Clone
  • Clone this repo to your local machine using
  • Note that the version hosted on Deep Blue Data is commit# a28d7b3 ### Downloads
  • To use this code, first download CORA 2018:
  • More information about CORA and how to use it may be found here:

  • We also recommend using MOSEK ( in place of MATLAB's default linear program solver linprog, though this is not necessary.

    Setting Path

  • Ensure that CORA (and MOSEK, if downloaded) are on the MATLAB path. For example, use the MATLAB command addpath(genpath('.../path/to/CORA_2018'));


  • To simply view presaved results of the SB evaluation in a table, use display_results().

  • A GUI for visualizing the STS trials, the SBs, and their predictions is provided. To run this GUI, use animateSTS.

    Generating Results from Scratch

    If you would like to run the full pipeline and generate the results from scratch on your own machine:
    1) Run setPaths().
    2) Use run_all(). We recommend calling run_all('parallel') to utilize MATLAB's parfor toolbox and expedite the process.
    3) Uncomment line 5 in display_results and line 5 in animateSTS to use your locally generated results instead of the presaved results.
    4) Call display_results or animateSTS to display the accuracy of each of the tested SB methods onscreen.


  • Patrick Holmes (PhD Candidate, Mechanical Engineering, University of Michigan)

  • Shannon Danforth (PhD Candidate, Mechanical Engineering, University of Michigan)

  • Xiao-Yu Fu (PhD Candidate, Mechanical Engineering, University of Michigan)

  • Talia Y. Moore (Assistant Research Scientist, Robotics Institute, University of Michigan)

  • Ram Vasudevan (Assistant Professor, Mechanical Engineering and Robotics Institute, University of Michigan)


  • Code licensed under BSD3

  • STS Data licensed under CC BY 4.0

Download All Files (To download individual files, select them in the “Files” panel above)

Best for data sets < 3 GB. Downloads all files plus metadata into a zip file.

Best for data sets > 3 GB. Globus is the platform Deep Blue Data uses to make large data sets available.   More about Globus