- Extended a convex MPC locomotion stack for the Unitree Go2 quadruped in MuJoCo with a custom whole-body contact-force controller.
- Formulated a real-time QP over joint torques and contact forces using OSQP and Pinocchio, enforcing rigid-body dynamics, friction pyramid constraints, and torque limits, cutting friction-cone violations from 92.5% to 0% on low-friction surfaces while solving in 1.3 ms against a 5 ms real-time budget.
- Extended the controller with an event-triggered residual PPO correction, trained via imitation learning from the MPC controller's own reference trajectories, activating only on detected disturbance to cut peak roll by 22-25% under lateral pushes with under 1.5% compute overhead and zero regression to nominal walking.
- Compared POMCP (online POMDP planning) against recurrent PPO and A2C with LSTM across 5 MiniGrid environments of increasing complexity.
- Recurrent PPO solved all 5 environments including a 6-room layout while POMCP degraded on larger tasks due to exponential belief space growth.
- Identified LSTM memory, exploration bonuses, and correct action-space design as jointly necessary for success in multi-room POMDPs.
- Built an offline temporal calibration pipeline for camera-LiDAR time synchronization on the Hunter robot, as part of my EECE7150 Autonomous Field Robotics course project at Northeastern University.
- Constructed a cross-modal alignment metric using projected LiDAR points scored against Canny edge distance transforms, then estimated the inter-sensor time offset via Powell optimization and dense grid search, recovering a consistent ~73 ms offset.
- Extended to joint 7-DOF optimization over temporal offset and extrinsic parameters using IMU pre-integration for motion compensation, and validated alignment using LiDAR-to-image projection overlays.
- Built a complete incremental Structure-from-Motion pipeline from scratch to recover sparse 3D structure and camera poses from 24 images of a Buddha statue, as part of my EECE7150 Autonomous Field Robotics course project at Northeastern University.
- Implemented SIFT feature extraction, RANSAC-based Essential matrix estimation, and cheirality-based pose recovery, then triangulated points and extended the map incrementally via PnP.
- Applied global bundle adjustment using GTSAM with Huber robust loss, reducing mean reprojection error from 1.28 px to 0.55 px, a 57% improvement.
- Reimplemented a simplified, CPU-only version of 3D-BBS (Branch-and-Bound Scan Matching, ICRA 2024) for training-free global LiDAR localization, as part of my EECE5550 Mobile Robotics course project at Northeastern University.
- Built a voxel map using a spatial hash table, defined a 4D search space (x, y, z, yaw), and implemented hierarchical Branch-and-Bound search with a max-priority queue for candidate pruning.
- Evaluated on KITTI Sequence 00, achieving under 5 m ATE and under 1-degree AOE across perturbed and fake initializations.
- Designed and simulated a longitudinal cruise control system for a Toyota Camry XLE using MATLAB and Simulink, as part of our ME5659 Control Systems course project at Northeastern University.
- Modeled vehicle dynamics including aerodynamic drag, rolling resistance, and drivetrain forces from real-world specifications.
- Designed and compared PID, LQR, and lead-lag controllers, achieving 1.59% overshoot with PID while identifying LQR's steady-state error and lead-lag's degraded performance under nonlinear dynamics, motivating optimization-based control (NMPC) as the natural next step for handling plant nonlinearities at higher speeds.
- Collected GPS and IMU data using the NUANCE autonomous car provided by Northeastern University to perform automotive dead reckoning.
- Developed custom ROS 2 message types and drivers for the VN-100 IMU and GPS, and performed magnetometer hard-iron and soft-iron calibration via SVD-based ellipse fitting.
- Fused gyroscope-integrated yaw with corrected magnetometer yaw via a Butterworth complementary filter, and estimated forward velocity via zero-velocity-update-corrected accelerometer integration to reconstruct the full vehicle trajectory, validated against GPS UTM ground truth.
- Collected a real-world urban LiDAR-inertial dataset aboard the NUANCE autonomous car, driving a loop through the streets of Boston near Northeastern's EXP Building.
- Attempted to run LIO-SAM on the collected data; encountered a blocking challenge, as LIO-SAM requires an external 9-DOF IMU with time-synchronized timestamps, which could not be resolved using the LiDAR's internal 6-DOF IMU.
- Successfully ran FAST-LIO (tightly-coupled iEKF-based LiDAR-inertial odometry) on the custom dataset, then deployed FAST-LIO-LC, an open-source loop-closure extension, which substantially reduced trajectory drift and improved global consistency versus the baseline.
- Programmed a PincherX100 4-DOF robot arm in MATLAB to autonomously pick and place a cylindrical payload using analytical kinematics.
- Derived forward kinematics analytically using DH parameters, and solved inverse kinematics numerically via iterative Jacobian methods for arbitrary end-effector poses.
- Designed a joint-space trajectory planner using linear interpolation for smooth, singularity-avoiding motion, with a collision-avoidance constraint routing the arm around a cylindrical obstacle in the workspace.
- Designed and simulated a two-wheeled dairy delivery robot in CoppeliaSim (CAD in Fusion 360), equipped with a custom 4-DOF arm, navigating an arena with slopes, speed breakers, sharp turns, and curved paths.
- Performed complete mathematical modeling in GNU Octave using Euler-Lagrange dynamics, deriving a linearized state-space model and designing an LQR controller to stabilize the two-wheeled platform.
- Implemented path following via waypoint interpolation and FK/IK for the 4-DOF arm, with custom Lua logic handling dynamic pickup and dropoff commands issued at runtime; placed 3rd out of 242 teams.
- Designed and simulated a two-wheeled self-balancing and line-following robot in Gazebo using ROS 2, modeling the robot CAD in SolidWorks and exporting it as a URDF.
- Implemented and manually tuned PID controllers for self-balancing (inner loop) and line-following (outer loop) independently, then integrated both into a combined controller.
- Validated the full combined behavior in Gazebo/RViz simulation.
- Investigated post-training quantization strategies to deploy monocular depth estimation models (MirrorNet, GDNet) on the OAK-D embedded hardware platform.
- Applied FP32-to-FP16 quantization, achieving a 69% reduction in model memory footprint and a 50% increase in inference throughput, enabling real-time depth estimation on the OAK-D.
- Extended the quantization pipeline to INT8 precision, systematically analyzing the accuracy-latency trade-off to characterize the limits of aggressive quantization on resource-constrained hardware.
Implemented an obstacle avoidance algorithm on a differential drive robot and simulated it using ROS Noetic and Gazebo.
Implemented the Rapidly Exploring Random Trees (RRT) Algorithm from scratch using Object-Oriented Programming (OOPs) in Python. Created a simulation to visualize the working of the algorithm using Matplotlib. Made some of the parameters dynamic, such as having random start and goal positions each time, and taking the number of obstacles as input from the user within a specific range. Also, devised some parameters, such as the number of iterations required, the number of final waypoints needed, and the total distance traversed, to evaluate the performance of the algorithm.
Contributed to enhancing the existing simulations in this repository as well as creating the new self-balancing task. These CoppeliaSim simulations are used as assignments to teach first-year students various concepts like Proportional Integral Derivative (PID) controller tuning, line-following, self-balancing, and maze-solving, as a part of the WallE workshop conducted by the members of the Society Of Robotics And Automation (SRA), VJTI.