Walking Control

A project log for Blackbird Bipedal Robot

A lightweight and efficient human-scale bipedal robot.

Gabrael LevineGabrael Levine 11/25/2018 at 04:311 Comment

Prior to building the robot, I'm developing the controls on a reduced-order SLIP model. The robot's legs are modeled as massless, springy linear actuators on revolute joints. All the mass is located at the hip. 

The controller here was inspired by this paper

This controller has two basic parts:

State-based control: Switches each leg between the stance and swing controllers according to whether the foot is in contact with the ground. 

Time-based control: Lifts the legs and performs energy injection according to a repeating timer. The timers for the two legs are 180 degrees out of phase with one another.

The stance controller holds the leg at a constant length while allowing it to swing freely, while the swing controller rotates the leg to match the desired touchdown angle. The touchdown angle is proportional to the difference between the desired and current velocity. 

Energy injection is accomplished by temporarily increasing the leg spring constant during the second half of the stance phase, thereby producing extra force in the direction of motion. 

Next I'll extend the controller to work in 3D (as it's currently confined to the sagittal plane) and add balance control for the torso. 


Songyan wrote 12/23/2018 at 19:23 point

Hi, I want to build this simple model in PyBullet. Can you give me some hints about how to built it? What type of file you use to represent the model URDF, SDF or MJCF ? About the hip joint, you use a ball joint directly or three revolute joints? For the leg, you use zero mass or very small mass? Sorry for so many questions.

  Are you sure? yes | no