Project 4: Machine Learning

Demo Day: December 8th, 2023 at 12:30-4:20 PM.

Due: December 8th, 2023 at 11:59 PM.

For complete instructions about the project, see the Project 4 description on the main HelloRob website.

Parts 1 and 2 of this project are done individually. Part 3 is done in teams of two.

Table of Contents

  1. Getting the Code
  2. Submitting the Assignment
    1. Grading Breakdown
  3. Project Website

Getting the Code

Parts 1 and 2 of this project are done individually. They will be completed using Jupyter Notebooks which we will run in Google Colab. To accept the assignment, open the template notebooks and select File > Save a copy in Drive to save a copy in your Google Drive. You will need to do this using your UM Google credentials. There are two notebooks, one for each of Parts 1 and 2.

Part 3 of the project is done in teams. You will accept the code for this part on GitHub Classroom, like in previous projects. This part of the code can only be run on the robot.

The first teammate to accept will need to create a new team. The team must be named P4 F23 Team ##. Replace ## with the team number assigned to you (for example, P4 F23 Team 01, P4 F23 Team 11, etc.). The next teammate should join the team from the list of existing teams.

The Google Drive links and GitHub Classroom link can be found on Slack.

Modify the LICENSE.txt file in your GitHub repository to include your name and the year. Make sure the change is committed to your repository.

  • P4 License: In the file LICENSE.txt, replace <COPYRIGHT HOLDER> with your name. Replace <YEAR> with the current year.

Submitting the Assignment

Parts 1 and 2: You will submit both Colab notebooks on Canvas. Make sure to run all the cells before you submit. When you run your cells, the output gets saved in the notebook file. When you submit this file, the instructors will be able to see output such as images, plots, and printed values. You may add new cells to perform further analysis or visualization, as well as Markdown cells to write up your observations and analysis, if you wish.

Part 3: Teammates will be graded together for this part. You should push your code to your GitHub repository and create a project webpage for your completed project. Include a link to your webpage in the README.md of your repository. For details about what should be on the website, see Project Website.

Grading Breakdown

This project will be graded as follows:

  • Part 1: Nearest Neighbors: (4 points) Complete and submit the completed notebook for Part 1 on Canvas. This portion of the project is completed and graded individually.

  • Part 2: Machine Learning with SciKit Learn: (5 points) Complete and submit the completed notebook for Part 2 on Canvas. Your algorithms must achieve a minimum accuracy score, which is given in the notebook. This portion of the project is completed and graded individually.

  • Robot Museum Tour Guide Demo (in-class): (3 points) Your tour guide algorithm, which uses the best machine learning algorithm from Part 2, will be demonstrated on the robot, in class on Demo Day. The robot should classify images and use them to determine in which order to visit given waypoints.

  • Website: (3 points) On your website, include a brief discussion of your implementation (see discussion questions). Include at least one video of your algorithm working successfully on the robot.

Project Website

Create a website to demonstrate your implementation of the museum tour guide. Add the link to your project page to the README.md file in the root of your repository and push it to GitHub. For a refresher about how to create the website, see the Project 1 description.

On your project webpage, include at least one video demonstration of your robot performing the Tour Guide task as described on the project webpage for Part 3. You may also include images to help illustrate your algorithm (e.g., correctly and incorrectly detected images). Remember to ensure that videos are visible by course staff.

Include a brief discussion section on the web page (only a few sentences). Consider the following questions:

  1. Which machine learning algorithm did you choose for the robot? Why?
  2. Does the image classifier do better on the MNIST data or on the handwritten data (Robotics 102 Handwriting dataset and the hand-drawn Post-It notes)? Why?
  3. How might you improve the algorithm(s) you implemented? (Include at least one idea)