Fun Fact #2: I created a series of MatLab functions to solve convention problems significantly faster and sent it to everyone in my Heat Transfer class (with instructor consent). It was so much faster because it automatically did all of the table lookups along with the iterative interpolation. Since this work previously had to be done mostly by hand, my functions made a lot of people happy.

Self-driving Car Simulation

I programmed the heading and velocity controllers in MATLAB for a virtual self-driving car to finish an obstacle-ridden track. I used a Stanley controller to control the heading and a simple proportional controller to control the velocity. In addition, as the heading rate increased, I reduced the forward velocity. For debugging purposes, I created a simulation of the track and car as shown in the video on the right. Our team's car took 3rd place out of 35 teams in a race to see whose car could finish first without hitting any obstacles or leaving the track. A link to our code can be found here.


5-DOF Robot Arm Block Sorting

As part of a team competition, I programmed a 5-DOF robot in Python to sort blocks by size as shown in the video. To get here, I calibrated the camera to find a camera-to-world transformation (extrinsic matrix) and derived the inverse kinematics for the arm to determine joint angles for a desired end-effector position. Additionally, our team used OpenCV to detect blocks using a combination of depth and color information from an overhead camera. An in-depth description of our project can be found here .


Live Tuning Potential Field Controller

In one of my programming courses, I used C to code a GUI for the Linux terminal (technically Windows Subsystem for Linux) in order to quickly test how different parameters impacted the performance of a simulation. The simulation shows a chaser robot (green triangle) chasing the runner robot (red triangle). The runner robot isn't trying to escape, but just moves randomly.


Hydraulic-Electric Robotic Arm

I designed and constructed a robot arm using servos which actuate water-filled syringes. The design is completely unique--I created the entire model using NX, and then used a combination of 3D printing and laser cutting to create the parts. The robot can rotate 360 degrees and the claw is actuated using two gears in a rack and pinion setup.

Car Seat Child Detection to Prevent Heatstroke

Using a variety of sensors (temperature, capacitive, force, accelerometer), I created an IoT device to detect if a baby has been left in a hot (or cold) car. Whenever the temperature sensor and any other sensor is triggered, it sends a notification to the parents via email or text. Since about 39 kids in the U.S. die per year from being left in a hot car, I hope to use today's technologies to lower that number. For a more detailed description of my process click here

Air-Powered Single Stroke Mini Engine

Using a variety of manufacturing processes, I created a mini engine made from brass, steel, and aluminum. The flywheel was made using sand casting. I made the crank wheel using powder metallurgy. I machined the rest of the parts using a lathe, mill, and drill press. Finally, I sand-blasted the engine to give it a finishing touch. It runs on compressed air with no issues for at least 2 minutes (that's as long as I tested it for)


Autonomous Robot Collects Ping Pong Balls

I was on a competition team tasked with designing a robot to collect, sort, and distribute different colored ping pong balls to their designated locations. We built the robot from the ground up, programming the microcontroller directly using C and creating our own PCB in Eagle. The robot made decisions based on a combination of sensors, including IR sensors, bumper switches, and photodiodes. Overall, our team took 6th place out of 30 different teams.

As far as my specific responsibilities on the project, I made the base of the robot as well as the lifting mechanism. Also, I wrote up the scoring algorithm for the robot so the designated software guy on our team could more easily implement it in the code. As a finishing touch, I also made the video shown on the right to document our process (WARNING: Failures and fun sound effects included đŸ˜‰).

Team Mcbot - Robot Presentation.mp4

Drag Measurement Device

I was part of a team to create a drag measurement device that could effectively measure the coefficient of drag when compared with an off-the-shelf measurement system. Specifically, I performed the wind tunnel testing, strain gauge calibration using a full Wheatstone Bridge, designed and 3D printed the application shaft, and performed an uncertainty analysis by hand and in MatLab.