E91 Assignment 5

Task 1: Update starter code.

Pull in the updates to the starter code and merge them to your repository:

git checkout master
git pull
git checkout turnin
git merge master

There are two new files: common/ZmpPreview.py defines a class implementing a ZMP preview controller, and starter/zmp.py is the demo we saw in class, which shows how to use the preview controller.

Note that you will need to install two extra Python packages to run this code: scipy and matplotlib. You should be able to do this through MacPorts/apt-get.

Furthermore, there were a few bugfixes and updates to the code. For this assignment, you will be most interested in the KinModel.comIK() method, which performs IK for both manipulators and the center of mass. See documentation for details.

Task 2: Make a robot sway back and forth.

Here is the graphical output of running the starter/zmp.py demo:

Your task is to create a demonstration of a bipedal robot following this or a similar trajectory with its center of mass by pulling in the starter code. The extreme positions of the ZMP should coincide with the locations of the front and back foot of the robot. More precisely, you should:

That is, your robot's CoM should trace out a motion similar to the green line in the plot above, so that the ZMP cycles back and forth from foot to foot. In addition to visualizing the projection of the CoM onto the ground plane (as your previous videos did), you should also visualize the desired and actual ZMP locations as well.

What to turn in

Webpage. Movies. Be prepared to discuss in class. You know the drill.

Also, I expect to be able to check out the turnin branch of your group's repository and grab the code for this assignment from the python/assignment5 subdirectory.

Back to E91 home page