As a graduate teaching assistant for a senior-level controls course, I worked with hands-on laboratory experiments for practical modeling and control of motion systems. In these labs, I helped students build controllers for self-balancing robots, magnetic levitators, and RLC circuits. The course includes a final project, where students can apply their controls knowledge to a variety of unique applications. Some of these systems can be found here. I also received the Outstanding Graduate Teaching Assistant Award from the Mechanical Engineering department.
Mochi was overweight when we adopted him, so I built him an automatic feeder to control his diet and make him exercise. The feeder first dispenses food onto a load cell which weighs the correct portion. Then it waits for Mochi to jump onto the blue platform, where another load cell will detect his presence and dispense the food for him. This project was initially built for a mechatronics class to teach programming a microcontroller, but it worked well, and I've made several modifications over the years. I am happy to say that the feeder was a success and Mochi is now a healthy weight!
For my senior capstone, I led a team of engineers in the design and construction of a robot to help my dad at Firehouse Nursery. Each year, workers spend countless hours planting over 10,000 cuttings into soil by hand. Our goal was to automate this process, thus reducing manual labor and saving time. The robot is custom-designed and mainly constructed from 3D-printed parts. It features three degrees of freedom and a work envelope that includes a 50-cell tray. This project was my first introduction into the world of robotics and set me on the path to study robotics at the graduate level.
This project explored various machine learning algorithms for handwritten character recognition. We use an OCR framework based on several machine learning techniques, both supervised and unsupervised. First, individual characters are extracted from an input image using the unsupervised clustering algorithm DB SCAN. For unlabeled characters, we explore the use of K-Means and a Gaussian Mixture model to cluster unlabeled characters for convenient manual labeling. Finally, we implement several supervised models to predict characters from images: Decision Trees, Naïve Bayes, a linear Support Vector Machine (SVM), and two convolutional neural networks trained using Stochastic Gradient Descent. More details here.
For this project, a simplified PUMA robot arm is modeled and controlled using Simulink. The robot must complete a drawing task in under 10 seconds with a maximum positional error less than 3 cm. The dynamic equations of motion are defined and a PID controller is implemented to minimize error along the desired path. At each time step, the joint angles are input into the Jacobian transpose and multiplied by the PID controller previously calculated to determine how much torque the motors should apply based on the error in the system. The result is a robot that can draw custom shapes, or in this case, spell words using a single input path.
I developed a video game in Unity where players control a car, complete various mini games to upgrade their vehicle, and aim to win the final race. Through this project, I honed my skills in game design, C# programming, and Unity engine proficiency. I also gained experience in UI/UX design, 3D modeling, audio integration, and project management, ensuring a seamless and engaging player experience. The game features realistic physics for car handling and intuitive UI elements to guide players. Extensive user feedback testing and debugging were conducted to provide a smooth and enjoyable gameplay experience.
The goal of this project was to recreate a functioning mechanism by modeling the individual components in SolidWorks. We chose to recreate a D-19 Hypro-Pump, which is part of an agricultural spraying system used to apply chemicals to crops. My dad, who uses these pumps at his nursery, provided us with a decommissioned unit to disassemble and model in CAD. The pump has four main sections: two pistons, a diaphragm, and a gear motor. After modeling the entire assembly, we rotated the driving gear to demonstrate the reciprocating motion of the pistons, which generates the high pressure necessary for irrigation. This project significantly enhanced my CAD proficiency and deepened my understanding of mechanical systems.