Skip to content

Kretski/ORAC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Note: ORAC-NT stands for Autonomous Recovery Controller — Neural Telemetry. This is unrelated to the ORAC (Oxygen Radical Absorbance Capacity) antioxidant measurement method.

ORAC-NT v5.5 — Autonomous Fault Detection and Recovery System

Autonomous Fault Detection, Isolation, and Recovery (FDIR) architecture for spacecraft and critical embedded systems.

DOI License: MIT TRL Python


Overview

ORAC-NT introduces a Lyapunov-guided autonomous recovery architecture driven by a scalar health metric:

W = Q · D − T

where:

  • Q = subsystem quality score (1 − fault score)
  • D = operational diversity (1 − workload ratio)
  • T = thermal/stress factor

Recovery stability is guaranteed via the Lyapunov function:

V = (W* − W)²

The planner selects actions that monotonically decrease V, providing formal stability guarantees — not just heuristic recovery.


Key Results

Fault Detection (9,000 adversarial missions)

Test Missions Detection Rate False Alarms Avg Latency
Silent Drift 1,000 100% 0 30.4 steps
Byzantine 1,000 100% 0 24.8 steps
Cascading 2,000 100% 0 13.2 steps
Final Boss 5,000 100% 0 16.6 steps
Total 9,000 DR = 100% FA = 0

Lyapunov Planner vs Random Baseline (1,000 missions)

Metric Random Planner Lyapunov Planner Δ
Recovery Rate 57.3% 100% +42.7 pp
Avg Steps to Recovery 4.68 2.08 2.3× faster

Recovery Benchmark (100 runs)

Strategy Avg Steps Improvement
Random 10.86
ORAC Lyapunov 2.30 ~79%

Dual Sensor Byzantine Isolation (500 missions)

Metric Result
Correct isolations 100%
False isolations 0

GravOpt Phase 1 — Energy Optimization

Metric Result
Energy reduction 16.1% vs baseline
Detection Rate maintained 100%
Peak savings (SURVIVAL mode) 66.7%

Hardware Validation — Arduino UNO Q + MPU-6050

Metric Value
Total steps 10,000 (8.3 min @ 20 Hz)
Recovery rate under shocks 95.7%
Mean detection latency 3.2 ms
False positives 0

Architecture

┌─────────────────────────────────────────────────────┐
│                   ORAC-NT v5.5                       │
│                                                      │
│  Sensors → Watchdog_v5 → OracController_v5           │
│               (CUSUM)      (W = Q·D − T)             │
│                                │                     │
│                         LyapunovPlanner              │
│                         V = (W* − W)²                │
│                         argmin_a V(W_predicted)      │
│                                │                     │
│                    NORMAL / SURVIVAL / RECOVERY       │
└─────────────────────────────────────────────────────┘

Watchdog_v5 — CUSUM-based fault detector with Byzantine majority voting (3 sensors). OracController_v5 — Computes W and switches operational mode. LyapunovPlanner — Greedy minimization of V; guarantees monotone recovery. DualSensorFusion — Isolates faulty sensor from two physical IMUs. GravOptController — Adaptive parameter freezing driven by W (16.1% energy savings). MicroSafe-RL — STM32F401 safety layer (~1.2 µs latency, 24 bytes RAM, MISRA-C compliant).


Hardware Validation (TRL 4)

Tested on Arduino UNO Q (Qualcomm QRB2210 + STM32U585) with MPU-6050 IMU:

Board:   Arduino UNO Q
Sensor:  ZX-MPU6050 (GY-521), I²C
Wiring:  VCC→3.3V  GND→GND  SDA→A4  SCL→A5
  • Real gravity reading: gz ≈ 1.034g
  • Auto-calibration: 100-step per-axis baseline ✓
  • Physical motion detection → SURVIVAL mode ✓
  • Recovery to NORMAL after motion stops ✓

File Structure

orac_core.py              # Core — Watchdog_v5, OracController_v5, FaultGenerator
orac_final_proof.py       # Full benchmark — 9,000 missions, DR 100%, FA 0
orac_lyapunov_dual.py     # Lyapunov planner + dual sensor Byzantine test
orac_gravopt_phase1.py    # GravOpt Phase 1 — 16.1% energy reduction
orac_hardware.py          # Hardware — Arduino UNO Q + MPU-6050 (single sensor)
orac_hardware_dual.py     # Hardware — dual MPU-6050 Byzantine isolation
orac_benchmark.py         # Recovery benchmark — ~79% improvement vs random
ORAC_CubeSat.py           # CubeSat orbital simulation
orac_visual_simulator.py  # Visual simulator

Quick Start

pip install numpy matplotlib pyserial

# Run full benchmark (simulation)
python orac_final_proof.py

# Run Lyapunov planner + dual sensor test
python orac_lyapunov_dual.py

# Run recovery benchmark
python orac_benchmark.py

# Run hardware test (requires Arduino on COM4)
python orac_hardware.py

# Run dual sensor hardware test (requires 2x MPU-6050)
python orac_hardware_dual.py

Scientific Contributions

C1 — Health Metric Scalar vitality function W = Q·D − T for real-time spacecraft state estimation. Derived from the principle of useful work: capacity minus dissipation.

C2 — Lyapunov-Guided Recovery Architecture Planner selects actions with ΔV ≤ 0, providing formal stability guarantees. Integrates: health metric + stochastic fault detection + real-time planning.

C3 — Empirical Validation 9,000 adversarial missions, DR 100%, FA 0. Hardware-validated on real IMU (TRL 4), 3.2 ms detection latency.


Related Work

  • FAAST — Facilitating Autonomy in Astrodynamics (CORDIS 101063274)
  • LUMIO — ESA 12-U CubeSat lunar mission
  • NASA Remote Agent — autonomous spacecraft control
  • Google Project Suncatcher — orbital AI compute (TPU bit-flip fault context)

Citation

@misc{kretski2026oracnt,
  author    = {Kretski, Dimitar},
  title     = {ORAC-NT v5.x: Optimal and Stable FDIR Architecture for
               Autonomous Spacecraft and Critical Systems},
  year      = {2026},
  doi       = {10.5281/zenodo.20248197},
  publisher = {Zenodo}
}

Author

Dimitar Kretski — Independent researcher, Varna, Bulgaria GitHub: github.com/Kretski Zenodo: 10.5281/zenodo.20248197 Email: kretski1@gmail.com


ORAC-NT is a simulation and research prototype (TRL 4). Not yet qualified for flight use. Patent pending — Bulgarian Patent Office, filed 05.12.2025 (SynergyFF).

About

Lightweight autonomous fault detection and recovery engine for robots, drones, and CubeSat systems using anomaly detection, Byzantine sensor isolation, and Lyapunov-based recovery planning.

Topics

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE.md
Unknown
LICENSE.AGPL

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages