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 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 CV 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 (we now have support for multiple Neatos), a new sensor (e.g., the Oak-D lite from the Turtlebot or an iPhone-based ARKit setup), or a new actuator (e.g. some students added a pen to a Neato a few years ago).
- 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 (sorry, I didn’t update this from 2020).
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. (7.5% for blog entry 1, 7.5% for blog entry 2, 10% for the final project documentation).
- Ethics and Responsible Use Statement (15%)
- YOGA (20%)
Project Proposal (due 1pm am on Tuesday 11/8).
- 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.)
- 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 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 Wednesday, December 14th from 4-6pm, 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 by your teaser slide (either displayed on a laptop or printed as a poster) 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 teaser slide 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.
Ethics Statement and Responsbile Use
Please prepare a Statement of Potential Negative Societal Impacts based on the framing from CVPR. We expect that Section 3 won’t apply to everyone, but if it does, please address that as well.
Please prepare a statement of principles of responsible use of the technique or system you create. What sorts of contexts or applications would license your work to be used within? What guidelines or restrictions would you place on its use in these situations?
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 Tuesday 11/29. Submit on Canvas.
Project story 2 will be due by class on Friday 12/9. Submit on Canvas.
Project Documentation (Due at the end of finals period Monday Dec 19th)
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.
YOGA
Phase 0 (identification of learning goals) Due Tuesday 11/8
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. You will engage with these learning goals in-class on 11/8, so please have them with you at that time.
Phase 1 (mid-project revision and assessment plan) Due Friday 12/2.
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 on Canvas.
Phase 2 (reflection and assessment) Due by the end of finals period 12/19
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 on Canvas. 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.