Hello, I'm

Nishanth
Sundaran

I build safe, intelligent robotic systems that work alongside people. M.Engg. AI Graduate specialising in collaborative robotics, real-time control, and deep learning.

ROS 2 MoveIt 2 ISO/TS 15066 YOLOv8 Python Computer Vision Admittance Control
Nishanth Sundaran

About Me

Master's Thesis Researcher at Technische Hochschule Deggendorf

As my Master's thesis at Technische Hochschule Deggendorf, I designed and implemented a complete human-robot interaction framework on a UR3e collaborative robot, from force control to computer vision to safety compliance.

The system features a hybrid position-admittance controller for real-time force-guided collaboration, an ISO/TS 15066-compliant safety architecture with Speed & Separation Monitoring, Power & Force Limiting, and Hand Guiding modes, and a YOLOv8-based human detection pipeline using an Intel RealSense D435i depth camera in an eye-to-hand configuration.

A 13-state finite state machine orchestrates assistive lift-and-place tasks, combining autonomous grasping with human-guided object placement via real-time force feedback, all integrated in ROS 2 Humble with MoveIt 2, MoveIt Servo, Gazebo, and a Robotiq 2F-140 gripper.

Previously, I applied computer vision and ML to renewable energy monitoring at Energy Future World (85% detection accuracy on aerial imagery), and gained industrial experience at Mühlbauer Group, Amazon, and Power And Instrumentations Ltd.

UR3e collaborative robot workspace
UR3e workspace with Robotiq 2F-140 gripper and Intel RealSense D435i

Experience

Professional journey from power engineering to collaborative robotics

Sep 2025 to Mar 2026

Master's Thesis Researcher

Technische Hochschule Deggendorf (THD), Cham, Germany

  • Developed a real-time hybrid position-admittance controller for safe physical human-robot interaction on a UR3e collaborative robot using ROS 2 and MoveIt 2
  • Designed and implemented an ISO/TS 15066-compliant safety system with three operational modes: Speed & Separation Monitoring, Power & Force Limiting, and Hand Guiding
  • Built a computer vision pipeline with Intel RealSense D435i for YOLOv8-based human detection, hand-eye calibration, and HSV-based object localisation with depth back-projection
  • Created a 13-state FSM for assistive lift-and-place tasks integrating autonomous grasping with human-guided placement via real-time force feedback
ROS 2MoveIt 2PythonOpenCVYOLOv8Intel RealSenseGazebotf2
Dec 2023 to Nov 2024

Machine Learning Intern

Energy Future World, London, United Kingdom (Remote)

  • Applied computer vision to aerial imagery for tracking renewable energy infrastructure growth, achieving 85% detection accuracy
  • Developed image processing algorithms (edge detection, contrast enhancement) using OpenCV
  • Conducted pattern analysis and model training using Scikit-learn, NumPy, and Pandas
PythonOpenCVScikit-learnNumPyPandasJupyter
Aug 2023 to Dec 2023

Working Student

Mühlbauer Group, Roding, Bavaria, Germany

  • Supported automation and production processes in a high-tech manufacturing environment
  • Gained hands-on experience with industrial robotics and production line optimisation
PLCIndustrial Automation
Mar 2022 to Dec 2022

Process Associate

Amazon, Bangalore, India

  • Performed data analysis and auditing to identify process performance trends
  • Contributed to automation and system optimisation initiatives using data-driven forecasting
May 2019 to Dec 2021

Project Engineer

Power And Instrumentations Ltd, Gujarat, India

  • Analysed high-voltage power grid performance data to optimise reliability and identify failure patterns
  • Managed cost tracking, quality control, and resource allocation across multiple project sites

Projects

Academic and personal projects spanning robotics, AI, and computer vision

Bachelor's Thesis

Implementation of MPPT on PV Cell Using Incremental Conductance Method

Modelled a 150W PV module in MATLAB/Simulink, implemented the Incremental Conductance MPPT algorithm with a SEPIC DC-DC converter. Achieved 97%+ MPP tracking accuracy, outperforming Perturb & Observe under varying irradiance.

MATLABSimulinkSimscapePower Electronics
Case Study

Autonomous Mobile Robot with SLAM & Nav2

Four-wheeled mobile robot with a 2D LiDAR, rebuilt from scratch on ROS 2 Humble as a solo portfolio piece. Runs slam_toolbox for online SLAM and a full Nav2 stack (AMCL, NavFn A*, DWB local planner, behaviour-tree navigator) for autonomous goal-to-pose navigation on the saved map. Verified in a cluttered warehouse: 3/3 goals reached, 0 collisions, 0 recoveries on the final tuning pass.

