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.
- Language
- C++17 · Python
- Dataset
- RELLIS-3D · Ouster OS1-64
- Tests
- 162 C++ · 31 Python
- Repro
- Docker · ~45 s
Phase 1 — Core perception & safety
- M1Data ingestionO(N) binary loader for RELLIS-3D and Open3D visualizationShipped
- M2Sector RANSACGround segmentation for sloped and graded terrainShipped
- M3Traversability gridRisk / confidence maps using PCA surface normalsShipped
- M4Camera-LiDAR fusionHomogeneous transforms and SegFormer semantic segmentationShipped
- M5Kinematic safetyStopping distance, TTC, terrain-aware friction, priority interventionsShipped
- M6IntegrationDocker image, smoke test, end-to-end pipelineShipped
Phase 2 — Odometry & SLAM
Phase 2 — Mapping & tracking
Phase 2 — Perception & safety refinement
Phase 2 — Cross-domain evaluation
- M14nuScenesUnified calibration adapter, second domain validationIn progress
- M15+MOTA eval, ROS2 live, final ship3D viz, ROS2 live pipeline, demoPlanned
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.