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.
@inproceedings{GrGr17,
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: https://youtu.be/81I0H5d0tUM
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.
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.
Indoor Terrain. MARLO walks over randomly thrown boards.
Outdoor Terrain. MARLO walks outdoors using two-contact-point feet (left) and prosthetic feet (right).
Apprendix A in ./additional_reference/dissertationGriffin160727.pdf
provides a helpful introduction to 3D walking concepts.
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.