ROS 2 HumbleNav2slam_toolboxGazebo ClassicAMCLDWBURDF/XacroPython Launch
Portfolio Project

Embodied LLM Agent for UR3e Pick-and-Place

A natural-language command becomes a grounded robot plan. A Claude vision model reads the RealSense D435i frame and returns a JSON list of objects with pixel centres; depth + camera intrinsics back-project each one into the base_link frame; a Claude planner then drives an 8-tool loop (describe_scene, pick, place, move_to, open_gripper, close_gripper, check_safety, home) to execute the instruction on MoveIt 2. Built on top of my thesis's UR3e + Robotiq 2F-140 + D435i Gazebo sim, with a read-only safety gate that reuses the thesis F/T and proximity topics. The point is that the high-level reasoning (e.g. "put the red block next to the blue cup" → grasp pose → place pose) is synthesised by the LLM over real tool feedback, not a hand-written state machine.

Claude (Anthropic API)Tool UseVLMROS 2 HumbleMoveIt 2UR3eRobotiq 2F-140RealSense D435iGazeboPython
Portfolio Project

One Brain, Many Bodies: Humanoid Autonomy Stack

Hierarchical humanoid stack in MuJoCo. A local open-source VLM (Qwen2.5-VL-3B, no cloud APIs) plans at ~1 Hz via tool-calling with Set-of-Mark visual grounding, while a compliant whole-body controller executes at ~500 Hz. The same brain drives Unitree G1 and H1 through one tool interface (only a per-robot config file changes); 22-DoF five-finger hands composed onto the H1 at load time via MjSpec. A PPO stance-balance policy trained CPU-only holds the pelvis to 1.4 cm while the arms reach, where the pretrained walking policy falls every time. "Human-like motion" is measurable against Flash & Hogan minimum-jerk criteria: 3 of 4 grasp motions meet every human-reaching benchmark.

PythonMuJoCoQwen2.5-VLPPOTool UseSet-of-MarkAdmittance ControlDifferential IKUnitree G1Unitree H1
Portfolio Project

G1 Motion Imitation: Learning Human Gait from Motion Capture

Side-by-side comparison: LAFAN1 human motion-capture reference on the left (speed 0.49 m/s, stride 0.46 m, cadence 1.07/s) and the trained Unitree G1 policy at cycle 7 on the right (speed 0.49 m/s, stride 0.39 m, cadence 1.52/s, 4.6B training steps), both walking in MuJoCo with overlaid gait metrics

DeepMimic-style motion imitation training the Unitree G1 to track LAFAN1 human mocap, running in JAX and MJX with PPO on a 6 GB laptop GPU at ~30,000 env-steps/s (9x the CPU baseline); 5.8B total training steps across 13 measured cycles. The resulting gait sits within 2 to 7% of the human reference on speed (0.48 vs 0.49 m/s), cadence (1.09 vs 1.07/s), stride (0.43 vs 0.46 m) and pelvis bounce. Found that PD position control reached in 5M steps what the reference torque-control recipe needed 300M for (~60x sample efficiency), and shipped four undocumented framework fixes upstream, including a silent JAX-scalar vs MuJoCo-enum bug that had been blocking every dataset load.

JAXMJXPPODeepMimicLAFAN1 MocapUnitree G1MuJoCoPython
Case Study

Air Quality Index Prediction & Forecasting for Chennai

Seven independent SARIMA models (PM2.5, PM10, NO2, SO2, O3, CO, and overall AQI) trained on the Kaggle Air Quality in India dataset, feeding monthly pollutant forecasts into the Indian CPCB sub-index formula I = ((IHI−ILO)/(BPHI−BPLO))(Cp−BPLO) + ILO. Overall AQI = max sub-index across pollutants, with a colour-coded six-category severity banner and health advice. The original Tkinter windows were rewritten as a single Streamlit web app with a forecast-by-month tab and a live AQI calculator tab (dominant-pollutant readout, CSV export, expandable CPCB breakpoint reference).

PythonSARIMAstatsmodelsStreamlitPandasTime-series forecastingCPCB India standard
Self Study

Object Detection Using YOLO with Audio Alert

Integrated YOLOv8 with Google text-to-speech (gTTS) and a real-time GUI for enhancing accessibility for visually impaired users with audio feedback of detected objects.

YOLOv8gTTSPythonGUI
Self Study

Contour Detection Using Computer Vision

