Final Project
Objectives
Your goal in this project is to explore a topic in robotics that is interesting to you and your team. This open-ended project is an opportunity to be creative and ambitions and we are excited to see what you will accomplish!
Learning Goals
- Defining and working on an open-ended project
- Developing self-directed learning and goal setting skills
- Working on a robotics project from start (coming up with a good idea) to finish (implementing your idea on a real robot)
Teaming & Logistics
For this project, your team should consist of 2-4 members.
Deliverables
Project Proposal
Your project proposal should include:
- Your team name
- A list of your team members
- A link to your team's Github repo
- Motivation (2-3 sentences): Why is your team interested in pursuing this project?
- Main Components (1 paragraph): What are the main topics covered in your project? What robotics algorithm(s) will you be exploring in your project? Are there any other main components to your project?
- Final Product (1 bullet point per deliverable level, 2-3 sentences per bullet point): For each of the following, what would success look like: 1) a minimum viable product (MVP), 2) a solid end result, 3) a end result that you would consider to be a "stretch" (e.g., "it would be above and beyond if we could...")
- Timeline: Provide a rough draft timeline for the major milestones of your project
- Risks (2-3 sentences): What do you see as the largest risks to your success in this project?
Your project proposal should be placed in a Google Drive folder your team creates for its deliverables. When you're ready to turn in your project proposal, please email the link to your Google Drive folder to uchicago.intro.robotics@gmail.com. Please give us read & comment access to this Google Drive folder.
Goal Identification, Revision, and Assessment
The goal identification, revision, and assessment is completed individually by each student and should be submitted via Canvas.
Goal Identification (due Friday, March 5 11:00am CST)
Develop three goals that you want to accomplish with your final project. They should represent your own learning objectives for the project. For each of these goals, write one paragraph (3-4 sentences) describing what you hope to learn, how you will achieve it, and why it is important. Each of your goals should be something that you can achieve, and it should be measurable - so we can tell at the end of the project if and how well you've achieved it.
Goal Revision & Assessment Plan (due Friday, March 12 11:00am CST)
At this point, you're a bit further along in your project. For this deliverable, you may change and edit your goals as you like. If you are satisfied with your goals as you originally stated them, it's more than fine to leave them as they are.
Next, you'll need to add an assessment plan for each of your three goals. Your assessment plan should clearly state how you will know whether you achieved that goal and how well you've achieved it.
Goal Assessment (due Friday, March 19 5:00pm CST)
Now that your project is complete, write the following for each goal:
- Description: A description of the goal (you can copy and paste this from your previous submissions)
- Assessment Plan: An assessment plan for the goal (you can copy and paste this from your prior submission)
- Evidence: Provide evidence of how your efforts on the project worked to achieve this goal. You might include psudo code, pointers to your code, gifs/images, and/or descriptions of interactions you had during the project.
- Interpretation of Evidence: How does the evidence correspond with your assessment plan?
- Grade: Out of 100 points, grade yourselves on how well you accomplished this goal. No need to justify your score, the prior sections should provide that justification.
Presentations
All of your presentations should be uploaded to your team's Google Drive folder before the class when you're presenting.
-
Initial Idea Presentation: Your first presentation will simply function to tell the rest of the class who is on your project team and what your project will be about. Your initial idea presentation should include the following slides:
- 1 slide: Team name & team members
- 1 slide: Project topic (please use diagrams/pictures to explain your project and limit the use of text)
For this initial project presentation, it's fine to have one member of the group present or multiple members, it's up to your group.
-
Midpoint Presentation: This second presentation is meant to showcase your ongoing work towards achieving your project goals. This presentation should include the following slides:
- 1 slide: Team name & team members
- 1 slide: Project topic (please make changes to reflect any changes in the project topic since the initial idea presentation)
- 1 slide: 3 overarching goals that your team has in this project (these can either synthesized from your individual goals or determined based on the overall aims of the project)
- For each major component of your project (e.g., the Q-learning project could be organized into three components 1) perception, 2) robot navigation & arm movement, and 3) the q-learning algorithm):
- 1 slide: Description of the component
- 1 slide: Your group's current progress on this component (gifs, screenshots, and/or videos encouraged)
All team members are expected to speak during this midpoint presentation. Also, your presentation should take between 5 and 7 minutes.
-
Final Presentation
- 1 slide: Team name & team members
- 1 slide: Project topic
- 1 slide: Your project goals
- For each major component of your project:
- 1 slide: Description of the component
- 1 slide: How you completed this component (gifs, screenshots, and/or videos encouraged)
- 1 slide: demo - you can either stop the presentation to do a live demo or play a video recording for your demo; if you do choose to do a live demo, we'd recommend having a video demo ready as a backup
- 1 slide: challenges - what were the 2-3 main challenges you faced and how did you overcome them
- 1 slide: future work - if you had 2-3 more weeks, what additions/changes would you make to improve your project
All team members are expected to speak during this final presentation. Your final presentation should take 10 minutes.
Code
You'll organize your code into one Github repo.
Writeup
Like in the previous projects, your Github README will serve as your project writeup. Your writeup should include the following:
- Project Description: Describe the goal of your project, why it's interesting, what you were able to make your robot do, and what the main components of your project are and how they fit together - please include diagrams and gifs when appropriate
- System Architecture: Describe in detail the robotics algorithm you implemented and each major component of your project, highlight what pieces of code contribute to these main components
- Challenges, Future Work, and Takeaways: These should take a similar form and structure to how you approached these in the previous projects (1 paragraph each for the challenges and future work and a few bullet points for takeaways)
Demo
Your demo should be either 1) presented in your writeup as a gif or 2) included in your Github repo as a video (or whatever format is most conducive to showing your project off). Your demo should clearly exhibit all of the functionality and features of your project.
Grading
The final project will be graded as follows:
- 5% Project proposal
- 30% Code (functionality, design, documentation)
- 30% Writeup & Presentations
- 30% Goal Identification, Revision, and Assessment
- 5% Demo (live or recorded)
Deadlines & Submission
Project Proposal
Your team's project proposal and presentation slides should all be uploaded within the same Google Drive folder that your group creates for this project. For your first deliverable (the project proposal), please email the link to your Google Drive folder to uchicago.intro.robotics@gmail.com. Please give us read & comment access to this Google Drive folder.
Goal Identification, Revision, and Assessment
The following deliverables should be submitted individually by each team member to Canvas by the listed due dates & times:
- Friday, March 5 11:00am CST: Goal Identification
- Friday, March 12 11:00am CST: Goal Revision & Assessment Plan
- Friday, March 19 5:00pm CST: Goal Assessment
Presentations
Your project team will make a total of 3 presentations over the course of the project. Upload your slides for each of these presentations to your Google Drive folder before the class period where you'll be presenting them.
- Wednesday, March 3 during class: Initial Idea Presentation
- Wednesday, March 10 during class: Midpoint Presentation
- Wednesday, March 17 during finals period: Final Presentation
Team Contributions Survey
Once you're done with your project, fill out the team contributions survey. The purpose of this survey is to accurately capture the contributions of each team member to your combined final project deliverables.
Final Project Submission Items
The following final project deliverables are due on Friday, March 19 5:00pm CST:
A Note on Flex Hours
As noted on the Course Info page, we are not accepting flex hours for this assignment.
Choosing a Project Topic
Requirements
- Your project must involve a robot and be focused on a robotics problem.
- Your project should involve learning about a robotics algorithm that no one on your team is an expert at. A central goal of this project is to either 1) learn about a new robotics algorithm or 2) expand a robotics algorithm beyond what we discussed and applied earlier in the course, and then apply this algorithm within the context of your project.
- Your project work should be accomplished on 1 or more simulated robot(s) in Gazebo.
Things to Consider
- We encourage you to use to the Turtlebot3 robot (you're already familiar with how it works and how to control it), but you don't have to use the Turtlebot3 robot. You can use another robot compatible with Gazebo and ROS Noetic. You could also augment the Turtlebot3 robot with additional sensors or components.
- Carefully consider the scope of your project. You have a little over 3 weeks to complete this project. You want something challenging, yet achievable.
Example Final Projects
Since this is the first time this class is being taught, I'll provide some examples from Paul Ruvolo's Fall 2020 A Computational Introduction to Robotics course taught at Olin College of Engineering:
- Robot Soccer: getting a robot to "kick" a soccer ball into a goal
- Autonomous Parking: enabling a robot to parallel park, perpendicular park, or manual park
- Robot Swarm Forms Polygons: creating robot swarms where the individual robots move to locations representing a vertex of a regular polygon based on the number of robot agents
- Maze Navigation: using state-of-the-art algorithms for maze navigation
- Audio Dog: recognizing speech commands from a person and following the commands given, like a dog would
Acknowledgments
The design of this course project was influenced by Paul Ruvolo and his Fall 2020 A Computational Introduction to Robotics course taught at Olin College of Engineering.