Course Projects (tentative)

The goal of your project is to try something new and, perhaps, to contribute something to the field of robot learning. Projects should be done in groups of one to three people. Feel free to use the Search for Teammates topic on Piazza to form teams. There is also a project tag for discussing project ideas. And of course, you're encouraged to discuss possible topics with us during office hours. Here are some ideas for getting started on projects:

  • Select a paper from recent literature, implement and stress-test the approach described in that paper. Characterize where it works, where it doesn't. Pursue extensions that can improve the approach.

  • Take some publicly available code, apply it to an interesting different problem and explore various extensions and modifications. You may also want to compare two or more systems. Merely running existing code on the data provided by the authors is not sufficient.

  • Design and implement a solution to a problem that interests you. It is fine to pick a problem related to your RA or dissertation research, but be sure to formulate a clear short-term goal and desired outcome for the class project. Ideally, you should use the class project as an opportunity to try new techniques that you might not consider or have a chance to use otherwise.

Projects can be done in simulation, or on real hardware. We have 2 LoCoBots that are available to class students for project work. Please speak to me if you are interested in using these. If you want to work in simulation or analyze pre-collected robot data, here are a few pointers:

  1. Autonomous driving datasets: ArgoVerse, Waymo Dataset, nuScenes, KITTI.

  2. Data from real robots: RoboNet, Grasping dataset, Pushing Dataset.

  3. Robot demonstration datasets: MIME.

  4. Human demonstration datasets: EPIC Kitchen Dataset, Grasping in the Wild.

  5. 3D datasets: Matterport 3D, ScanNet.

  6. Batch Reinforcement Learning Datasets: D4RL and RL Unplugged.

  7. OpenAI Gym is a collection of many control tasks.

  8. Visual navigation simulators: AI Habitat Simulator, Gibson.

  9. CARLA is an open-source simulator for autonomous driving research.

  10. Simulated environments / datasets for manipulation: RL Bench, Meta World, RoboSuite, DexNet Datasets.

Proposal: due Thursday, Oct 8, 11:59:59PM

Note: Project proposal will need to be approved by the instructor. After you have submitted the project proposal, please sign up to meet with the instructor and go over your proposal. If your project proposal needs substantial revisions, you will need to submit a revised project proposal. This revised project proposal will be due on Oct 20. Meeting slots are available starting Oct 6. You are encouraged to submit your project proposal ahead of time, and get early feedback.

Your proposal should be up to two pages and address each of the following points.

  1. List of group members.

  2. Project description and goals: Describe the problem you plan to solve and give a basic outline of what you propose to implement. You can change later as you go along, but try to think this through as much as possible in advance. Identify the desired final outcome and pose maximum and minimum goals.

  3. Member roles: Indicate which project component each group member will be responsible for and how the group will interact.

  4. Resources: Specify what data or simulation environments or physical platform you plan to use. Do you plan to use any outside code and how do you plan to build on it? Be specific and give pointers to all relevant resources.

  5. Reservations: Try to anticipate which part of the implementation or testing may prove the most difficult. Possible stumbling blocks shouldn't necessarily prevent you from attempting a more ambitious project, but you should make sure that you have a realistic minimum goal that can be accomplished.

  6. Relationship to your background: Describe how your proposed project relates to your background or level of knowledge. Which techniques, software packages, etc., are you already familiar with, and which ones will be new to you? If the project is related to your dissertation or RA work, describe the relationship and the amount of overlap. Grading of your project will be relative to your background. That is, we will take into account not only the absolute outcomes of your project, but how much new material you have had to master and how successfully you have mastered it.

Note: The proposal is not graded separately, but late submission will incur a 10% per day penalty on the final project grade.

Progress report: due Thursday, Nov 5, 11:59:59PM

The progress report should be two to four pages and should contain the following:

  1. An updated statement of the project definition and goals. If there are any changes, discuss them specifically, together with the reasons for these changes.

  2. Current member roles and collaboration strategy. Who is responsible for what? How are the code and data shared/maintained? How does the group interact – e.g., are there regularly scheduled meetings?

  3. Proposed approach in the form of a detailed outline, pseudocode, or prose description. Be specific about how you plan to implement each step with references, pointers to external code, etc. One or more references are required at this stage.

  4. Data / Simulator / Physical Platform: specific description of how you plan to evaluate your proposed approach, how will you interface with the environment, what abstraction level you will control the robot, etc.

  5. Initial results: brief description of which steps (if any) from #3 above you have already implemented. As a minimum, you should have downloaded the data, setup simulators / physical platforms, and compiled and tested any external code.

  6. Current reservations and questions (if any).

Note: The progress report will not receive a separate grade, but its content and quality will contribute holistically to the overall project grade at the end of the semester. Late submission will incur a 10% per day penalty on the final project grade.

Final report, code: due Dec 6, 11:59:59 pm.

Final deliverables include:

  1. Final Report: A 6-page final report. Here is an outline to follow for the report:

    1. Introduction: Define and motivate the problem, discuss background material or related work, and briefly summarize your approach.

    2. Details of the approach: Include any formulas, pseudocode, diagrams – anything that is necessary to clearly explain your system and what you have done. If possible, illustrate the intermediate stages of your approach with results images.

    3. Results: Clearly describe your experimental protocols. If you are using training and test data, report the numbers of training and test images. Be sure to include example output figures. Quantitative evaluation is always a big plus (if applicable).

    4. Discussion and conclusions: Summarize the main insights drawn from your analysis and experiments. You can get a good project grade with mostly negative results, as long as you show evidence of extensive exploration, thoughtfully analyze the causes of your negative results, and discuss potential solutions.

    5. Statement of individual contributions.

    6. References: including URLs for any external code or data used.

  2. 9 minute live in-class presentation that explains your project and summarizes the points above.

  3. Code: A zip file of your source code to be uploaded to GradeScope. We are looking for only the most important code that you wrote yourself for the project, not any external libraries. We do not plan to run the code, but want to see it to be able to verify that you actually did the work you claim to have done.

Grading

Grades will be based on the quality of the project (originality, thoroughness, extent of analysis, etc.) and the clarity of the written report and presentation. Ideally, you will try something new or apply ideas from class to your domain or research. More will be expected of larger groups. You can still get a good grade if your ideas do not work out, as long as your presentation and report show evidence of extensive analysis and exploration, and provides thoughtful explanations of the observed outcomes.

Submission Instructions

Project proposals, progress reports and final reports all should be in PDF form, and must be submitted to Gradescope. You should use the template from CVPR (use the non-anonymous version). Project proposal should be upto two pages, progress report should be between two to four pages, and final report should be 6 pages. Only one submission is required per group, though you must add group members on the submission (there is a way to do this in Gradescope).