This page showcases various projects I’ve completed for classes, as interesting tangents of my research, or just fun side projects. Take a look!
Automated Cat Distraction
I’ve recently acquired a second cat, and he has a habit of chasing the first cat because he’s bored. I’m therefore taking the only sensible course of action and building a fully-automated, ROS-integrated platform for cat detection and avoidance. This project is currently in the planning phase, so any recommendations to optimize for feline engagement are welcome.
Quadrotor Navigation through Moving Hoops
During the Advanced Control System Integration course at CMU I was part of a team that autonomously flew quadrotors through thrown hoops. I developed the model predictive controller for the system, implementing an algorithm called SLQ-MPC that solved for a desired trajectory from the current quadrotor state, through the hoop, and to the goal position. This algorithm took around 5 ms to solve, and also returned feedforward control inputs as well as optimal feedback gains. I also helped write the ROS-MATLAB interface so the controller (which ran on an offboard computer) could communicate with the quadrotor. Check out our final report for more information.
Dynamic Quadrupedal Gaits through Trajectory Optimization
As part of my research with the Robomechanics Lab, I’ve developed a trajectory optimization framework to generate feasible gaits for our robots, along with a low level controller to track the resulting trajectories. This framework helps us study different aspects of the robot’s motion, such as how design modifications (such as adding a tail) affects the speed or efficiency of the robot.
During the Robot Design and Experimentation course at CMU I investigated ways to improve the leaping ability of a robot. Inspired by galagos, my team equipped a robot with series elastic actuation (SEA) to store energy for a more powerful jump. To design this system, I created a dynamical simulation of the SEA-equipped robot and ran an optimization to determine the optimal leg lengths and spring stiffnesses to maximize the jumping height. Although we ran into some technical difficulties with the design of the elastic element and were not able to improve the jumping height on the physical robot, the result of the optimization showed the robot could jump 15% higher with the proper leg lengths and stiffnesses.