Research

Research record

How can small robots and mobile devices perceive their surroundings and use live sensor data reliably when compute is limited and network links drop?

Undergraduate research completed at IOE Thapathali Campus; production mobile engineering in Kathmandu. Preparing applications to research-based Master's programs in robotics and mobile systems.

Final-Year Capstone Project · Tribhuvan University, IOE Thapathali Campus (2024–2025)

Vision-Based Autonomous UAV for Obstacle Detection, Avoidance, and Navigation

Question

How does a small quadrotor see an obstacle and change course when the only computer onboard is a Raspberry Pi?

What was built

F330 quadrotor with a Pixhawk 4X, Raspberry Pi 4B, and Intel RealSense D435. YOLOv8 is quantized through ONNX and TFLite (FP16/INT8), run with OpenCV DNN, then replanned with an occupancy map and RRT* on the Pi. Commands go to the Pixhawk over UART. Flown in Gazebo, then in a college parking lot, a forest area, and open ground.

What was found

On a logged flight the auto segment was 0–1 m/s (average 0.36 m/s) at about 0.9–1.5 m altitude. Early flights were limited by GPS interference from the Pi and the battery; raising the GPS module reduced it. The log is not fast flight through dense clutter, and it is not flight without GPS.

6th-Semester Minor Project · Tribhuvan University, IOE Thapathali Campus (2024)

Real-Time GPS Telemetry and Neural Network ETA Prediction for Urban Transit

Question

How do you keep a bus position when the cellular link is intermittent, and how close can a small network get to the arrival time on a known Kathmandu corridor?

What was built

Arduino Mega tracker (NEO-6M GPS, SIM900 GSM) that sends a fix every 30 seconds over GPRS, and a Django backend that accepts fixes over HTTP and serves routes, stops and fares to a Leaflet map. A feedforward network with hidden layers of 64 and 32 units estimates the minutes for each hop, trained on 2022–2023 corridor GPS records. The report's TensorFlow version used dropout 0.3; the deployed scikit-learn version does not.

What was found

The project report measured R² = 0.965 and MAPE 6.74% on a 20% test split of scaled targets. The model the app now serves, retrained in scikit-learn on five inputs, scores differently (see the write-up). A trip is drawn only when both ends share a stored corridor. A fix older than 30 seconds is marked stale.

Production Systems Engineering · Kathmandu Living Labs & Swift Technology (2025–Present)

Production Mobile Systems: Navigation, Location Tracking, and Client Hardening

Question

How do production mobile clients keep navigation and location tracking working when the network is intermittent and the device is constrained?

What was built

At Kathmandu Living Labs, built navigation, search and the main map view of the Baato Maps Android app with the MapLibre SDK, including offline tile caching, and fixed threading and lifecycle problems in map views. At Swift Technology, built a cash-in tracking feature for Japan Money Express in Kotlin and Jetpack Compose using polling, coroutines and Flows, and added security hardening to a legacy Java/XML client.

Outcomes

Crash rate in key flows fell by 30% at Kathmandu Living Labs through coroutine isolation and thread-safe map lifecycle cleanup.

State estimation on a small computer. The UAV replans around obstacles from onboard depth, but it relies on GPS for its position. I want to study how far a lightweight visual-inertial approach can replace GPS on a Raspberry Pi-class computer, and what it costs in latency. First step: record camera and flight-controller IMU data on the existing aircraft and compare a lightweight visual-inertial pipeline against the Pixhawk's GPS-based estimate.

Arrival estimates when fixes are late. The transit model assumes the next fix arrives. I want to measure how arrival-time error grows as fixes are delayed or dropped, and whether a model that carries its uncertainty stays usable. First step: replay the corridor data with simulated dropouts and plot error against gap length.

Reliable location tracking on mobile clients. In production Android work I handled GPS polling, offline tile caching and map-view lifecycle problems. I want to measure how these choices affect battery, latency and map smoothness on low-end phones, using an open-source app and public benchmark data rather than employer code.