Exercise 3 - Perception

This exercise will contain a few Jupyter notebooks for you to run through followed by a final one with some functions 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 visual_lane_servoing 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-Pinhole-Camera), open the notebook file, and follow through.

  • Execute the activities in order, from /01-Pinhole-Camera to /05-Visual-Servoing. In general, skipping activities might result in errors because the order that you execute things in Jupyter notebooks matters. However, you can safely skip /03-Camera-Calibration since you completed this as part of the first exercise.

Submit the homework

  • After completing the activities, follow the instructions to submit your assignment.

Grading criteria

To get 5/5, your agent agent must produce at least a ``reasonable’’ driving behavior:

  • The agent you submitted to the cloud challenge should achieve Traveled distance greater than or equal to 4.8 and Lateral deviation less than or equal to 4. You can verify the scores of your sumbissions on the mooc-visservoing 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 perform reasonable navigation on a straight piece of road. (2 points out of 5) (N.B you do not need to have the same agent for the hardware and cloud evaluations.)

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