I strive to create technology that helps improve people’s quality of life while preserving our natural environment.
As systems integration lead and software development co-lead for Olin Aquatic Robotic Systems, I am responsible for directing the development of an autonomous sailboat’s software and electrical systems and for ensuring mechanical, electrical, and software systems integrate seamlessly. I am also the lead developer for the monitoring and control web app and an advisor to the computer vision group.
BOCS is an extensible puzzle box, from both the hardware and software standpoints. Puzzles can be written in Python without any knowledge of the intricate workings of the BOCS. High-level logic is run on a Raspberry Pi Zero W, with Arduinos in responsible for controlling most I/O.
As the sole CS person working on BOCS, I architected the software system, the including inter-device communication protocol, and wrote the vast majority of the code.
For my team's final project in User-Oriented Collaborative Design, we met extensively with nurses to understand their day-to-day lives and to identify ways we, as engineers, might be able to help make their lives better. Our user research and initial proposals unveiled no universal pain points but a prominent desire among some nurses to affect change.
After much radial and lateral thinking, we arrived at a proposal for a new type of hospital based largely on Olin's own engineering curriculum model. Nursing work weeks are split between caring for patients and developing solutions for the issues they run into. On-staff technical and design resources aid nurses in the process, and in the end passionate nurses are empowered to affect change in their workplace.
The Amorphous Blob of Events (ABE) is a project developed by Olin College students in conjunction with the Olin College Library. It is an event repository for communities, with a RESTful API and as well as a "traditional" calendar frontend.
The calendar view itself (the part you’d print out and stick on the wall) is also of my design. After originally using the jQuery-based FullCalendar, we decided a non-React calendar component was getting in our way too much. When no satisfying React calendar component could be found, I created my own.
Network-connected headless devices (e.g. Raspberry Pis with no displays) are often difficult to connect to over WiFi. Static IP addresses can be laborious to configure and, when on congested networks, address conflicts often arise. DHCP solves those problems, but there’s no easy way to know what IP address a device has been given by a router.
HereIAm provides an all-in-one network status reporting solution to address this problem. A tiny client Python script reports the network status, including IP address and WiFi signal strength, to a server. A React web app then connects to this server (over WebSockets for live updating) and displays the reported device information.
As part of our module on systems and controls in Quantitative Engineering Analysis, my partner and I designed and analyzed the control system for an infant-warming bassinet. Our goal was to minimize heating time while keeping power draw below a certain threshold, such that it would not cripple electrical systems in developing regions of the world. We were able to prescribe PI control parameters to use to keep the max power draw below the desired threshold.
View our full report for more details.
For practice with reference frames, autonomous navigation, and obstacle avoidance, my partner and I used the LIDAR on a robotic Neato vacuum to complete a set of challenges. These challenges included mapping a playpen by combining scans taken at multiple locations, using the LIDAR to generate a potential field map around the robot and navigating to the “valley” (a hardcoded location where a bucket had been placed) using gradient descent, and attempting to autonomously locate and navigate to the circular bucket. Unfortunately, the LIDAR’s resolution provided inadequate for circle detection more than a few feet away from the bucket, and thus we were unable to successfully implement fully unguided navigation.
As an application of linear algebra, my partner and I implemented the eigenfaces approach to facial recognition. Though the photos of faces had to be taken in the same lighting conditions and cropped the same, the approach did work remarkably well, with a success rate of 91%.
My partner and I attempted to also implement a neural network capable of facial recognition, but we ran out of time. View our full report for more details.
When learning multivariable calculus, my partner and I designed and built a small boat meeting a specified criterion: it had to have an angle of vanishing stability (AVS) of between 120 and 140 degrees. After modeling various hull shapes and analyzing them in Mathematica, we CAD-ed hull sections, laser cut them out of hardboard, and assembled and demoed the boat without any testing. It worked perfectly, proving our AVS calculation accurate to within two degrees. View our full report for more details.
Modeling and Simulation concluded, for my partner and me, with a billiard kinetics simulator. Inspired by our pool shark professor, we modeled the physics of the game to determine how our professor could make a seemingly impossible shot. Check out the poster to see how it could be done.