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 thedaffy
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
(whereROBOTNAME
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 isquackquack
. 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)