User Stories

University of Michigan Develops Controls for Bipedal Robots with Model-Based Design


Develop a control system for an underactuated bipedal robot with 13 degrees of freedom


Use Model-Based Design with MATLAB and Simulink to model the legs and torso, develop and simulate the control algorithms, and generate code for the real-time implementation


  • Controller development accelerated
  • Focus on high-level objectives maintained
  • Approach adopted at other institutions

“As an engineer it’s natural for me to think in terms of a robot’s equations of motion, controls, and signals. With Model-Based Design, it’s straightforward to represent and simulate my ideas as models and then generate code to test them on real-time hardware.”

Brian Buss, University of Michigan
MARLO, an ATRIAS 2.1 robot designed by Jonathan Hurst and the Dynamic Robotics Laboratory at Oregon State University. Photo courtesy Joseph Xu.

Developing a two-legged robot capable of walking and running like a human is a key goal for robotics researchers. In 2011, University of Michigan Professor Jessy Grizzle and a small team of Ph.D. students advanced toward that goal with MABEL, a bipedal robot that could run a nine-minute mile and regain its balance after negotiating an eight-inch step.

While MABEL required a support boom for lateral stability, its successor, MARLO, can move freely in three dimensions, complicating the control design challenge. Nevertheless, Professor Grizzle and students Brian Buss and Brent Griffin have developed real-time control systems that take MARLO where MABEL was unable to go—outdoors and away from the lab. The team accelerated development by using Model-Based Design.

“With Model-Based Design we can develop controllers that work not just on one robot, but on an entire series,” says Grizzle. “The control engineers coming into my group already know MATLAB. Instead of chasing pointers around in C code, they build on that knowledge with Simulink and Simulink Real-Time and move quickly from verifying a theory in simulation to implementing it on a real-time system.”


Each of MARLO’s legs is a four-bar linkage. The leg is driven by brushless DC motors connected to the upper two links via mechanical gears and series springs. The hips are actuated by motors in the torso. With 13 degrees of freedom (DOF) but only six actuators, the robot is fundamentally underactuated. An underactuated design produces a more natural gait, but it compounds the control design challenge because there is no way to control each DOF directly.

Early in the development work on MABEL, a graduate student who was an expert programmer wrote control algorithms in C. The code worked well, but the rest of the team found it difficult to understand and modify. In preparation for MARLO, Professor Grizzle sought to accelerate development by eliminating hand-coding. He needed to enable his control engineering students to prototype algorithms, verify them via simulation, and implement them on real-time hardware that supported EtherCAT networking technology.


The University of Michigan team used Model-Based Design with MATLAB® and Simulink® to speed up the development of real-time control systems for MARLO and other bipedal robots.

Buss and Griffin used MATLAB and Symbolic Math Toolbox™ to derive equations of motion and a Lagrange model for the robot. They then wrote a MATLAB script that applied an ordinary differential equation solver to compute the robot’s closed-loop dynamics and simulate its behavior.

Working in MATLAB, the team designed a nonlinear control algorithm using a hybrid zero dynamics method developed by Grizzle’s team. They used Optimization Toolbox™ to optimize the design for energy efficiency while meeting constraints on peak torque, joint angles, and boundary conditions.

The team began with a simplified model in which the robot’s leg is pinned to the ground. They then incorporated the controller into a more detailed Simulink model that includes compliant ground reaction forces and slipping friction at the foot. They used Stateflow® to model sequential decision logic for the robot’s states, including gait initiation sequences.

After verifying the controller via simulation, they generated code from their controller model using Simulink Coder™ and MATLAB Coder™. They compiled the code and deployed it to a Speedgoat Mobile real-time target machine running Simulink Real-Time™.

With the assistance of Gabriel Buche, a visiting engineer, they connected the Speedgoat hardware to MARLO’s sensors and actuators via an EtherCAT network, enabling the robot to move freely during test sessions. The team postprocessed and visualized test data in MATLAB, and tuned controller gains and other parameters based on this analysis.

MARLO has already walked outdoors, and the team is currently working on controller improvements to enable it to walk on slopes and other uneven terrain.


  • Controller development accelerated. “When the students switched from hand-coding in C to generating code from models using Simulink Coder, it was refreshing to have the algorithms in a form I could readily understand,” says Grizzle. “Plus, code generation sped up development because there was one less step that had to be done.”

  • Focus on high-level objectives maintained. “My initial comfort level with MATLAB gradually expanded to include simulation, optimization, code generation, and more with Simulink and Simulink Coder,” notes Griffin. “Instead of spending time overcoming coding obstacles, I could focus on our objective because I always had the tools I needed.”

  • Approach adopted at other institutions. “When other researchers see that we’ve gone directly from controllers developed in MATLAB and Simulink to a real-time implementation with Simulink Real-Time, they get pretty excited,” says Grizzle. “The approach we took is now being used in other departments at the University of Michigan and by robotics researchers at other universities, including MIT and Oregon State University.”