Classical OpenCV pipeline that segments individual tablets inside a blister pack and classifies each by whether its horizontal seam edge is visible. Pipeline: Sobel-based edge exploration → Gaussian blur + adaptive thresholding to get a clean binary mask → Canny edges on the cropped region → cv2.findContours with area filtering to isolate tablets → per-contour horizontal-edge check drives red / green bounding-box classification. Built without any deep learning, the point was to reason about edges, thresholds, and morphology from first principles.

OpenCVPythonSobelCannyAdaptive ThresholdingContour Analysis
Self Study

Point Operations: Brightness, Contrast & Inversion

Implemented the core pixel-wise intensity transforms from first principles: the affine map g(x,y) = α·f(x,y) + β drives darken, lighten, low-contrast, and high-contrast variants; a bitwise NOT gives the photographic negative; and a weighted RGB→luminance projection 0.3R + 0.6G + 0.1B produces grayscale. All seven outputs (original, darken, lighten, invert, low-contrast, high-contrast, grayscale) are rendered side by side. No library-level helpers beyond the numpy clip and the OpenCV colour-space wrappers.

Seven-panel comparison of a sports photograph showing original, darken, lighten, invert, low-contrast, high-contrast, and grayscale variants
OpenCVNumPyPythonPoint OperationsImage Processing
Self Study

Histogram Equalization from Scratch

Reimplemented global histogram equalization without using cv2.equalizeHist: compute the 256-bin intensity histogram, derive the PDF and then the CDF, and use np.interp to remap every pixel through the CDF × 255 lookup. Applied to an under-exposed sunset photograph where most of the intensity mass sits near zero; the equalized output spreads that narrow range across the full 0-255 gamut, pulling foliage texture and cloud structure out of the near-black regions.

Side-by-side comparison of an under-exposed sunset photograph and the same image after manual histogram equalization, showing recovered detail in the sky and foliage
NumPyMatplotlibPythonHistogram EqualizationImage Processing

Technical Skills

Tools and technologies I work with

  Programming & Tools

PythonC/C++GitLinuxVS CodeJupyter

  Robotics & Control

ROS 2MoveIt 2MoveIt ServoAdmittance ControlOMPLPilzSLAMGazeboURDF/Xacrotf2

  AI & Machine Learning

Agentic AITool UseVLMVLALLM Application DevelopmentPyTorchJAXTensorFlowScikit-learnDeep LearningReinforcement Learning (PPO)ARIMASARIMA

  Computer Vision & Sensors

OpenCVYOLOv8Intel RealSense D435iDepth EstimationHSV SegmentationHand-Eye CalibrationPoint Clouds

  Safety & Standards

ISO/TS 15066SSMPFLHand GuidingRisk AssessmentFunctional Safety

  Data & Analysis

NumPyPandasMatplotlibMATLABSimulinkFeature Engineering

Education

Academic background in AI and electrical engineering

Master of Engineering

Artificial Intelligence for Smart Sensors and Actuators

Technische Hochschule Deggendorf (DIT), Cham, Germany • 2022 to 2026

"Human-Robot Interaction with Force Feedback in Collaborative Tasks"

Specialisation: Machine Learning, Deep Learning, Computer Vision, Autonomous Systems, IoT, Robotics

Bachelor of Engineering

Electrical and Electronics Engineering

University of Calicut, Kerala, India

"Implementation of MPPT on PV Cell Using Incremental Conductance Method"

Specialisation: Digital Signal Processing, Digital System Design, Power Electronics, IoT

Certifications

External credentials backing the skill set

Vanderbilt University

AI Agents and Agentic AI with Python & Generative AI

August 2026

Vanderbilt University certificate for AI Agents and Agentic AI with Python and Generative AI, issued to Nishanth Sundaran, August 2026

Skills: Agentic AI, Tool Use, Function Calling, AI Agent Architecture, LLM Application Development, Prompt Engineering, Prompt Patterns, OpenAI API, Retrieval-Augmented Generation (RAG), Python for AI.

IBM

Machine Learning with Python

September 2026

IBM certificate for Machine Learning with Python, issued to Nishanth Sundaran, September 2026

Skills: Supervised Learning, Unsupervised Learning, Classification (Logistic Regression, KNN, SVM, Decision Trees), Regression (Linear, Non-linear), Clustering (k-means, Hierarchical, DBSCAN), Recommender Systems, Model Evaluation (Cross-validation, Precision/Recall/F1), Scikit-learn, Pandas.

Languages

English
Fluent
German
A2
Malayalam
Native
Tamil
Fluent
Hindi
Fluent

Get in Touch

Open to robotics, AI/ML, and automation engineering roles in Germany