Adhiraj Singh ← All work

TerraSight: terrain perception that cannot say "safe" by accident

TerraSight is onboard perception for autonomous planetary rovers, built for Smart India Hackathon. It turns stereo and RGB camera feeds into a live 3D terrain map, classifies every patch into decision zones, and scores it for construction. I built the mission dashboard: the React and Three.js view that renders the terrain, rover paths, classified zones and mission data.

The problem

A rover has to answer one dangerous question on its own: is this ground safe to build on? A wrong "no" means surveying somewhere else. A wrong "yes" sinks a habitat. And the computer answering it is slow, low on power and short on memory, with no labelled dataset of real planetary imagery to train on.

The approach

Being over-cautious is fine. Being falsely reassuring is not. So perception measures, and one deterministic layer decides. Nothing else in the system is allowed to make a safety call.

Architecture

stereo + RGB frames
   |
   v
perception (can be wrong): segmentation, depth, SLAM
   |  slope, roughness, material class, crater distance, confidence
   v
scoring (deterministic): safety score, then zone by strict precedence
   |
   v
API: /map/tiles  /rover/path  /sites  /boundaries
   |
   v
dashboard (Next.js + Three.js): 3D terrain, zones, rover path, ranked sites

The four zones are construction-safe, navigation-only, geological interest and hazardous. When signals conflict the precedence is hazard, then geological, then navigation, then safe.

What was built

Engineering decisions

What failed

The textbook approach, a U-Net, was not available: there was neither the labelled data nor the compute to train and run one. The project shipped without a neural network because that was the version that could be checked.

Current limitations

Evidence