Summary  In this assignment students learn how to control a robot to juggle a ball. To achieve this goal, students will program a velocity controlled robot, such that it causes the ball to bounce with some desired periodic motion. Specifically, students will implement a hybrid controller that uses a mirror control law within the framework of a 2D physics simulator. Similar to many control assignments, the theoretical learning objectives deal with analyzing system responses and stability criterion. Additionally, designing and implementing the controller will give students a chance to translate theoretical knowledge into realworld practice. This assignment differentiates from most introductory control assignments because the dynamics of robot juggling is highly nonlinear, due to the collisions with the robot. 

Topics  robotics, feedback control systems, and nonprehensile manipulation 
Audience  This assignment is tailored to undergraduate students, with at least an introduction class in programming. It was created for a sophomore/junior engineering class in Dynamics and Control. 
Difficulty  The difficulty level of the assignment is fairly low. The purpose is to introduce students to control and develop a working implementation. All steps are broken down into simple components. All students are expected to be able to complete the assignment. That being said, the framework does allow for interesting and more challenging future work. 
Strengths 

Weaknesses 

Dependencies 

Variants 

Interactive Assignment  There are three jupyter notebooks for students to use for completing the assignment. A web preview of the assignments are shown here: 

Source Code Repository 
You can download a zip of the code here This Static Code repository contains:
Additionally, we have the three jupyter notebooks. (Note, to download you will need to right click and use save as ) 
Recommended Reading 
All of the code was implemented by reviewing the following conference and journal papers:

Powerpoint Slides for Guided tutorial  The powerpoint slides are created for giving a guided tutorial on implementing a robot juggler. They also provide the theoretical overview of Positionderivative control and of course, the robot juggling problem. 