Skip to content
View GBR-RL's full-sized avatar
🤘
🤘

Highlights

  • Pro

Block or report GBR-RL

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
GBR-RL/README.md

Title block of a technical drawing: Rohiith Gettala Balachandar, computer vision, machine learning and robotics software for industrial inspection. Mechanical engineer turned robotics; M.Sc. Robotic Systems, RWTH Aachen; English C1, German B2; based in Germany.

I spent three years designing industrial machines (clamping units, FEM studies, series release) before I moved to robotics at RWTH Aachen. Now I build the software that lets cameras and robots judge parts.

Right now: my master's thesis at TRUMPF, "Evaluating the realism of synthetic training data for vision-based dimensional inspection of sheet metal parts". I generate training images by rendering instead of photographing, train inspection models on them, and work out how realistic the renderings need to be for the models to hold up on real cameras.

The machine side taught me three things I still work by. A tolerance is a promise, so every result comes with the baseline it beats. The test has to look like the field, so I split data by time, by project or by part family. And the hardware is part of the specification, so every project reports its latency and memory on the machine it was measured on.

Projects

Each one is built the way it would ship (an API, containers, CI, a pipeline you can rerun) and measured against the simple solution it has to beat. The numbers come from the runs in each repository.

project what I built result the decision it led to
vlm-inspect Inspection service comparing an open vision-language model with a trained YOLO detector: FastAPI, PostgreSQL + pgvector, MLflow, Kubernetes YOLO: 0.95 AUROC at 0.07 s per part. Qwen3-VL: 0.88 with no defect labels at all the VLM triages new defect types while labels are collected; the detector runs inline
takt-vision C++20 inference runtime: lock-free stages, ONNX Runtime, ByteTrack, no allocations per frame p99 latency of 74 ms with a camera faster than the model, against 4 s for a plain queue keep the newest frame and drop the rest: bounded latency matters more than raw speed
edgeproof Deployment of YOLO defect detectors: INT8 and BF16 on ONNX Runtime and OpenVINO, TensorRT with QAT, x86 and ARM64, a C++ runner, a CI performance gate 5.5× faster than PyTorch on a Xeon CPU (31 ms) at the exported model's mAP50; 1.2 ms per image with TensorRT FP16 on an H100 at full accuracy quantize the network but decode the boxes in float: INT8 then works on every runtime
posegrasp 6-DoF pose estimation to grasp planning, ROS 2 + MoveIt 2 nodes, physics check in MuJoCo 69% grasp success from estimated poses on the BOP LM-O benchmark (58% with zero-shot detections) plan the grasp for the pose error: +12 to 20 points of success
drivecast Data and MLOps pipeline over 744M rows: Parquet lake, MLflow registry, champion/challenger gate, API on Kubernetes, weekly retraining 3.5× the average precision of the vendor's own SMART rule, better in 45 of 45 quarters retrain on data drift: better than a yearly schedule at the same cost
spec-review Requirements reviewer as a GitHub Action and CLI: INCOSE rules, LoRA-tuned 0.6B model, ReqIF, trace graph in Neo4j 0.69 macro-F1 classifying requirements of unseen projects, against 0.53 for TF-IDF rule checks run on every pull request; the LLM proposes the rewrites
first-reply Service-desk triage on local LLMs: German/English hybrid search, cited reply drafts, approval workflow in n8n, LiteLLM gateway, tracing retrieval nDCG@10 of 0.69 (English) and 0.65 (German); no restricted document leaked in 780 queries a confidence gate decides what is automated and hands the rest to a person
shopfloor-agent On-prem maintenance agent: LangGraph, plant data through MCP servers, llama.cpp a 4B open model solves 142 of 143 tasks sanitise tool output or gate writes: either one stopped every injected write

Earlier work: DeepInspect3D, CAD-referenced 3D inspection with point cloud registration and deviation maps, and SmartSort-CAM, a part classifier trained only on Blender renders, with Grad-CAM and a FastAPI service.

Toolbox

  • Vision and 3D: PyTorch, OpenCV, YOLO, U-Net, ConvNeXt, Open3D, point cloud registration (PPF, FPFH, ICP), Blender for synthetic data
  • Edge deployment: ONNX Runtime, OpenVINO, TensorRT, INT8 quantization (PTQ, QAT), ARM64
  • Robotics: ROS 2, MoveIt 2, MuJoCo
  • Models and LLMs: scikit-learn, LightGBM, LoRA, llama.cpp, retrieval (BM25, Qdrant, pgvector), LangGraph, MCP
  • Data and MLOps: DuckDB, Spark, MLflow, ClearML, Docker, Kubernetes, FastAPI, PostgreSQL, GitHub Actions, Azure DevOps
  • Languages: Python, C++20, SQL
  • From the machine side: FEM (ANSYS), CAD (Creo), PLM

Kurz auf Deutsch

Ich bin Maschinenbauer und habe drei Jahre lang Industriemaschinen konstruiert, bevor ich an der RWTH Aachen Robotic Systems Engineering (M.Sc.) studiert habe. In meiner Masterarbeit bei TRUMPF untersuche ich, wie realistisch synthetische Trainingsdaten für die kamerabasierte Maßprüfung von Blechteilen sein müssen. Daneben entwickle ich Bildverarbeitung und maschinelles Lernen für die industrielle Prüfung, Software für Roboter und die Pipelines und Dienste dahinter. Jedes Ergebnis hier steht neben der einfachen Lösung, die es schlagen muss, und jedes Projekt misst auch Laufzeit und Speicher auf der Hardware, auf der es lief. Deutsch B2, Englisch C1.


gbrohiith@gmail.com · LinkedIn

Pinned Loading

  1. VisionSort-RPi VisionSort-RPi Public

    A conveyor belt sorting system powered by Raspberry Pi and YOLOv8 for real-time object detection.

    Python 9 2

  2. takt-vision takt-vision Public

    Real-time C++20 vision inference pipeline: lock-free stages, ONNX Runtime on CPU or CUDA, ByteTrack tracking, p99 latency, zero allocations per frame. Benchmarked against Python.

    C++ 1

  3. vlm-inspect vlm-inspect Public

    Industrial visual inspection: open-weight VLM (Qwen3-VL) vs a trained YOLO detector on VisA, with latency measured. FastAPI + PostgreSQL/pgvector + MLflow, RAG-grounded reports, Kubernetes-deployab…

    Python

  4. first-reply first-reply Public

    Service-desk triage with local LLMs: German/English ticket routing, hybrid-search RAG over a support knowledge base with cited reply drafts, human approval in n8n, LiteLLM gateway and tracing. On-p…

    Python

  5. posegrasp posegrasp Public

    6-DoF object pose estimation to grasping on BOP LM-O (PPF, FPFH+RANSAC+ICP) under trained and zero-shot detections; ROS 2 + MoveIt 2 nodes, MuJoCo pick test. Geometric pose estimation: no GPU requi…

    Python

  6. spec-review spec-review Public

    Requirements as code: an LLM-assisted reviewer for engineering requirements. Quality rules (INCOSE/ISO 29148), classification with a LoRA-tuned small model, conflict detection, traceability in a gr…

    Python