Exercise 2 - Control

This exercise will contain a few Jupyter notebooks for you to run through with solutions provided, followed by a final one with no solution that you will have to implement.

You can write the code directly into the Jupyter notebooks. When you build or test, this code is taken from the notebook and converted to a python file which is automatically included in your solution when you run.

Make sure your system is up to date

Itโ€™s a good idea to do the following:

  • ๐Ÿ’ป Always make sure your Duckietown Shell is updated to the latest version. See installation instructions.

  • ๐Ÿ’ป Update the shell commands: dts update

  • ๐Ÿ’ป Pull latest containers on your laptop: dts desktop update

  • ๐Ÿ’ป Pull from the upstream duckietown/mooc-exercises repo on the daffy branch (if you arenโ€™t sure how to do this or set this up ask a TA or the professor).

  • ๐Ÿš™ Clean and update your Duckiebot: dts duckiebot update ROBOTNAME (where ROBOTNAME is the name of your Duckiebot chosen during the initialization procedure.)

  • ๐Ÿš™ Reboot your Duckiebot

Execute the activities

  • In your fork, enter the modcon directory.

  • Build the workspace: dts exercises build.

  • Start the Jupyter server with dts exercises lab. It will open a page in your browser. The login password is quackquack. Make sure you do not have other Jupyter notebooks already open.

  • Go to the first folder (01-Representations), open the notebook file, and follow through.

  • You will have to execute the activities in order, from /01-Representations to /05-PID-Control. In general, skipping activities might result in errors because the order that you execute things in Jupyter notebooks matters. However, you can safely skip /02-Wheel-Calibration since you completed this as part of the first exercise.

Submit the homework

  • After completing the activities, you can proceed to /06-PID-Control-Homework and follow the instructions to submit your assignment.

Grading criteria

To get 5/5, your agent agent must produce at least a stable driving behavior:

  • The agent you submitted to the cloud challenge should achieve Major Infractions smaller than or equal to 20 and Survival Time bigger than or equal to 40. You can verify the scores of your sumbissions on the modcon challenge leaderboard after your submission is evaluated. (2 points out of 5) (N.B you donโ€™t get any bonus or extra points for being better than this.)

  • Your real robot should be able to successfully converge into the right lane starting from an offset of 20cm and 0 degrees. (2 points out of 5) (N.B you do not need to have the same agent for the hardware and cloud evaluations. E.g., you may need different gains and this is totally acceptable. One idea could be to keep two branches for your code.)

  • You should show the TA/professor your solution and explain how it works. (1 point out of 5)