Anoop Pattankude
I'm a computer science student at PES University in Bengaluru. I write firmware and vision code for robots, usually for boards with a lot less compute than the models would like.
This year I've been building an autonomous factory-inspection rover for Toyota Industries Engine India. It started during my research internship at PES MARS Lab, and I'm still working on Telltale, the predictive-maintenance system it carries.
Industry project, 2026
Toyota Industries Engine India
I'm building an autonomous factory-inspection rover for Toyota Industries Engine India. It started during my research internship at PES MARS Lab. The rover carries Telltale, the predictive-maintenance system that watches the gauges, vibration and temperature on each machine, and that part is still in progress.
The rover
I wrote the perception, data and systems software for the rover, which inspects the factory floor on its own. It runs ROS 2 on an Intel NUC, with a Livox Mid-360 lidar and FAST-LIO for mapping. The vision models had to keep up in real time on a Qualcomm DragonWing board with very little to spare, so I profiled and quantized them until end-to-end throughput went from 3 or 4 FPS to 12.
The rover's main code is under NDA, so there's no public repo for it. Telltale, below, is public.
Telltale
The predictive-maintenance system on the rover, built for Toyota Industries Engine India
Telltale is the part of the rover that watches each machine and flags any that start behaving abnormally. It runs entirely on an Arduino UNO Q that rides on top of the rover. Once it's set up, it doesn't use the cloud or the network at all.
Each machine has an AprilTag beside it. When Telltale sees the tag, it knows which machine it's looking at and which of three channels to watch: the gauge, vibration and temperature. If a sensor gets unplugged, only that sensor's channel drops out and the rest keep running.
I wrote the C++ firmware, which samples a VL53L0X for vibration and an MLX90640 for temperature over I²C and publishes summaries across the Arduino Router Bridge. I also wrote the vision side in Python and OpenCV. It finds 36h11 tags and gets the needle angle from a four-point calibration.
Each channel has its own anomaly model (static limits, IsolationForest, trend forecasting). Readings are stored in SQLite, and you can see them over an HTTP API, in a small web UI with no dependencies, or on an LED matrix.
Bridge
Everything in this diagram runs on the one board, with no network connection after setup.
More work
Type what you're looking for and the box finds it. Left of the line is the raw feed, right of it is after color correction.
Underwater ROV with vision-language perception
I built the perception stack for an underwater ROV. Camera frames go through a real-time Python pipeline that runs one of two detectors. YOLO handles a fixed set of object classes, and NVIDIA's LocateAnything 3B, a vision-language model, finds whatever you describe in plain language.
Underwater video comes out with a color cast and low contrast, so an OpenCV preprocessing step corrects that before detection. I also extended the ROV's existing firmware with reproducible Nix builds that expose an RTSP stream for the vision-language model.
Ads get detected, then blurred, and the blur stays on them as you look around.
Real-time AR ad blocker
This is an ad blocker for the real world, on a Meta Quest 3. It detects ads in the passthrough camera feed and blurs them out of your view in real time. Camera access goes through the Meta Horizon API, and the blur is a compositing shader.
Right now I'm working on on-device inference and tracking, so the blur stays on the ad while you move around.
Drawn to scale. Inside the same circle, one big rotor sweeps about twice the area of four 40 mm props.
Thrust-vectoring monocopter
I built a thrust-vectoring monocopter with a team for a competition. To have something to compare it against, we also built a 75 mm whoop with the same circumference, and brought in a 6-inch quad.
We measured thrust on a load-cell bench and compared all three on disc loading, weight, payload, thrust, thrust per motor and efficiency. Our main argument is about disc area: inside the same circle, the monocopter's one rotor sweeps about twice the area of the whoop's four 40 mm props. (The 6-inch quad lost a motor after about five seconds at full throttle on the bench.)
I'm writing a paper on it now.
The 2 km flight: 200 mW from the quad and a TBS 6.7 dBi patch on the ground station.
6-inch FPV quad
My own long-range quad, which I built and fly. It runs digital video, and I've flown it 2 km out on 200 mW with a TBS 6.7 dBi patch antenna on the ground station.
I worked through the link budget for that flight from the patch's datasheet, including the efficiency lost to its FR4 board and the beamwidth, and it holds up against the real flight.
I also designed the antenna mount in Fusion 360. My printer couldn't hold the tolerances a snap-fit needs, so it uses a boss with a rubber band and 45° flared posts instead.
Here it switches between a hospital, a police station, a pharmacy and a petrol pump. Each switch is a new Places API lookup, and the needle swings to the new target while you turn the compass.
GPS bearing compass
A handheld ESP32 compass whose needle points at the nearest place in a category you pick, like a hospital, instead of north. A servo drives the needle, and the target comes from the Google Places API over WiFi.
I wrote all the firmware, including the WiFi networking, API response parsing and magnetometer calibration. It fuses live GPS position with the compass heading and recomputes the great-circle bearing once a second as you turn it. To stay inside the free tier, it only calls the API after 200 m of movement, when you change category, or after five minutes.
Experience
Research intern, PES MARS Lab
June to Aug 2026, Bengaluru
At the Mobile Autonomous Robotic Systems lab I wrote the perception, data and systems software for an autonomous factory-inspection rover, an industry project for Toyota Industries Engine India.
The models had to keep up in real time on a Qualcomm DragonWing board with very little to spare, so I profiled and quantized them. End-to-end throughput went from 3 or 4 FPS to 12. The rover's code is under NDA, so it isn't on GitHub.
Education and skills
B.Tech in Computer Science and Engineering, PES University
2023 to 2027, Bengaluru
I received a scholarship in my 6th semester. Before that, Class XII at Alva's PU College, Moodbidri (2023).
Languages and libraries: C, C++, Python, SQL, ROS 2, OpenCV, PyTorch, YOLO (Ultralytics), NumPy, Pandas, scikit-learn
Tools and platforms: ESP32, Arduino, Linux, Git, Docker, Nix, Lix, Google Places API (New), Meta Horizon API
Get in touch
Email or call me. My code is on GitHub.