Terra Perceive
Engineering blog

A production-grade C++ perception pipeline for construction site autonomy.

Autonomous perception often breaks when it leaves the asphalt. Terra Perceive is an engineering deep-dive into building a perception stack from the ground up to handle the unstructured frontier — sector RANSAC, LiDAR-inertial SLAM, multi-object tracking with cascades, probabilistic traversability, and control-barrier-function safety, all in C++17 on the RELLIS-3D dataset.

M10 — 3D LiDAR chase-camera view of the from-scratch SORT tracker. Ego drives forward through forest (frames 80–1100); chase camera 50 m ahead at 12 m altitude. Points coloured by height, tracked clusters by stable track ID.
Four-panel animation growing in lockstep over 2,847 frames of RELLIS sequence 00, one panel per pose source: from-scratch SLAM (manifold), Cartographer, KISS-ICP, and GPS-only. All four panels share the same world bounding box so positions are directly comparable. Trajectories diverge over time: SLAM and Cartographer track the same shape closely, ICP drifts at the tail, GPS jitters across more cells than the other three.
M9 — four pose sources accumulating BEV maps side-by-side. From-scratch SLAM, Cartographer, KISS-ICP, GPS-only — same world bbox, all 2,847 frames. SLAM and Cartographer track each other closely; ICP drifts at the tail; GPS smears.
Language
C++17 · Python
Dataset
RELLIS-3D · Ouster OS1-64
Tests
162 C++ · 31 Python
Repro
Docker · ~45 s

Phase 2 — Cross-domain evaluation

  • M14
    nuScenes
    Unified calibration adapter, second domain validation
    In progress
  • M15+
    MOTA eval, ROS2 live, final ship
    3D viz, ROS2 live pipeline, demo
    Planned

Technical stack

  • Core logic. C++17, Eigen3 — no high-level CV libraries
  • Infrastructure. ROS 2 Humble, Colcon, CMake
  • Data. RELLIS-3D (Ouster OS1-64)
  • Deployment. Docker, Ubuntu 22.04

About

Terra Perceive is a C++17 perception stack for off-road robotics, built from first principles on RELLIS-3D. The thirteen milestones cover the full pipeline — from LiDAR ingestion and sector RANSAC, through pose-graph SLAM (0.577 m ATE on Sequence 00) and a SORT+IMM tracker cascade, to probabilistic traversability and 1D CBF safety with formal guarantees. 162 C++ + 31 Python tests, Docker-reproducible in 45 seconds.