← Back to Home

AME556 — Robot Dynamics and Control — Final Project

2D Bipedal Robot Locomotion in MuJoCo  ·  AME 556 · USC

MuJoCo PD Control Bipedal Locomotion Robot Dynamics Simulation Python

Project Overview

Bipedal Robot Overview
Design and implement controllers for a 2D bipedal robot in the MuJoCo physics simulator. Working with a teammate, five increasingly complex locomotion tasks were attempted, from verifying physical constraints through to running and obstacle navigation.

Task 1 — Simulation and Physical Constraints

Task 1 - Joint constraints Task 1 - Constraint plots
Result: Success

The goal was to verify that the robot's joints (hip and knee) respect given physical constraints during simulation. A PD controller was used to drive the robot's movements, and joint values were plotted over time to confirm constraint satisfaction.

Task 2 — Standing and Walking

Standing pose Standing plot
Walking pose Walking plot
Result: Success

The task required simulating the robot standing up and down, then walking forward and backward at a controlled velocity. Mathematical calculations were needed to determine appropriate joint angles while maintaining body orientation for stability.

The resulting PD controller allows the robot to stand, transition, and walk with tunable speed — adjustable by modifying the controller gains.

Task 3 — Running on Flat Ground

Running pose Running plot
Result: Success

Built on the walking controller with higher frequencies and phase offsets per link to achieve a running gait while maintaining robot stability.

The simulated robot ran 10 meters in 7.287 seconds.

Task 4 — Stair Climbing

Stair climbing attempt
Result: Unsuccessful

The objective was to simulate the robot climbing stairs with a fixed rise height. The controller needed an additional joint-lifting motion on top of the walking controller. However, insufficient one-leg stability caused the robot to fall when attempting to place the second foot on the stair, leading to collision.

Task 5 — Obstacle Course

Obstacle course attempt
Result: Unsuccessful

The robot could not overcome the first obstacle (stair-like structure) for the same reason as Task 4 — the walking controller could not find joint angles that maintained stability while lifting a leg over an obstacle.

Project Documentation

For more detailed information, you can view the full project report: