Final Project

The final project will be your opportunity to take what you learned in the class and put it towards a project of your choice.

Here are some guidelines:

  • Apart from rare exceptions, your problem should be relevant to manipulation.
  • You are welcome to work on the project in small teams (2-3 people). If you plan on doing a team project, please make this clear in your proposal. Our expectation of your work is proportaional to the number of people on the team.
  • The project is only over 4-5 weeks, so scope your project carefully.
  • Developing novel algorithms/methods is great, but reimplementing publisehd work and/or applying a published method to a manipulation system is also great. You will be evaluated based on whether the project forced you to think/understand, not based on novelty.
  • Do not underestimate the time it can take to set up a simulation in place. Using/modifying an existing example from the textbook is great. Using Drake is not a requirement, but the staff can help you more if you choose this route.
  • Some of you will be able to do a project that is closely related to your current research. This is completely acceptable, as long as the subproblem you are solving is clearly defined. If you are using part or all of your work for research or as a part of another class, you must state this explicitly in your final report. We expect you to do something new that you would not have done if you hadn't taken this class (e.g. I was working on motion planning for a mobile robot, but tried to do it for manipulation)
  • We encourage you to build on code and tools of the community, but remember that you must clearly distinguish your contribution and acknowledge the work of others to avoid plagiarism. If you do improve an open-source tool or example, continue contributing back! For Drake in particular, I'd love to put your best examples in the Drake gallery
The course staff will provide you with feeback on the scope on direction of your proposal shortly after we receive it.

Project Ideas

Here are a set of ideas we believe might be worth investigating, but do not feel the need to grab one of these! This is a placeholder, and the list will grow as we add more suggestions soon.
  • Using everything we learned, implement a full-stack system (from perception, planning, and control) that can reliably solve a small-scale application in manipulation.
    • Pick-and-place clutter clearing of YCB objects.
    • Opening a cupboard and grabbing a mug.
    • Solving a peg-in-hole assembly problem.
    • Using a tool (hammer, squeegee, pencil, etc.) to achieve a task.
  • Choose a specific subproblem in manipulation (impedance control, pose estimation, motion planning, task-and-motion planning) and implement / benchmark existing methods.
    • Pose Estimation: There have been impressive results that use deep learning in order to do object pose estimation, such as Pose-CNN. How do these compare with ICP-like pose estimators?
    • Motion Planning: Motion planning has a very rich literature comparing and combining sampling-based methods and optimization-based methods. Which ones are better suited for manipulation, and how should we combine them?
    • Impedance Control: There is a rich variation of approaches regarding the theme of impedance control (stiffness control, admittance control, force control, etc). Which ones are suited for which tasks? Can we benchmark their performance on a single task?
  • Object State representation: implement and compare different representations for objects and reason about what class of tasks each representation is suited for.
  • Robust (generalizable) manipulation: using computational tools from class such as Reinforcement Learning / impedance control, can you write / synthesize controllers that generalize to variations in objects such as:
    • variations in object category
    • variations in object geometry
    • variations in object mechanical properties (friction, weight, etc.)
  • Try a model-based approach to a manipulation problem of your choice. Good examples are:
  • Deformable object manipulation: how would you manipulate a relatively deformable object such as a rope / shirt / pile of onions? (Note: there is limited support for soft bodies in Drake, so simulation may be a bottleneck if you decide to go this route. There are specific cases (ropes / onions) where the staff might have software availble for simulation.)


  • A short project proposal is due on Friday, October 30 as a part of Problem Set 5.
  • Brief progress updates are due on Set 5 and Set 6, leading up to the presentation work.
  • A presentation of your results on Tuesday, Dec 8.
  • A final report summarizing your reports, along with any code you'd like to provide (we'll love it!) is due on Tuesday, Dec 8.
  • Projects can be completed individually or in small groups (2 or 3 students), but the expectations for projects will scale linearly with group size. Each member of the group will need to be able to point out the specific interesting contributions that demonstrate mastery of the course material.

Project Proposal

The project proposal is intended as a forcing function for you to crystalize a project idea. Moreover, it gives us a chance to offer you a feedback and make sure that your plan is worthwhile and feasible. It should be approximately one page (at most, say, 500 words) detailing your idea for the project. It should:
  • Define exactly what the project deliverable is.
  • Briefly describe why the project is worthwhile and interesting.
  • List the topics that we have studied (or that we will study) in class that are covered by your project. For example: kineamtics, deep/geometric perception, force control, motion planning, etc.
  • Discuss any related prior work you have found that is relevant.
  • Define specific goals that you expect to have accomplisehd before each of the progress updates.
  • It does not have to be extremely polished, but it does need to provide us with enough information to understand what you are hoping to do. Otherwise, we won't be able to help you!

Progress Updates

We will expect 1-paragraph project updates on Set 5 and Set 6 in order to keep us up to date with how you have progressed.

Final Presentation

The project presentation is due by the last day of classes: Tuesday, Dec 8. Extensions may be granted on request. The presentation must have duration of 3 minutes for individual projects and 5 minutes for group projects. Please try to share the 5 minutes evenly between the various members of the group. This year we will require you to upload presentations on Youtube, more details will follow on Piazza.

Final Report

We expect you to provide a final report of your project by Tuesday, Dec 8. Using the IEEE Template for conference proceedings (probably the LaTeX one, unless you really enjoy using MS Word), write a summary of what you accomplished during your project. Write it, as much as possible, like a conference paper. You should include:
  • An abstract.
  • An introduction of your project and why you think it is interesting.
  • A related work / literature review section
  • Your results (partial or work-in-progress is expected, and completely fine!)
  • A discussion of your results and potential next steps
We don't have any requirements on length, but realize that this is worth a very large portion of your overall grade, so be as thorough as possible in demonstrating mastery of the course material. For reference, reasonable lengths could be anywhere between 3-8 pages, with figures adn a few citations where relevant. Videos are encouraged as well, as a way to showcase simulation/hardware results and provide visual explanation.