tpt-teleop-marine

Rust

Rust middleware for GPS-denied maritime, underwater & offshore robotics — AUVs, ROVs, ASVs, and gliders. Zero-allocation acoustic protocol, SIMD INS/DVL/EKF fusion, and deterministic COLREGS compliance. MIT OR Apache-2.0.

0 stars0 forks0 watchersApache License 2.0

Languages

Rust99.6%Shell0.4%
README

tpt-teleop-marine

Tele-Presence Teleoperation — Maritime, Underwater & Offshore Operations — a hyper-optimized, zero-bloat Rust middleware workspace for AUVs (Autonomous Underwater Vehicles), ROVs (Remotely Operated Vehicles), ASVs (Autonomous Surface Vessels), and gliders.

Sister repo to tpt-teleop (video/control transport), tpt-teleop-fleet (indoor warehouse precision), and tpt-t-agri (precision agriculture). The repository retains the full tpt-teleop-marine name; all internal crates use the simplified tpt-t-marine- prefix.

Built for the most physically hostile and communication-starved environment on Earth — the ocean — with the same microsecond-level determinism as the rest of the tpt ecosystem: no async runtime, no serde, no channels-with-mutexes. A custom 100-bps acoustic protocol, SIMD-accelerated INS/DVL fusion, zero-copy rkyv serialization, slab-allocated sonar pipelines, deterministic COLREGS, and raw OS interfaces all the way down.

Status

✅ v1.0.0 — "v1 Monolithic Release" (spec v1.0.0, August 2026). All 15 phases implemented: the vendored tpt-t-domain-bridge DTI, the 15-state SIMD EKF (measured 1.6 µs/cycle vs the 200 µs spec budget), the zero-alloc acoustic stack (GF(256) Reed-Solomon + adaptive ARQ riding 60 % loss, 4 KB state), slab-ring sonar at 1.7 µs/ping vs 2 ms, deterministic COLREGS under 50 µs/vessel, Verlet tether with 5-second snag prediction, DP within 1 m in 2-knot currents, the headless simulator at >100× real time, and the full Subsea Pipeline Survey data-flow integration test — see todo.md for the phase-by-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-marine-coreMission state machine (Dive → Transit → Survey → Surface → Recover), lock-free message bus, central event loop, rkyv wire prelude
tpt-t-marine-navGPS-denied 3D navigation: 15-state SIMD EKF, INS/DVL/pressure/acoustic fusion, WGS84/UTM/ECEF (nightly crate)
tpt-t-marine-pressureDepth/pressure sensing, temperature compensation, hysteresis, leak detection
tpt-t-marine-buoyancyVariable ballast, trim pumps, buoyancy engines, compression-at-depth physics
tpt-t-marine-acousticAdaptive ARQ protocol, Reed-Solomon FEC, triple-redundancy sends, 4KB zero-alloc stack
tpt-t-marine-commsMulti-modal link manager (acoustic/RF/cellular/satellite), store-and-forward, tether QoS
tpt-t-marine-currentADCP ingestion, drift prediction for AUVs and ASVs
tpt-t-marine-tideHarmonic constituent tides, tidal-stream prediction
tpt-t-marine-sonarMultibeam/sidescan/forward-looking sonar, slab ring buffers, SIMD beamforming (nightly crate)
tpt-t-marine-safetyFlooding, emergency buoyancy, thermal shutdown, lost-vehicle procedure
tpt-t-marine-colregsDeterministic COLREGS FSM: give-way/stand-on, whistle signals, auditable decisions
tpt-t-marine-auv3D waypoint following, adaptive sampling, comms-triggered behaviors, sleep-wake power
tpt-t-marine-gliderBuoyancy-driven flight, ultra-low-power trans-oceanic profiles
tpt-t-marine-tetherLumped-mass Verlet tether physics, 100Hz, 5s-ahead snag prediction, winch/TMS
tpt-t-marine-rov6DOF thruster coordination, manipulator arm, tether-aware motion, haptics
tpt-t-marine-asvWaypoint following, dynamic positioning, COLREGS maneuvering, wave compensation
tpt-t-marine-offshoreWind-turbine foundation inspection, subsea cable routing, wellhead monitoring
tpt-t-marine-aquacultureFish-cage net inspection, hydroacoustic biomass, mortality detection
tpt-t-marine-teleopDomainTeleopInterface adapter, acoustic fallback, tether-aware teleop
tpt-t-marine-simHeadless 6DOF simulator: hydrodynamics, acoustic channel, currents, sonar returns
tpt-t-marine-visualizeregui visualizer: trajectories, link heatmaps, catenary, point clouds (excluded crate)

The Zero-Allocation Data Path

Sensor ──Ingest──▶ Fuse/Route ──▶ Mission state (in-place)
                                          │
                                 Serialize ──▶ Acoustic/wire (4KB stack)
Total allocations (steady state): 0        Total mutex locks: 0

The forward data plane is built on lock-free SPSC rings (tpt-t-marine-core) and proven zero-alloc on the hot path; see tools/lock-audit.sh (hard gate) and tools/alloc-audit.sh (informational report).

Developer Experience

Path deps during co-development: tpt-t-marine-* crates depend on tpt-t-marine-core and, where relevant, on tpt-t-domain-bridge (vendored via path dep). Nightly is required only for tpt-t-marine-nav and tpt-t-marine-sonar (#![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.