research & projects
Bridging Hamilton-Jacobi Safety Analysis and Reinforcement Learning
This paper proposes a new Bellman Backup for reinforcement learning that would allow Hamilton-Jacobi Reachability safety analysis to be used in higher-dimensional control problems that were previously intractable.
In this project we made a TurtleBot intercept a rolling ball using a depth sensor to detect the ball location. I worked on perception, prediction, planning, control, and integration on the hardware on this project.
Swing Up Inverted Pendulum
In this lab we built a controller to swing up an inverted pendulum from the downwards position. We used a hybrid controller that uses a bang-bang energy maximization technique to swing the pendulum up. Once the pendulum is up the controller switches to LQR using a linearized model of the dynamics.
Steel Ball Levitation
In this lab we levitated a steel ball with an electromagnet. The LED shines light into a sensor that is obscured by the ball. We did system ID to determine the linearized relationship between the light and height of the ball and between the current and EM force on the ball. Then we designed a lead compensator and implemented it in an analog circuit to control the current through the electromagnet based on the voltage from the light sensor.
Neural Net From Scratch
I'm a strong believer in learning by doing and I wanted to learn how neural networks work. During the winter break before I applied to the research lab I work in, I built a neural net from scratch for handwriting recognition. I definitely learned a lot along the way and thinking about the task in terms of optimization problems was really heplful. It seems like optimization comes up everywhere.
Functional Keyboard From Scratch
In high school I was very interested in circuits so I decided to build my own keyboard from scratch. I used a free trial of AutoCAD to make a schematic for a plate to hold the switches, cut it out of steel at a local university metal shop for free, wired the switches together into a matrix, learned to solder, programmed the microcontroller in C and mounted the board on a piece of wood. When I first plugged it in and it worked, I was so excited. It was the first time I had built something start to finish outside of a class.
NP Hard Constraint Solver
The final project for the algorithms class I took was to build a solver for an NP-hard constraint satisfaction problem. The solver I built with 2 friends solved all the inputs given and placed 24th out of a >700 person class with a max group size of 3.
When I tutored 4 students a week one-on-one for the Intro to Teaching Computer Science course my sophomore year I made hand-written notes and examples for each student depending on what they had asked for help with. I really enjoyed the process because it forced me to think of multiple ways to explain every topic and improved my communication skills. I started to digitize my handwritten notes but I haven't finished them all yet. All I have done now is trees but you can have a look at them.