tpt-teleop-space

Rust

Hyper-optimized, zero-bloat, fault-tolerant Rust middleware for extraterrestrial & orbital robotics — DTN, radiation-hardened control, and deterministic ADCS/rover autonomy. MIT OR Apache-2.0.

0 stars0 forks0 watchersApache License 2.0

Languages

Rust98.9%Shell1.1%
README

tpt-teleop-space

Tele-Presence Teleoperation — Extraterrestrial & Orbital Operations — a hyper-optimized, zero-bloat, fault-tolerant Rust middleware workspace for planetary rovers, satellite constellations, orbital servicing vehicles, and deep-space probes.

Sister repo to tpt-teleop (video/control transport), tpt-teleop-marine, tpt-teleop-fleet, and the other tpt-teleop-* domain repos. The repository retains the full tpt-teleop-space name; all internal crates use the simplified tpt-t-space- prefix.

Built for the most isolated, unforgiving environment there is — where a Mars rover waits 4–24 light-minutes for Earth, a probe is unrecoverable for decades, and a single flipped bit can end a billion-dollar mission. Every design choice prioritizes mission survival, data integrity, and absolute reliability: a custom DTN stack that survives multi-hour blackouts, a software radiation-hardening layer (memory scrubbing + TMR voting), deterministic SIMD-accelerated ADCS control, and predictive onboard autonomy — all with no async runtime, no serde, no channels-with-mutexes.

Status

✅ v1.0.0 — "v1 Monolithic Release" (spec v1.0.0, 2026). All software phases implemented: the vendored tpt-t-domain-bridge DTI, the mission FSM + lock-free bus + NVRAM snapshot store, the Hamming(72,64) memory scrubber and TMR voter (measured 0.0066 µs/vote vs the 50 µs spec budget), zero-copy CCSDS TM/TC parsers with deterministic fuzz campaigns, the BPv7/LTP store-and-forward stack (4-hour occultation + mid-blackout processor reset, exact resume), the atomic Safe Mode transition, stereo DEM + candidate-trajectory planning (0.23 ms/replan vs 50 ms), the nightly SIMD crates (ADCS at 0.84 µs/cycle vs 200 µs; rover detour in 0.8 ms), the no_std bare-metal edge layer validated on aarch64-unknown-none-softfloat, the DTI teleop adapter with predictive display and DTN transport, the headless simulator, and the complete §6 Mars Sample Collection data-flow integration test. See todo.md for the phase record and docs/quickstart.md to build it.

CILintDeps
buildlintdeny

Workspace Crates

CratePurpose
tpt-t-domain-bridgeDomainTeleopInterface (DTI) trait, wire types, universal safety FSM, assist API (vendored from tpt-teleop)
tpt-t-space-coreMission state machine (Cruise → Approach → Operations → Safe Mode), lock-free message bus, event loop, persistent snapshots, rkyv wire prelude
tpt-t-space-radiationContinuous memory scrubbing (Hamming + CRC32), <50µs TMR voter, SEU detection & recovery
tpt-t-space-ccsdsZero-allocation, zero-copy CCSDS TM/TC packet parsers
tpt-t-space-dtnCustom BPv7-style bundles with custody transfer, LTP, NVRAM store-and-forward across multi-hour blackouts
tpt-t-space-thermalHeater/radiator/battery monitoring → Safe Mode triggers
tpt-t-space-powerSolar pointing, battery cycling, eclipse load shedding, dust-storm survival
tpt-t-space-predictiveOnboard MPC, stereo DEM at 10Hz, trajectory planner, autonomous decision framework
tpt-t-space-satelliteADCS: SIMD MEKF, reaction wheels, momentum dumping, formation flying (nightly crate)
tpt-t-space-roverOdometry, VIO, hazard avoidance, science sequencing, wheel health (nightly crate)
tpt-t-space-orbitalRendezvous & proximity ops: relative nav, autonomous docking, 7-DOF arm
tpt-t-space-edgeno_std bare-metal RTOS layer, register-level peripherals, watchdogs
tpt-t-space-teleopDomainTeleopInterface adapter, predictive display, command sequencing, DTN transport
tpt-t-space-simHeadless 6DOF simulator: orbital mechanics, sensor noise, radiation injection, DTN blackouts
tpt-t-space-visualizeregui visualizer: trajectories, attitude, terrain, budgets (excluded crate)

The Zero-Allocation Data Path

Sensor ──Ingest──▶ Fuse/Route ──▶ Mission state (in-place)
                                          │
                                 Serialize ──▶ DTN/NVRAM sector (rkyv, in place)
Total allocations (steady state): 0        Total mutex locks: 0

The forward data plane is built on lock-free SPSC rings (tpt-t-space-core) and proven zero-alloc on the hot path; see tools/lock-audit.sh (hard gate), tools/alloc-audit.sh, tools/no-recursion.sh, and tools/no-panic-audit.sh (strict mode passes). Compliance readiness is mapped in docs/compliance.md, and the Safe Mode FMEA lives at docs/fmea-safe-mode.md.

Developer Experience

Path deps during co-development: tpt-t-space-* crates depend on tpt-t-space-core and, where relevant, on tpt-t-domain-bridge (vendored via path dep). Nightly is required only for tpt-t-space-satellite and tpt-t-space-rover (#![feature(portable_simd)]); both are excluded from the stable workspace and build in isolation. See docs/quickstart.md.

Licensing

Dual-licensed under either of:

Copyright © 2026 TPT Solutions.

Dependency policy ("the MIT chain"): dependencies are restricted to MIT, BSD-2/3-Clause, ISC, Zlib, and MPL-2.0. Dual MIT/Apache crates are resolved strictly under MIT; strictly Apache-2.0-only crates are banned. Enforced by deny.toml in CI, alongside the spec §7 function bans (nalgebra/ndarray, tokio, serde/bincode, heavy CCSDS stacks, …).