Dhruv Parikh

I am a Masters in Robotics Student at University of Pennsylvania, where I am specializing in state estimation and perception. I did my undergrad in Mechanical Engineering from Ahmedabad University, India where I was working in Mechatronics and Controls.

My most recent experience was working at JPL NASA for development of the lander pose estimation algorithm for the Mars Sample Return Mission. I am currently working on Geometrical problems in vision.

I'm always open to engaging conversations and knowledge exchange, so feel free to drop me an email. And just a heads up, if you don't hear back from me within 48 hours, a gentle reminder would be much appreciated!

Email  /  LinkedIn  /  Resume  /  Github

profile photo
Work Experience

My area of interest is in developing state estimation systems.

NASA Jet Propulsion Lab, Pasadena
JPL Visiting Student Research Intern, May 2023 - August 2023

Joined JPL to work on Pose estimation of Lander for the Mars Sample Return Mission. I worked on Sample Recovery Helicopters in surface navigation subsystem, being part of Aerial Mobility Team. Designed the system from camera calibration to Pose estimation in C++. Successfully evaluated robustness tests under different stress conditions.
Additionally provided support for Stereo Visual Odometry algorithm.

Vijay Kumar Lab
Research Assistant, 2022-2023

Implemented end to end behaviour cloning using Deep learning on agile multicopters. Carried out camera pose estimation to stabilize images during high-speed flight and integrated with a Neural Network. Achieved successful autonomous navigation with obstacle avoidance in high-speed flights at speeds up to 15 m/s.

General Aeronautics
Guidance, Navigation and Controls Intern, 2021-2022

Developed Sense and Avoid System (SAA) pipeline for Agricultural UAV where implemented LIDAR point cloud processing, obstacle avoidance and developed mavlink based support interface for lower level control. I was also the main Controls engineer for Indoor drone where successfully brought position accuracy to 5 cm in extreme low light conditions.


These are the list of both my recent university projects and personal projects.

Pose Graph Optimization

• This was a GTSAM learning Project! Formulated a factor graph using ICP based Odometry on Argo AI Driving Dataset.
• Performed incremental Smoothing and Mapping (iSAM) to optimize the odometry using GTSAM.

Operational Space Controller on Biped
Code [Not open sourced yet]

•Developed and implemented an Operational Space Controller (OSC) for a 5-linked planar biped robot, formulating the problem as an instantaneous quadratic program (QP) to optimize actuator inputs and achieve precise tracking of the center of mass, torso angle, and swing foot position for stable walking.
• Leveraged the pydrake interface to construct the QP, with friction constraints, input limits, dynamic and contact constraints for robust biped locomotion.
• Implemented velocity and torso tracking objectives as quadratic cost, resulting in locomotion upto 0.7 m/s within actuator limits.

Semantic Segmentation using Segformer

• Implemented Segformer's B0 architecture from scratch which mainly comprises of Attention Module, MixFFN layer and a MLP decoder.
• Trained on ADE20K dataset with weighted cross entropy loss to counter class imbalance and learning rate scheduler to speed up training.
• Achieved 0.45 mean IOU which is greater than 0.38 reported from official implementation. Implemented the same on CityScape dataset on a single sequence of 600 images.

Depth estimation using Bayesian Update

• Depth estimation using Monocular Vision, by fusing information from multiple images of the scene at different angles.
• Utilized Pose-derived baselines to establish epipolar lines and performed NCC-based block matching for correspondence identification.
• Calculated depth using baselines, followed by integration into the Kalman Equation (only measurement update), resulting in enhanced depth fusion from multiple angled images.

Non Linear Bundle Adjustment

• Applied Non Linear Bundle Adjustment using Horn Schunk Trick on the BAL dataset.
• Used Ceres and g2o for solving the problem.

Fast Trajectory tracking and control of Quadrotor

The project aimed to achieve autonomous flight of a quadrotor in an obstacle map, given start and end coordinates.
• State estimation was performed using Stereo Visual Inertial Odometry with fusion using an Error State Kalman Filter.
• Path planning was implemented using A*, followed by generating a min snap trajectory through Ramer-Douglas-Peucker downsampling. To achieve rapid tracking, a cascaded non-linear geometric controller was implemented for the quadrotor.
• My algorithm achieved top 5 position in leaderboard in the class of size 100 based on speed, accuracy and robustness.

Quaternion estimation using Unscented Kalman Filter

• Implemented a Quaternion based Unscented Kalman Filter(UKF) to track 3D orientation from Gyroscope and Accelerometer data
• Employed an optimization-based approach to process sigma points and estimate the state of the quaternion

Particle Filter based SLAM
Lidar and odometry based SLAM on THOR Humanoid Robot, 2023

• Integrated the inertial orientation and odometry with a 2D LIDAR scan to build the occupancy grid map of the environment while localising the robot using a particle filter

3D Reconstruction using Multi View Stereo
Techniques: Plane Sweep Stereo and Two View Stereo, 2023

• Implementation of two-view stereo and multi-view stereo algorithms for dense 3d reconstruction of a scene.

Camera Pose Estimation using PnP and P3P

• Estimated Camera Pose using PnP/P3P correspondence algorithm (without OpenCV). Backprojected the render mesh object to obtain an AR effect.
• Resolved Pose ambiguity problem by using depth as a criteria.

Vision Based Pick and Place
Fall Intro to Robotics Competition at University of Pennsylvania, 2022
Report / Code

• Detected April tag pose using ROS wrapper and then used an least square optimization approach to refine the estimate.
• A bezier curve strategy was used to plan a path and then a velocity based PD controller was used to move the end effector.

Full Stack Drone Controller from Scratch
Make an autonomous controller from scratch using the cheapest sensors available from Market.
Paper / Video

• Developed a 12 state Kalman Filter that fuses MPU6050, BMP180 and Magnetometer, Neo6M GPS to get a reliable state estimate.
• Developed a gain scheduling based control strategy using adaptive gains based on state estimate.
• Used ESP32 as a flight controller, implemented RTOS to run State Estimator and Controller in different cores.

Robotics Simulator
Lightweight Simulator completely using Python standard library, 2020

• Developed a physics based graphical Simulator for differential drives and quadrotors from scratch in python.
• Implemented Swarm algorithms for pattern formation using graph theory.
• Inbuilt path tracer, data logger and auto pid tuner.

Acrobot Swing Up


Implemented an adaptive control strategy using Energy Shaping to reach the Equilibirum region and then using Linear Quadratic Regulator to stabilize.


I graduated as a Mechanical Engineer from Ahmedabad Univeristy, later joined Penn for Masters in Robotics.

University of Pennsylvania , Philadelphia
Masters in Robotics, 2022-2023

Specialization in Vision and Controls.

Ahmedabad University, India
Bachelors of Technology in Mechanical Engineering, 2017-2021

Awarded Gold Medal and Award of Highest academic Excellence.

Base layout of this webstite: jon barron