Varun Cumbamangalam
ProjectsAboutContact

Varun Cumbamangalam.

Senior IoT and Edge AI Engineer, AI Product Manager at OraLens Healthcare

ProjectsAboutContactPrivacy

© 2026 Varun Cumbamangalam. Built with Next.js and Tailwind CSS.

# Visual servoing control loop - simplified import cv2 import numpy as np def compute_visual_error(frame, target_shape): gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) _, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) if not contours: return None, None # Find the contour closest to target shape target = max(contours, key=cv2.contourArea) M = cv2.moments(target) cx = int(M['m10'] / M['m00']) cy = int(M['m01'] / M['m00']) frame_cx, frame_cy = frame.shape[1] // 2, frame.shape[0] // 2 error_x = cx - frame_cx # pixels → PID input error_y = cy - frame_cy return error_x, error_y def pid_update(error, prev_error, integral, Kp=0.8, Ki=0.01, Kd=0.3, dt=0.033): integral += error * dt derivative = (error - prev_error) / dt return Kp * error + Ki * integral + Kd * derivative, integral
All Projects
ResearchHardwareAI/ML

Vision-Based Autonomous Quadrotor

Vision-guided autonomous flight and precision perching for agricultural monitoring.

Vision-Based Autonomous Quadrotor main screen
100%

Autonomous Perching

Visual Servo

Control Mode

University of Utah

MS Thesis

Tech Stack

OpenCVPID ControlROSPythonC++Visual ServoingMATLAB/Simulink

The problem

Drones can monitor crops from above, but they can't see through a dense vineyard canopy - and GPS doesn't work reliably inside one. A drone that could land itself on a branch and observe from inside the canopy would be far more useful, but landing on a moving branch, using only a camera with no GPS signal, had never been done at this scale.

The challenge

Commercial drones at the time required GPS for stable flight, making them unusable in dense vineyard canopies where satellite signal was occluded. The system needed to autonomously locate a branch-like structure, align itself, and perch using only camera input - with bird-leg mechanisms attached to the frame adding nonlinear mass distribution and making the dynamics significantly harder to stabilize.

Architecture & System Design

Camera-based visual control loop: drone sees target on ground, computes positioning error, adjusts flight path using feedback control. Perching mechanism attached to frame changes dynamics, requiring stability analysis and adaptive controller gains.

Full system schematic available upon request

The quadrotor used a downward-facing camera feeding OpenCV-based feature detection to compute a visual error signal. A visual servoing loop drove the PID controllers for x/y positioning and yaw alignment. The nonlinear dynamics introduced by the bird-leg perching structures required a Lyapunov-based stability analysis and controller gain-scheduling. MATLAB/Simulink was used for initial simulation; the validated controllers were then ported to the onboard flight controller via ROS.

Results

Successfully demonstrated autonomous perching on simulated vineyard branch structures in lab conditions. The visual servoing controller achieved stable hover within 5 cm of the target using only camera feedback, with the nonlinear perching-leg dynamics compensated through gain scheduling. The work contributed to understanding of vision-only navigation in GPS-denied agricultural environments.

Gallery & Demos

Lab Test Environment

Lab Test Environment

Experimental setup showing the quadrotor approaching and perching on a rod-like target structure.

Flight Log Analysis

Flight Log Analysis

Time-series data showing position error and control actuation during autonomous approach and perching maneuver.

Click any image or video to expand · ← → keys navigate

University of Utah

More from University of Utah

Multi-Arm Coordination - 2-DOF QUANSER

Researcher

Dual-arm robotic manipulation system using 2-DOF QUANSER robots with a master-slave architecture - one arm controlling position, the other controlling force - to collaboratively manipulate objects with precision.

MATLAB/SimulinkQUARCImpedance Control

Adaptive Backstepping - Indoor Micro-Quadrotor

Researcher

Nonlinear controller design for an indoor micro-quadrotor with a suspended pendulum mass - a highly unstable configuration. Adaptive backstepping outperformed classical PID in robustness tests across multiple flight regimes.

MATLAB/SimulinkBackstepping ControlLyapunov Analysis

Sensor-Based SLAM Navigation - iRobot Create

Researcher

Autonomous mapping and navigation system on an iRobot Create platform using IR rangefinders and servo-mounted sensors for 360° SLAM - with RRT path planning to navigate complex maze environments.

MATLABiRobot CreateRRT Path Planning

PUMA 6-DOF Robot Arm - Forward & Inverse Kinematics

Researcher

Forward and inverse kinematics solver for a 6-DOF PUMA 762 robot arm, using Denavit-Hartenberg parameters and an interactive 3D MATLAB GUI with joint sliders, a motion trail, and collision detection.

MATLABDenavit-HartenbergRobotics Toolbox

Sampling-Based & Graph-Search Motion Planning

Researcher

MATLAB implementations of four canonical path-planning algorithms - Dijkstra, A*, PRM, and RRT - applied to a differential-drive robot navigating bitmap maps in configuration space, with real hardware execution on an iRobot Create.

MATLABRRTPRM

Monocular Depth Estimation for UAV Perch Landing

Researcher

C++ and OpenCV vision system that estimates a landing perch's 3D position and orientation from one monocular camera. It uses image moments, covariance eigendecomposition, and focal-length triangulation for closed-loop quadrotor control.

C++OpenCVHSV Segmentation

RC Fixed-Wing Glider - Servo Actuation & Aerodynamics

Researcher

Fixed-wing RC glider with two servos for roll and pitch, a brushless DC motor, and an ESC for forward thrust. Flight-tested outdoors.

Servo ControlBrushless DC MotorESC

Interested in this work?

I can walk through the architecture and code during an interview.

Get in Touch All Projects