Projects
Overview of my academic and personal projects.
Autonomous Cave Exploration Drone (GNSS-Denied)
01 show project details
Frontier-based autonomous mapping of a GNSS-denied cave with a PX4/Gazebo quadrotor. Replaced GPS with external-vision EKF2 fusion, bridging RTAB-Map RGB-D odometry into PX4 and adding reactive lidar avoidance and a return-home behavior.
- Built a PX4/Gazebo cave drone with RGB-D camera, 2D lidar, IMU, and a front spotlight.
- Configured EKF2 for GNSS-denied flight using external vision for position and heading.
- Bridged RTAB-Map odometry into PX4 VehicleOdometry with ENU/FLU to NED/FRD frame handling.
- Wrote a ROS 2 autonomy node for takeoff, cave entry, frontier exploration, local planning, avoidance, and return.
case-study github demo (todo)
Quadruped RL with 2-DoF Spine
02 show project details
Modified a Unitree Go2 with a 2-joint spine and trained an RL policy for tight-corner navigation in narrow hallways. Designed observation/action spaces using IMU, joint states, and relative obstacle-goal pose. Training done in Isaac Sim with iterative dynamics constraints.
- Trained a locomotion policy for a Unitree Go2 quadruped under challenging terrain conditions.
- Designed observation and action spaces using IMU, joint states, and relative obstacle-goal pose.
- Iteratively tuned rewards and simulation constraints for robust tight-corner and hallway navigation.
case-study (on hold) github demo (todo)
Nonlinear Peer-Aware Cost Estimation
03 show project details
Mobile robot navigation using a nonlinear cost function with motion-capture calibration, EKF filtering, and model predictive control.
IJRR manuscript submission is currently in progress for this project.
- Programmed a mobile robot to move based on a nonlinear peer-aware cost function.
- Calibrated motion capture to estimate real-time positions of rigid bodies.
- Developed ROS nodes in C++ for real-time control and feedback collection.
- Used Extended Kalman Filter to reduce motion-capture noise.
- Applied Model Predictive Control for trajectory planning and robot motion control.
- Integrated Bayesian intent inference for belief-aware decision making.
case-study (on hold) github demo (todo)
Natural Language Controlled Pick and Place Robot
04 show project details
Built a robot system that maps user language commands into pick/place actions using ROS2 orchestration and 3D perception.
- Programmed a robot to pick and place colored and sized blocks based on user instructions.
- Created a ROS2 orchestrator node to delegate tasks using ROS2 actions.
- Implemented stereo perception for object size, color, and depth estimation.
- Added retry and verification loops for failed manipulations.
LQR Control for Motor Position Control
05 show project details
Built and evaluated LQR-based controllers for motor position control and disturbance-robust cart-pole stabilization.
- Built an LQR position controller in SIMULINK and ported it to Arduino.
- Implemented state-feedback control with IIR velocity filtering to reject encoder noise.
- Developed and analyzed an LQR cart-pole controller in ROS2 and Gazebo under stochastic earthquake disturbances, tuning Q and R matrices to balance stability and control effort.
- Evaluated system performance using pole angle deviation, cart displacement, and control effort metrics.
case-study (on hold) github (todo) demo (todo)
Maze Solving Robot
06 show project details
Vision-based maze solving with VLM supervision and A* search for pathfinding.
- Used OpenCLIP VLM as a supervisor agent to trigger the maze-solving pipeline.
- Leveraged YOLO and CV2 for computer vision to isolate the maze region.
- Implemented A* search to find maze solutions.
- Used multithreading to separate motion control and maze detection modules.
github (todo) demo
Design and Control of Throat Swab Sampling Robot
07 show project details
6-DOF robotic system from CAD and dynamic analysis to inverse kinematics and ROS-based network control. Placed 3rd out of 25 teams.
- Achieved 3rd position in the 2022 industrial open house out of 25 competing groups.
- Designed the robot using SOLIDWORKS and MSC Adams for dynamic analysis.
- Simulated inverse kinematic equations for joint-angle calculation in MATLAB.
- Developed ROS nodes for controlling the robot over the network.
- Tuned control parameters and sensors for real-robot operation.
github demo (todo)