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 5 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 set your own learning goals and craft a suitable assessment plan (see the YOGA section).

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 applications 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 us 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 computational. We expect that, given the virtual nature of the class, projects will be in simulation. Please talk to us ASAP if you want to do things in hardware (e.g. on a physical NEATO, or on another robot)

Opportunities

  • You may consider utilizing additional hardware (likely simulated) above and beyond the standard Neato platform. This could come in the form of multiple robots, a new sensor (e.g., Gazebo allows you to add-on additional sensors to a robot), a new actuator (e.g. a (simulated) robotic arm), or a new robot simulator (the simulators page on the website has information on some choices here).
  • This might be a good chance to go into depth with Gazebo. You might be interested in learning what it would take to go from a physical model of a robot (e.g., in SolidWorks) to an actual 3D simulation with sensors and actuators in Gazebo.
  • 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

  • Previous project repositories can be found in this Google Sheet.

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 (5%)
  • Poster / demo (5%)
  • Code (functionality, design, documentation) (30%)
  • Website. Includes project stories (or blog) and project documentation. (10% for blog entry 1, 10% for blog entry 2, 10% for the final project documentation).
  • YOGA (30%)

Project Proposal (due 9 am on Monday 11/16).

  • 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? Given our discussions in class, are there possible implications for society? (Note: We’re not expecting a lengthy analysis, but some ideas and consideration.)
  • 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 a rough timeline for the major milestones of your project. This will mainly be useful to refer back to as we move through the project.
  • What do you view as the biggest risks to you being successful on this project?
  • [This section will be completed in class on 11/9] Given each of your YOGAs, in what ways is this project well-aligned with these goals, and in what ways is it misaligned? If there are ways in which it 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.

Teaser Slide / Demo [TODO: we will update with more logistics]

On Thursday, December 17th from 2-5pm, we will have our final event. You should create a teaser slide that functions as an advertisement of the main points of your project (your goal should be to make it legible to folks who know a bit about robotics but are not from this class). In addition, you may consider having a demo (either live or recorded). You should be prepared to hang out in your breakout room and talk about your work with other students and Olin community members. In order to ensure that you can see other groups’ posters, only half of your team needs to be by the poster at any point time (allowing the other member(s) to go view other teams posters / demos). You will receive full credit for this activity if you create a comprehensive poster and participate in the final event.

Code (functionality, design, documentation)

This is pretty self-explanatory. We will be using the same rubric as for the other assignments.

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 (course assistants and faculty).

Project Stories (blog)

Twice during the project you will be writing a blog entry that tells a story about some phase of your project. Possible templates for these stories are:

  • We tried a method or an algorithm to solve a problem. The method didn’t work. We though of a new method. We implemented it. It worked! Hurray! (fill in with lots of good descriptive text, code snippets, and visuals).
  • We had a particularly nasty bug. We tried lots of methods to debug the problem. Finally we figured it out! We learned lessons for the future. Hurray! (fill in with a detailed description of what the bug was and what methods you tried).
  • We have implemented a key feature. It works really well! Here’s how we did it. Hurray!

Project story 1 will be due by class on Monday 11/23. Submit here .

Project story 2 will be due by class on Wednesday 12/9. Submit here .

Project Documentation (Due at the final event Thurs Dec 17th)

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.

Submit your website link on canvas here

YOGA

Phase 0 (identification of learning goals) Due Monday 11/16

As you finalize your project topic and proposal, you will write up a list of three goals that you wish to achieve during the final project. Your goals can take any form as long as they represent your own interests and learning objectives for the project. Since you know, generally, what project you will be working on, these goals should be reasonably well-aligned with your choice of project. You may consider building on the course learning objectives, or you can strike out in a new direction. Make sure that each goal is written in a clear manner: the goal should be something that you can achieve, and you need to be able to know if/when/how well you have achieved it.

The phase 0 submission should be a list of three goals, each one about a paragraph (3­-4 sentences). To make things easier later on, please use a Google doc to write down your goals. Explain what you hope to do or learn, how you will achieve it, and (briefly!) why it is important. Please submit to canvas here . We recommend using a google doc and providing the link. You will be engaging with your assignment during class, so make sure to have it with you.

Phase 1 (mid-project revision and assessment plan) Due Monday Nov 30.

Now that you are a little more than halfway through the project, you may wish to revise your goals. This is your chance to change your goals for whatever reason, or perhaps to clarify them. If you are happy with the goals that you identified, then you can leave them unchanged.

Whether you revise them or not, at this time you should add an assessment plan for each goal. How will you (and we) know that you achieved each goal, and how will we know how well you achieved it? The assessment plan does not need to be a tangible assignment; you are welcome to propose a reflection or any other strategy.

To turn in this assignment you should include all of the content from you phase 0 goals, any revisions to your goals, and your assessment plan. Please submit your assignment here .

Phase 2 (reflection and assessment) Due by final event Thursday 12/17

At the end of the project you will assign yourself a grade that indicates how well you think you achieved your goals. Along with your grade, you will send us a 2­-3 page narrative reflection that explains your progress towards these goals. This reflection should again build upon the document you submitted earlier: include the unmodified phase 1 assignment and add your concluding thoughts at the end.

For phase 2, please turn in a document that has a section devoted to each learning goal. Submit your document here . The section should have the following subsections:

  • What is the goal? [This should already be there from previous phases]
  • What is the assessment plan? [This should already be there from previous phases]
  • Evidence. Provide evidence (or pointers to evidence) that are useful in assessing the learning goal. This could be samples of code from your repo, a link to a video, a description of an activity you did.
  • Interpretation of the evidence. In your words, how does the evidence link with your assessment plan?
  • Your grade for this goal. This does not need additional justification beyond what was stated in the first four points. We will do some calibration of these among different students, so don’t worry too much about knowing what other students are putting for these.