Potential Capstone Projects

Refer to the listing below of industry project proposal options for MME Fourth Year Design Projects (FYDP). We recommend that students refer back to this page frequently, as new proposal options will be added on an ongoing basis:

Instrumenting Pianos and Using Artificial Intelligence to Interpret Pianists' Mood

Executive Summary

Campus pianos at the University of Waterloo have successfully demonstrated that the pragmatic and proactive use of musical instruments in an open space can have a significant impact on mood. Noticeably on Reddit and other online forums, one can find examples of UWaterloo community members interacting with outdoor pianos, part of the Open Pianos On University Campuses (OPUS) program.

The program intends to expand its reach by placing pianos indoors, so that UWaterloo community members may access these open pianos during the Winter months. For this project, an FYDP team will be tasked with designing a system that will measure the vibrations at various spots on an indoor piano, and will have to, in real-time, display the measured waves, and inform the player if they are playing too loudly.

The system must also be able to determine, using artificial intelligence, the player's mood based on the song they are playing. Since this project is linked to an open music platform, another goal of the project would be to set up a wireless live-stream of the piano to the internet, and to be able to listen to the music from anywhere in the world.

Key Project Consultant/Contact:

Max Salman (Founder - OPUS)

m4salman@uwaterloo.ca / 519.888.4567 - x38524

Please refer to the full PDF of the proposal for more information: 

piano-ai-moodmeter.pdf

WATonomous Compute Rack Group (Mechanical Division)

The Compute Rack Group is responsible for the mounting of the entire compute system in the trunk of the vehicle. This group ensures everything remains intact while the vehicle is in motion.  They perform analysis to verify the compute system will not fail due to thermal or vibrational issues.

Key Project Consultant/Contact
Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143

Hossein Pishyar - Compute Rack Group Manager
hossein.pishyar@uwaterloo.ca

WATonomous Test Track Infrastructure Group (Mechanical Division)

The Test Track Infrastructure Group is responsible for outfitting our Test Track with easily maneuverable environmental features, allowing WATonomous to simulate a wide variety of urban driving environments.  Some features include: Traffic Light mounting and state control,
Pedestrian Dummy mounting and motion control, and Lane Line surveying.

Key Project Consultant/Contact
Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143

Rafeel Shuja - Test Track Infrastructure Group Manager
rfshuja@uwaterloo.ca

WATonomous Sensor Mounting Group (Mechanical Division)

The Sensor Mounting Group is responsible for the mounting of all external and internal sensors the autonomous vehicle requires. These sensors include LiDAR, GPS, Cameras, and various other inputs for the autonomous system. The sensors group works closely with various electrical and software divisions to figure out what sensors are required, how to mount them, and how to ensure they will be able to withstand various environmental conditions.

Key Project Consultant/Contact
Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143

Edmond Lu - Sensor Mounting Group Manager
e5lu@uwaterloo.ca

WATonomous Infrastructure Group (Software Division)

The Infrastructure Group is responsible for creating the tools needed to integrate and support the modules of all the other groups. Members will be working on setting up continuous integration, maintaining and improving the development and production (in-car) environments, and implementation of various visualizations and tools to support the other groups, both in their local environment and when testing in the car.

Infrastructure members will gain experience working with technologies such as Docker, ROS, Python and C++.


The Infrastructure Group is broken down into three Squads: Workspace Virtualization, Continuous Integration, and VIZ Tooling.  Infrastructure Group members tend to stay on the same Squad, since Squad domain experience is not as transferable compared to the other Groups.

Key Project Consultant/Contact
Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143

Yug Khanna - Infrastructure Group Manager
y2khanna@edu.uwaterloo.ca

WATonomous Perception Group

The Perception Group is responsible for processing camera, LIDAR and radar sensor data to identify objects of interest (eg. road lines, traffic signals/signs, obstacles etc). Members will research and develop object detection and classification algorithms, experiment with existing open-source libraries, and work with other teams to integrate the Perception module into the software system.

Members will gain experience working with machine learning, computer vision, point cloud data processing, system integration, ROS, OpenCV, C++, and Python. 


The Perception Group is broken down into five Squads: Object Classification, Roadline Detection, LiDAR Object Detection, Camera Calibration, and FPGA. Perception Group members frequently move to different Squads, based on what work is prioritized by the Manager.

