Final Project

Abstract

For the remainder of the course you will be working on an open-ended robotics project. The playing field is wide open. This is your chance to be creative and ambitious, and we are very excited to see what you all will be able to accomplish!

Deltas from Previous Projects

  • A bit longer in duration - about 4 weeks (not including the Thanksgiving break) versus 2.5-3 weeks for the longest projects we’ve done thus far.
  • There will be more opportunities to create compelling visuals and text that can become a part of your professional portfolio (see Website / Blog section).
  • You will have more control over the topic of the project and thus be able to address your learning goals (YOGA) more directly.

Learning Objectives

  • Self-directed learning and goal setting
  • Development of a robotics project from start to finish

Teaming

For this project, group size is mostly up to you, but groups should be <= 4 people.

Please fill out this Google Sheet when you have a project team and Github repo.

Project Topic Considerations

Requirements

  • Your project must involve a robot or a plausible application to robotics! While this seems obvious, one place where things get fuzzy is if your project is primarily about developing a system that has multiple uses (one of which is for robotics). In this case, you will be expected to either deploy your module on a robot or at least discuss the suitability of your module for use on a robot.
  • The project should involve (in part) learning about a robotics algorithm. This is not only about creating a great demo, you must structure your project so that you learn about a robotics algorithm in a project-based manner.
  • The project work should primarily be computationally focused (i.e., not involve a majority of work in the electrical or mechanical domain). That said, there are opportunities to bring in new hardware (as some teams did for the machine vision project).
  • Your project should lend itself to a discussion of the potential societal implications of the work as well as a statement of about responsible use of your technology (see later in the document).

Opportunities

  • You may consider utilizing additional hardware above and beyond the standard Neato platform. This could come in the form of multiple robots, a new sensor (e.g., the stereo camera ZED or an iPhone-based ARKit setup), or a new actuator (e.g., adding drawing tools or a simple gripper/manipulator).
  • You might explore computer vision more broadly, e.g. explore new algorithms or look at computer vision with a focus on learning. There is a good amount of content from previous CompRobo classes to scaffold this.
  • You can take a deep dive into a particular class of algorithms. You might also be able to release your own ROS package for an algorithm that currently does not have a widely available open source implementation.

Challenges

  • With more ambitious projects comes more risk. You should have contingency plans in place if your initial plan proves infeasible.
  • Longer projects are tougher to undertake from a scheduling / project management standpoint. You will have to be diligent about continually making progress on the project despite the longer duration of the assignment.

Past Projects

Deliverables Overview and Assessment Breakdown

Your deliverables should be turned findable through your Github repository (even if via an external link embedded within your Github readme).

  • Project Proposal (20pts)
  • Demo (20pts)
  • Code and Write-Up (Website) (100pts)
  • Milestone Blog Posts (10pts per milestone post)
  • Ethics and Responsible Use Statement (10pts)

Project Proposal (due 1pm on Friday 11/15).

  • Who is on the team?
  • What is the main idea of the project?
  • Provide some motivation for your project. Why does your team want to pursue this? What possible applications does the project have?
  • How are you planning to engage with the Ethics and Responsible Use Statement part of the project?
  • What topics will you explore, and what will you generate? What frameworks / algorithms are you planning to explore (do your best to answer this even if things are still fuzzy)?
  • What is your MVP? What are your stretch goals?
  • Outline, in detail, what you intend to have accomplished by each of the milestones.
  • Conduct a pre-mortem on your project. Write at least 5 risks to the success of your project (where success could be in relation to your learning or the final project output)
  • Given each of your YOGAs and the time you are hoping to allocate individually to this project, tell us about how the project will align with each of your goals. If there are ways in which the project is not well-aligned, please provide a potential strategy for bringing the project and your learning goals into better alignment. There should be an individual section for each person on the team addressing the fit between the YOGA and the project topic.
  • What support would you like from the teaching team?

Submit your proposal to Canvas.

Final Event Demo (Due Thursday 12/19)

On Thursday, December 19th from 1-3pm, we will have our final event. You should prepare a demonstration (live or recorded) of your final project, and set of brief slides that highlight:

  • What you worked on
  • What you learned
  • Your ethics / responsible use connections
  • A highlight of your portfolio website

Members of the Olin community may be in-class to check out the demos, so keep a technical lay-audience in mind! You can submit your final demo to Canvas.

Code + README Write-Up

We will be using the same rubric as for the other assignments for your code + repository README. As you will be creating a separate website / blog of this project, your README should focus on functionality / overview, and can link to your website for graphics, demonstrations, and further details. Please submit to Canvas.

Ethics Statement and Responsible Use

Please prepare a statement on the ethical and responsible use of your code. There are a few different ways to approach this, for instance:

  • Use the framing on “statement of potential negative societal impacts” based on this work from CVPR. We expect that Section 3 won’t apply to everyone, but if it does, please address that as well.
  • Create a version of a model card for your robotic system. Some robotics-oriented headings to add may be related to hardware requirements, use of open-source or closed-source elements within your implementation, and so on.
  • Review ethical guidelines from several industry companies (e.g., Boston Dynamics and Anybotics) and model your statement after their frameworks (or your own critiques of their frameworks).

In general, your statement(s) should highlight your principles and philosophies on responsible use for the technique or system you create. Consider the licensing for your repository, and whether you have guidelines or restrictions you would place on the use of your work. Balance both the positive aspects of your techniques and the possible negative implications if intended use were violated. Please submit to Canvas.

Website and Blog

You should create a project website. The project website will serve two purposes: to explain how your system works and to document the story of how you arrived at your final product. You should create these deliverables for multiple audiences: general readers interested in your project, potential employers, other students in the course, and the CompRobo teaching staff.

Project Milestones

Twice during the project you will be writing up your progress on your project thus far. You should include these milestones as part of your project website, so try to keep the writing suitable for a general audience (e.g., someone who doesn’t have much context about the class). You will be coming up with your best guess as to how far you will be by each of the project milestones as part of your project proposal.

Project Milestone 1 will be due Sunday 11/24. Submit on Canvas.

Project Milestone 2 will be due Sunday 12/08. Submit on Canvas.

Project Documentation (Due after the Final Event on Thursday 12/19)

At the end of the project your website should include the following information:

  • Show it off: Describe the main idea of your project. What does your system do? Why would you want to do this? What are the major components to your system and how do they fit together? Hopefully you will have some cool videos to put in the website by this point.
  • System architecture: In detail describe each component of your project. Make sure to touch upon both code structure as well as algorithms.

You will submit a website link in the Write-Up + Code assignment on Canvas.

YOGA

We’ll be continuing our YOGA assignment from earlier in the semester. This is a great chance to revisit learning goals and update them to your final project or update use them to shape the project itself!