Over the years I've worked on many projects and here are some of the highlights. Unfortunately, many of the courses I've taken use the same projects each year and therefore don't allow students to publish code. A few of these include writing an operating system (CIS 380), implementing a superscalar pipelined processor in verilog (CIS 371) and building a HTTP server from scratch (CIS 455).

Penn Electric Racing

I've done many things at Penn, but the one constant has always been Penn Electric Racing, starting with my freshman year when I built the charger and created our first live graphing program. Since becoming the first computer science major on the team, I've helped the software team grow into a group of over 15 people who actively contribute. I've also spent countless hours on a variety of projects from firmware for our custom motor controllers, to developing a code generation system to handle all communications around the car and creating a program to help visualize all our data.

Lincoln Nebraska after winning FSAE Electric 2017

Autonomous Racecar Simulation

I created a simulation of the racecar from scratch in C++ for two courses, Control and Optimization with Applications in Robotics (MEAM 517) and Applied Machine Learning (CIS 519). It incorporates a model predictive control algorithm and graphics with motion blur. In the future it will hopefully help the team build an autonomous racecar.

Model Predictive Controller Following Race Track

SeaSearcher (Senior Design)

I worked on a team with 5 other engineers to create a automous coral reef surveying boat for a year long senior design course project. The boat was controllable with a phone app and could also autonomously navigate through a sequence of waypoints. We tested it several times and even took it to a reef in Miami. At the end of the year, we were awarded the Francis G. Tatnall Prize.

After Testing SeaSearcher at Night

Quadcopter Path Finding and Control

This project in Advanced Robotics (MEAM620) combined implementing several different components in simulation, including an A* path finding algorithm, a trajectory generator and a quadcopter controller, and using them to get an actual quadcopter to fly through a maze.

Quadcopter Navigating Maze

Kalman Filter

I implemented an Unscented Kalman Filter for Learning in Robotics (ESE650) using quaternions to track the orientation of an object with the provided accelerometer and gyroscope data. In the next project, I'll be using an Extended Kalman Filter to map an environment.

Unscented Kalman Filter Matches Ground Truth


Robockey was the final project in mechatronics (MEAM 510). I spent nearly 6 weeks working with two friends from Penn Electric, Andrew Remec and Daniel Orol, to create a team of three hockey playing robots.

Robockey Robots

These are the most recent projects I've done, but older ones are still in my Project Archive.