Projects

A collection of technical projects spanning robotics, CV, motion planning, and ML.

Long Horizon Task Planning for Quadruped Robot

Sep '23 - Present

Long Horizon Task Planning for Quadruped Robot

We obtained quadruped controller using curriculum-based learning in Isaac Gym. We collected time & energy costs dataset for local motions and trained cost predictor as a multi-head convolutional NN. We demonstrated long horizon task planning with user-defined objective using A* search guided by the cost predictor

RoboticsMLReinforcement Learning
Darkbot image

Sep '22 - Dec '23

Autonomous Quadruped in Unknown Cluttered Terrains

This was my MRSD Capstone Project at CMU with Prof. Sebastian Scherer, AirLab. The MRSD capstone is a three-semester long project with a budget of $5000 from MRSD + funding from sponsors. At the end of the project, our robot was able to explore unknown and cluttered disaster sites to search for trapped humans.

RoboticsMotion PlanningSLAM
Benchmarking Generalists and Specialists in Robot Agility Learning

Sep '23 - Dec '23

Breadth vs Depth - Benchmarking Generalists and Specialists in Robot Agility Learning

We trained specialist skills like jumping, climbing, and narrow beam walking. I implemented an RL+PPO-based Selector Policy to select the most effective specialist skill in varying environmental conditions. We compared its performance against a generalist policy trained on a combination of all skills.

RoboticsMLReinforcement Learning
2D Footstep Planning

Jan '23 - May '23

2D Footstep Planning

Implementation of footstep planner for a biped robot on discontinuous 2D environments

RoboticsMotion Planning
Automated Graph Reader

Aug '20 - Nov '20

Automated Graph Reader

Deployed live on Heroku server, the web-app accepts queries for y-values in simple input graphs. The solution is based on image processing, OCR, and a lot of algorithm design

CVSoftware
Autonomous Drone Exploration

Mar '21

Autonomous Drone Exploration

Quadrotor simulation capable of navigating in a complex static environment by avoiding on-field obstacle-collision and reaching the target destination after its correct detection.

RoboticsMotion Planning
Ball Tracking using OpenCV and ROS

Oct '20

Ball Tracking using OpenCV and ROS

Python implementation of Ball tracking using OpenCV and CvBridge in ROS1

CVRoboticsROS
Conway's Game of Life

Apr '21

Conway's Game of Life

Terminal based version of the hacker's favorite game. The source code is accompanied with unittesting. Developed as part of JdeRobot's GSoC Python Challenge

SoftwarePython
Dynamic-free 3D Occupancy Maps

Jun '20 - Jul '21

Mapping Regions of Dynamic Activity & Building Dynamic-free 3D Occupancy Maps

Bachelor's Thesis at IIT Bombay under Prof. Vachhani. Designed and implemented a novel clustering algorithm in ROS OctoMap to reject nodes with high dynamic activity

RoboticsSLAMCV
F1/10th Autonomous Grand Prix

Oct '20

F1/10th — Autonomous Grand Prix | IROS '20, Las Vegas

Used Bernstein polynomial based local trajectory planner. Optimized global reference path using an OSQP solver. Implemented obstacle detection.

RoboticsMotion Planning
Gyro Brick Breaker

Jul '18

Gyro Brick Breaker

Led 5-membered team to develop hand-gesture controlled brick-breaking game coded in Processing IDE. One among 3 projects showcased at Undergraduate Freshmen Technical Orientation 2018

Software
Hilti SLAM Challenge

Sep '21

Hilti SLAM Challenge | IROS '21, Prague

Explored Visual Inertial Odometry. Understood and calibrated Kannala-brandt camera model. Used VINS-Fusion. Calibrated IMU noise parameters using imu_utils on provided bag files

RoboticsSLAMCV
Image Quilting

Sep '19 - Oct '19

Image Quilting

This achieves Texture Transfer using simple memoization-based Image Quilting technique (where people are nowadays using deep learning techniques). The Texture Synthesis implementation is useful for creating background in video games with cheap computation

CVML
International Micromouse Challenge

Dec '20

International Micromouse Challenge

Reach from the corner square to the center of an unknown maze in the shortest time

RoboticsMotion Planning
Jenga Playing Manipulator Arm

Jan '23 - May '23