Key Project Consultant/Contact
Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143

Anita Hu - Perception Group Manager
cq2hu@edu.uwaterloo.ca

WATonomous Processing Group (Software Division)

The Processing group is responsible for taking the disparate data sources coming from Perception, and forming as accurate a picture of the surrounding environment as possible. Members will be responsible for developing algorithms to develop associations of detections across different sensors, tracking objects over time, and predicting their positions in the future, eliminating false detections, and error correction.

Processing members will gain experience in working with C++, ROS, and statistical methods such as Kalmin and particle filters.


The Processing Group is broken down into three Squads: High Level Data Fusion, Object Tracking, and Localization. Processing Group members frequently move to different Squads, based on what work is prioritized by the Manager.

Key Project Consultant/Contact
Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143

Abhinav Agrahari- Processing Group Manager
aagrahar@edu.uwaterloo.ca

WATonomous Path Planning Group (Software Division)

The Path Planning Group is responsible for handling decision making in different situations including collision avoidance, automated emergency braking, intelligent routing, four way stops, protected intersections, parking, lane changes, speed handling, and much more.

Members will be responsible for engineering low-latency real-time planning, controls, and probabilistic decision making algorithms and simulators. Path Planning members will gain experience with building performance-oriented C++ code, path planning and controls algorithms, and real-world applications of mathematical concepts such as linear algebra, calculus, differential equations, computational geometry, graphics, and controls systems. The Path Planning Group is the most volatile.


The Group is is broken down into many Squads, which pop up and die out frequently as the competition moves from year to year. Some
examples of Squads are: Costmap Generation, Trajectory Planning, Feedback Controllers, Simulation, Behavioral Planner, etc... Path Planning Group members frequently move to different Squads, based on what work is prioritized by the Manager.

Key Project Consultant/Contact

Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143
Carter Pearson - Path Planning Group Manager
c5pearso@uwaterloo.ca

WATonomous Sensor Interfacing Group (Electrical Division)

The Sensor Networking Group is the core team in WATO that deals with how all our various sensor softwares and drivers are organized in our codebase. This involves managing our source control, development, and overall integration / communication between all our sensors.

If you are looking to get hands-on experience with industry grade sensors and work on software architecture within industry research level frameworks, this is the Group for you.

Key Project Consultant/Contact
Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143
Joon Lee - Sensor Interfacing Group Manager
joonmin.lee@edu.uwaterloo.ca

WATonomous Telemetry Group (Electrical Division)

The Telemetry Group is responsible for creating a system to broadcast critical data from the car in real-time. This involves developing systems to monitor battery and compute rack thermals, visualizing various sensor output, and finding a reliable way to stream this information to individuals not physically in the car.

Since this project is fairly new and being built from the ground up, there are a lot of opportunities to design electrical systems and software components from scratch. Overall, this project is a good mix of electrical, web, and general software development.

Key Project Consultant/Contact
Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143

Hamza Baig - Telemetry Group Manager
mhabaig@uwaterloo.ca

WATonomous Power Systems Group (Electrical Division)

The Power Systems Group aims to centralize and streamline power distribution to sensors (radars, camera, LIDAR’s, etc.) and other electrical components of the car/competition elements (i.e. Traffic Lights).

The Group's focus is to ensure all electrical systems are not just seamlessly powered but also easily scalable so that more sensors and I/O devices can be added as needed. If you are looking for experience with physical prototyping, soldering, and electrical board design, this is the Group to be part of!

Key Project Consultant/Contact
Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143

Mitchell Hoyt - Power Systems Group Manager
mchoyt@uwaterloo.ca

WATonomous Radar Driver Group (Electrical Division)

The Radar Driver Group focuses on building a custom driver for the provided radar, in order to extract key metrics for the Perception Group, handle multiple radar connections and visualize the data through a point cloud. The driver is written in C++ and python, using ROS as the base in order to communicate with the rest of the car.


This Group works with embedded practices and requires working with the radar hardware.

Key Project Consultant/Contact
Rowan Dempster - WATonomous Team Captain
r2dempst@uwaterloo.ca / 226-978-0143

Steven Tuer - Radar Driver Group Manager
sktuer@uwaterloo.ca