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

Teaming & Logistics

For this project, your team should consist of 2-4 members. You can work with prior partners from the previous 2 projects. Like the prior two projects, we do ask that your project team all attend the same lab section for the next 3 weeks.


Deliverables


Project Pitches

Develop and submit 1-2 final project pitches and put them in this Google Doc. In that Google Doc, you can also find instructions and example project pitches.

Project Proposal

Your project proposal should include:

Submit your project proposal as a group assignment on Gradescope.

Presentations

A PDF of your presentations and any videos should be submitted to Gradescope before the class period where you'll be presenting them.

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:

Demo

Each team will provide a live demo of their project during the finals period time slot. Your demo should clearly exhibit all of the functionality and features of your project. Because live demos can sometimes go awry, we recommend having a backup demo video.

Grading


Deadlines & Submission


Project Proposal

Your project proposal is due Thursday, November 13 at 8:00pm and will be submitted on Gradescope.

Presentations

Your project team will make 2 presentations during the project. Upload your slides and video(s) for each of these presentations to Gradescope before the class period where you'll be presenting them.

Demo

Each team will provide a live demo of their project on Thursday, December 11 from 12:30pm - 1:30pm in CSIL 1/2 during the finals period time slot.

Team Contributions Survey

Once you're done with your project, fill out the team member 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 Thursday, December 11 by 8:00pm CST:

A Note on Flex Hours

As noted on the Syllabus page, we are not accepting flex hours for this assignment.


Choosing a Project Topic


Requirements

Additional Resources

The final project offers you the opportunity to go beyond what we've done in class thus far in several ways:

Example Final Projects

Please keep in mind that some of these project examples come from when the class was taught on Zoom and entirely in simulation due to COVID-19.


DanceBot

This project sought to create a Turtlebot4 that could implement dance moves based on user sign language input. The team implemented a computer vision model capable of recognizing the 24 static signs of American Sign Language according to the Sign Language MNIST dataset. The team chose 5 specific signs to correspond with our five dance moves (the wave, the chop, the spin, the point, and the whip/nae nae), and were able to use the Turtlebot3 camera to have the robot to be able to witness a sequence of signs and execute the corresponding dance moves.


open air hand imitation 1
open air hand imitation 2
Open Air Hand Imitation

This team sought to control a Turtlebot arm through open-air hand imitation, think remote teleoperation using your hand as a controller. They used RGB and depth information from an external Intel Realsense camera to train a neural network to detect the location of the hand in 3D space and whether it was open or closed. Then, they developed their own inverse kinematics approach to enable the robot arm to follow the hand's movements and open/close the gripper accordingly.


jenga pulling block
jenga placing block
Project Jenga

This Turtlebot was designed to play a game of Jenga with a user. The team leveraged inverse kinematics combined with LiDAR and Camera readings to push and pull a block out of a jenga tower and place that block on top of the tower.


autonomous robot math solver
Autonomous Robot Math Solver

The goal of this project is to present a Turtlebot with addition problems on a whiteboard with an integer number of digits within the visible frame. The robot then emulates the actions that a human would to solve the problem. This project uses the the robot's front-facing camera and computer vision techniques to read the math problem and an inverse kinematics algorithm to move the robot's arm to the right positions on the whiteboard and draw each digit.


deep RL turtlebot tag
Deep RL Turtlebot Tag

This project is a take on the game of tag, where the chaser robot tries to tag the runner robot. This team implemented the chaser robot's behavior with a hard-coded greedy algorithm and the runner with a deep Q-learning algorithm based on the robot's LiDAR sensor data. The team trained their deep Q-learning runner by running many simulations with an adversarial chaser.


Cyborg Turtledog
Cyborg Turtledog

The Cyborg Turtledog team was inspired to have a turtlebot respond like a dog to the instructions of a person. They created a gesture recognition computer vision algorithm so the robot could recognize human instructions as well as a clickable GUI that enabled a user to click on a location where they wanted the robot to go.


robot relay race
Robot Relay Race

The goal of this project was to have multiple turtlebots complete a relay race. This project incorporated many of the different algorithms and topics these students learned throughout the quarter: the A* path finding algorithm, object recognition, and handling the batons.


pacturtle
PacTurtle

Dubbed Pacturtle, this final project was inspired by Pacman. This team's program features a user-operated Pacturtle whose goal is to evade the four ghost turtles for as long as possible within a specially designed maze world. By giving all the ghost turtles different search algorithms (e.g., breadth first search, map exploration, random movements), they hoped to make the game as challenging as possible and, in this way, immerse the user in an interactive and fun game.



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. I also want to thank the alumni of this course, whose projects are featured examples on this page.