Skip to content
Nonholonomic Virtual Constraints and Optimization for Robust Robot Walking
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Nonholonomic Virtual Constraints and Optimization for Robust Robot Walking

Contact: Brent Griffin (griffb at umich dot edu)


This is a copy of the simulation and optimization code used for the control design in "Nonholonomic Virtual Constraints and Gait Optimization for Robust Robot Walking Control" (see pdf) and our IJRR paper.

Get started by running ./NHVC_testScript.m, which will run a simulation and video using the first optimized controller.

./NHVC_optScript.m can be used to optimize new control solutions.


Nonholonomic Virtual Constraints and Gait Optimization for Robust Walking Control
Brent A. Griffin and Jessy W. Grizzle

Please cite our paper if you find it useful for your research.

  author = {Griffin, Brent and Grizzle, Jessy},
  title ={Nonholonomic virtual constraints and gait optimization for robust walking control},
  journal = {The International Journal of Robotics Research},
  volume = {36},
  number = {8},
  pages = {895-922},
  year = {2017}


Video Demonstration:


Energy Efficiency and Benchmark. Outdoor experiments set a new precident for walking efficiency by achieving the lowest mechanical cost of transport (MCOT) of any unsupported bipedal robot tested over rough terrain. In addition, this precedent is set at a faster speed than any other bipedal robot efficiency benchmark. alt text

Nonholonomic Virtual Constraints (NHVC). Using nonholonomic outputs, it is possible to implement velocity-based posture regulation that accounts for the full dynamics of the biped, as well as a range of terrain variation. alt text

Indoor Terrain. MARLO walks over randomly thrown boards. alt text

Outdoor Terrain. MARLO walks outdoors using two-contact-point feet (left) and prosthetic feet (right). alt text

Apprendix A in ./additional_reference/dissertationGriffin160727.pdf provides a helpful introduction to 3D walking concepts.

MEX Files

We have built all of the mex files for Windows and Linux (some for macOS). To build new mex files, use the MATLAB debugging tool on the line where the mex file is called and run the corresponding codegen lines in ./simulationFiles/mexCodeGen/codegenScript.m.


This code is available for non-commercial research purposes only.

You can’t perform that action at this time.