Over four labs, I built and demonstrated a suite of optimal‑control and trajectory‑optimization algorithms in Julia with Ipopt, starting from quadratic‐program formulations and augmented Lagrangian solvers for constrained dynamics and advancing through iLQR, convex MPC, and direct‑collocation swing‑up. I then applied these methods to underactuated systems—quadrotors, bicycle models, and hybrid biped walkers—showcasing convergence, constraint handling, and real‑time performance in a cohesive codebase.
I formulated a Lagrangian quadratic program to simulate a brick under gravity with non‑penetration constraints. I applied an augmented Lagrangian solver that iteratively updated dual variables and used Newton’s method to satisfy Karush–Kuhn–Tucker conditions, observing convergence to a physically valid trajectory.
I designed and implemented a convex model‑predictive control scheme for a rendezvous‑docking task. I set up a receding‑horizon optimizer that recomputed feasible state and input trajectories in real time, respecting linear constraints on position and control effort as the target moved.
I applied Ipopt to perform direct collocation for an inverted‑pendulum swing‑up. I discretized the dynamics across mesh points, enforced equality constraints on the equations of motion, and solved the resulting nonlinear program to generate an energy‑efficient trajectory from the downward to upright equilibrium.
I implemented iterative LQR on a quadrotor platform. By linearizing the nonlinear dynamics around the current trajectory and performing backward and forward passes, I refined both feedforward controls and feedback gains until the simulated vehicle followed the 3D reference path with minimal deviation.
I formulated a constrained NLP to reorient a quadrotor while avoiding obstacles. I encoded safety‑distance inequalities around no‑fly zones and used Ipopt to compute a collision‑free attitude maneuver that respected both dynamic feasibility and distance constraints.
I employed iterative learning control on a nonlinear bicycle model performing repeated laps. After each lap, I updated the feedforward steering profile based on previous tracking errors, which steadily reduced lateral deviation over successive iterations.
I tackled hybrid trajectory optimization for a bipedal walker by modeling distinct stance and flight dynamics. I formulated a mixed‑mode nonlinear program and solved it with Ipopt to produce a smooth, dynamically feasible walking gait that transitioned cleanly between contact phases.