Jenga Playing Manipulator Arm

Designed probe and grasp pipeline for the Franka Emika Panda robot to build Jenga tower

RoboticsMotion Planning
Labyrinth CMake app

Apr '21

Labyrinth CMake app

CMakeLists based app to find the longest route in a text map. Developed as part of JdeRobot's GSoC C++ Challenge

SoftwareC++
Multi-robot Capture of Non-adversarial Target

Mar '21 - Apr '21

Multi-robot Capture of Non-adversarial Target

Capture of a moving target using Mixed Integer Linear Programming. Implementation from scratch of 'MILP Models for Multi-Robot Non-Adversarial Search' paper

RoboticsMotion PlanningML
Optimization of vehicle suspension

Jan '21 - Apr '21

Optimization of vehicle suspension

Comparison of standard library functions and our own implementations of genetic algorithm, simulated annealing, and particle swarm optimization for the vehicle suspension optimization

MLOptimization
Panoramic Mosaicing

Mar '21

Panoramic Mosaicing

Uses ORB feature extractor, Brute Force Matcher with Hamming Norm, and RANSAC algorithm to mosaic any number of input images

CV
Quadruped Robot Challenge at ICRA 2023

May '23 - Jun '23

Quadruped Robot Challenge | ICRA '23, London

Deployed controller to Unitree Go1 & navigated challenge course using Beyond Visual Line-of-Sight teleoperation. Recovered from falls using pre-defined maneuvers and achieved the third position representing Carnegie Mellon.

RoboticsMotion Planning
Quadruped Robot

Dec '19 - May '21

Quadruped Robot

Founding member and Team Lead of an institute funded team to solve the urban search and rescue challenge -- RoboCup Rescue League. Simulated gait trajectory, and implemented sensor fusion between Intel D435 and IMU

RoboticsMotion Planning
Robot Vision Scene Understanding Challenge

Mar '21 - Apr '21

Robot Vision Scene Understanding Challenge | CVPR '21

Implemented multiple approaches using Votenet, GroupFree3D, Votenet Ensemble. Trained Votenet model on subset of sunrgbd dataset. Trained YOLOv4 on subset of MS COCO dataset, and executed it in parallel to achieve higher confidence through a consensus mechanism

CVML
ROS2 RADI warehouse exercise

Jun '21 - Aug '21

ROS2 RADI and single-robot warehouse exercise

Google Summer of Code project at JdeRobot. Built RADI 4 based on ROS2 Foxy, implemented BT (Behavior Tree) Navigator, and extended warehouse pick-and-delivery exercise to ROS2 web-based template

RoboticsROS2Software
Ricart-Agrawala Algorithm

Aug '19 - Nov '19

Ricart-Agrawala Algorithm

The Ricart-Agrawala algorithm provides an optimal solution to the problem of mutually exclusive access to a critical section in computer networks, whose nodes communicate only by messages and do not share memory

SoftwareDistributed Systems
Shortest Path in Maze using Reinforcement Learning

Oct '20 - Nov '20

Shortest Path in Maze using Reinforcement Learning

Modelled 2D maze as an MDP with appropriate states, actions, rewards & transition probabilities. Implemented Howard's Policy Iteration, Value Iteration and Linear Programming to find best policy that minimizes number of steps between 2 given points while following constraints

MLReinforcement Learning
Snippet-to-text Extraction

Aug '20 - Nov '20

Snippet-to-text Extraction

Deployed live on Heroku server, the web-app allows you to read image snippets as continuous text

CVSoftware
Sudoku Solver Using Block Printing

Apr '18 - May '18

Sudoku Solver Using Block Printing

Implemented a Raspian-based automated Machine to physically fill into any given unsolved Sudoku grid using computer-vision

CVRoboticsSoftware
Two-wheeled Self-Balancing Bot

Aug '20 - Nov '20

Two-wheeled Self-Balancing Bot

Demonstrates the inverted pendulum problem using a two-wheeled bot and input from gyroscope+accelerometer module

RoboticsControls
Wifi De-auth Attacker

Mar '19

Wifi De-auth Attacker

Programmed ESP8266 (Wi-Fi microchip) to spoof an access point and send de-authentication frames, exploiting vulnerability in IEEE 802.11 standards of the absence of encryption for management frames

SoftwareSecurity