For the remainder of the course you will be working on an open-ended robotics project with a team of your peers. The playing field is wide open. This is your chance to be creative and ambitious. I am very excited to see what you all are able to accomplish!
Deltas from Previous Projects
- A bit longer in duration 1 month versus 3 weeks for the longest projects we've done thus far.
- There will be a greater emphasis on creating clear and 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 YOGA section).
Project Topic Considerations
Requirements
- Your project must involve a robot! 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 deploy your module on a robot by the end of the project.
- Your project should, except in very rare cases, involve the Neatos. I will consider working with other robots only when you can convincingly show that bringing the new platform online will not take a significant portion of the project time.
- 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. Some amount of electrical / mechanical work is fine, but it should be a fairly minimal portion of the project.
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. an IMU, microphones, a new LIDAR, a Google Tango), a new actuator (e.g. a robotic arm), or in rare cases a new robot (my bar for allowing this very high).
- You may consider using the ceiling tile localization system as part of the project.
- You may consider adding real-world context to your project. For instance, perhaps you could create educational or outreach activities for elementary school kids that involve learning about robotics. Another idea would be to get a robot to solve a tough real world challenge (like searching for survivors in a disaster scenario). Another idea would be to find trip hazards (e.g. bunched up rugs) using the camera (this could be helpful in assisted living scenarios).
- Your project might integrate a significant work in both mobile robotics and computer vision. With the added time, you have the opportunity to really integrate across the two major content areas of this class to do something awesome.
- 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 long duration of the assignment.
Design Reviews
We will be doing a formal design review during the project. The date for the review is 4/21 for the T/F section and 4/24 for the M/R section.
Each team will have 20 minutes to present. This time includes the time to solicit feedback from your audience, so you have to keep the formal presentation fairly minimal.
For the T/F section, each of the four teams will present to the other teams in the class.
For the M/R section, we will be dividing into two groups of teams.
Group 1 (AC109):
- Shane, Kevin, David (multi-robots + genetic algorithms)
- Yuzhong and Dhash (Neural networks with a sleep phase)
- Bonnie, Shruti, and Katie (machine learning analysis of audio for speaker ID and localization)
- Eric, Lauren, and Nathan (Neural networks for end-to-end robot control)
Group 2 (AC112):
- Joe and Arpan (Voice to text for robot control)
- Jonah and Carl (drawing robot)
- Judy and Riley (IMU + Sensor Fusion)
- Gabe and Audrey (shape recognition)
The goals of the review are:
- To practice explaining your project to an audience.
- To act as an intermediate checkpoint to help you stay on track to complete your project without putting in a bunch of all nighters at the end.
- To gather meaningful feedback from the audience to help make progress on the project.
I'd like you to use the following as a rough guide to structure your review (remember you have 20 minutes, including time for interaction with the audience):
- What's the main idea of the project? What are you trying to create and what are the main pieces? Don't fall victim to assuming that your audience knows too much (this can happen when you are too close to a project).
- What have you done so far? This should hopefully be a pretty meaty section, perhaps 5 minutes. Don't be afraid to show off the great stuff you have done even if it doesn't feed directly into the challenges you are facing.
- What challenges are you facing in your project that you think the audience will be helpful with? The issues could be anything from system design choices, algorithm selection, project scope, to code-level architecture. Make sure to properly scaffold this conversation. For instance, perhaps your learning goals are an important piece of context for the audience to give you relevant advice. Alternatively, maybe there is a fairly specialized piece of knowledge that not every knows, you should be sure to explain this in your presentation so that the audience can engage in the discussion.
- Project Proposal (0%)
- Poster / demo (10%)
- Code (encompasses 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
- Who is on the team?
- What is the main idea 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?
- Given each of your YOGAs (see here), 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.
This is due by the end of Sunday, April 9th at noon for both sections. Please turn it in by sharing it with me paullundyruvolo@gmail.com. I will be returning this very quickly, so it is important to have it in on time.
Poster / Demo
On Friday, May 5th we will be having a Robot Expo with both sections of CompRobo. You should create a poster that describes the major highlights of your project. In addition, you may consider having a demo (either live or a video played on a laptop). You should be prepared to stand by your poster and talk about it with other students and Olin community members as they come by. So that you get a chance to 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 fully in the robot expo.
Code (encompasses functionality, design, documentation)
This is pretty self-explanatory. I will be using the same rubric as for the other assignments.
Website / 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, the NINJAs, and me.
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 on 4/20 for Section 1 and 4/18 for Section 2.
Project story 2 will be due on 4/27 for Section 1 and 4/25 for Section 2.
Project Documentation
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? 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. (Note: more details will be added to this section soon).
- System architecture: In detail describe each component of your project. Make sure to touch upon both code structure as well as algorithms. (Note: more details will be added to this section soon).
Project documentation is due 5/5.
YOGA
Phase 0
The day before the in-class project ideation and team formation activity, 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 final project. You are welcome to build 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). Explain what you hope to do or learn, how you will achieve it, and (briefly!) why it is important. To turn your assignment in, you will share a Google doc with me (paullundyruvolo@gmail.com). Please name your document "Lastname, Firstname CompRobo YOGA" so that I can keep track. This is due by the end of the day 4/4 for section 1 and 4/5 for section 2.
Phase 1
Once you are on a specific team and have written your project proposal, you may want 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 then you can leave them unchanged. Whether you revise them or not, at this time we want you to 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 add a new page to the Google doc that you have shared with me. Please don't delete old content, but instead append phase 1 at the end (even if it is largely the same as phase 0). This is due in class 4/10 for section 1 and 4/11 for section 2.
Phase 2
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 me 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 phase 0, 1, and 2 assignments and add your concluding thoughts at the end. This is due 5/5.
For phase 2, please turn in a document that has a section devoted to each learning goal. 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. I will do some calibration of these among different students, so don't worry too much about knowing what other students are putting for these.