Key Projects
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
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.
» Demo
» Blog
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.
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.
» Demo
Jan '23 - May '23
2D Footstep Planning
—
Implementation of footstep planner for a biped robot on discontinuous 2D environments
» Repo
» Demo
» Blog
Jan '23 - May '23
Jenga Playing Manipulator Arm
—
Designed probe and grasp pipeline for the Franka Emika Panda robot to build Jenga tower
» Demo
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
» Repo
» Demo
» Blog
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
» Repo
» Demo
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
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
» Blog
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
» Repo
» Blog
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.
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
» Demo
» Blog
Mar '21
Autonomous Drone Exploration
—
(Team leader in Inter IIT Tech Meet ‘21 ) 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.
» Repo
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
» Repo
» Blog
Dec '20
International Micromouse Challenge
—
Reach from the corner square to the center of an unknown maze in the shortest time
» Repo
» Demo
» Blog
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
» Repo
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
» Repo
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
» Repo
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
» Repo
Mar '21
Panoramic Mosaicing
—
Uses ORB feature extractor, Brute Force Matcher with Hamming Norm, and RANSAC algorithm to mosaic any number of input images
» Repo
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
» Repo
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
» Repo
» Demo
Oct '20
Ball Tracking using OpenCV and ROS
—
Python implementation of Ball tracking using OpenCV and CvBridge in ROS1
» Repo
» Demo
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
» Repo
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
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
» Demo
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
» Repo
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
» Repo