Skip to content
SNAPKITTYWESTPublic

About

LLM-driven orbital free-flyer agents — extends NASA JPL OSR (bug fixed) to 6-DOF space ops. CW dynamics · ROSA · Ed25519 sovereign attestation · swarm coordination

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

Repository files navigation

OSR Space — Orbital Free-Flyer Agent Framework

License: Tri ROS 2 Dynamics Crypto ROSA NASA Bug Fixed Thruster Alloc Prior Art Sovereign Stack

Authors: Ahmad Ali Parr, Jessica L. Williams (SNAPKITTYWEST)

NASA JPL's Open Source Rover had a bug in master.
Corner wheels calculated r wrong in v = r·ω. Turn radius was off.
We traced it. We fixed kinematics.py. Then we took it to orbit.


What This Is

A ROS 2 multi-agent framework enabling LLM-driven agents to command robotic space drones (free-flyers) aboard ISS-analog environments. Extends the NASA JPL Open Source Rover control patterns, replacing ground kinematics with 6-DOF orbital dynamics.

Every command is Ed25519-signed per the Sovereign Trust Deed. The WORM chain seals the command history. The safety filter enforces keep-out zones at the type level.


The Bug We Fixed First

NASA JPL's OSR kinematics.py calculates corner wheel velocities as v = r * omega but uses the wrong r — off-axis distance instead of the true turn radius. Result: the rover crab-walks, spins, and makes you think your Roboclaw or servos are dead when the hardware is fine.

NASA never patched it in master.

We rewrote the kinematics. Then extended the architecture to orbital dynamics.


Architecture

LLM Agent (ROSA)
    ↓  calculate_orbital_wrench tool (CW dynamics + PD)
    ↓  verify_safety_zone tool (keep-out ellipsoids)
    ↓
ISS Node Bridge (ISSNodeBridge)
    ↓  Ed25519 command attestation (Sovereign Trust Deed)
    ↓  Safety filter (ellipsoidal CBF)
    ↓  Wrench → thruster allocation (LP, fuel-optimal)
    ↓
Swarm Coordinator
    ↓  CW-aware collision avoidance
    ↓  TDMA comms scheduling
    ↓  Task allocation (Hungarian / MILP)
    ↓
Gazebo / Real Hardware
    ↓  Thruster effort commands
    ↓  State estimation (EKF: VICON + IMU + star tracker)
    ↓
WORM Chain (sovereign ledger)
    ↓  Every command sealed, every state transition recorded

Dynamics

Clohessy-Wiltshire (Hill) equations for relative orbital motion in LVLH frame:

d²x/dt² - 2ω dz/dt - 3ω²x = Fx/m
d²y/dt²         + ω²y       = Fy/m  
d²z/dt² + 2ω dx/dt          = Fz/m

6×6 state transition matrix Φ — symplectic (energy-preserving, proven).

Thruster allocation solves A·f = wrench minimizing ||f||₁ (fuel-optimal LP) — feasible for all wrench in convex hull of thrust set, proven by LP duality.


Package Structure

osr-space/
├── osr_space/
│   ├── primitives.py          SE3State, WrenchCommand, ThrusterCommand
│   ├── orbital_dynamics.py    CW equations, thruster allocation (LP)
│   ├── iss_bridge.py          ISSNodeBridge — per-agent ROS 2 node + Ed25519
│   ├── swarm_coordinator.py   Multi-agent coordination + TDMA
│   ├── rosa_agent.py          ROSA LLM agent factory + orbital IK tool
│   ├── safety_filter.py       Keep-out zone enforcement (ellipsoidal CBF)
│   └── inverse_kinematics_6dof.py  Pose → wrench solver
├── osr_bringup/
│   ├── launch/osr_space_launch.py
│   └── config/{orbital_params,thruster_config,safety_zones}.yaml
├── osr_interfaces/osr_msgs/
│   ├── msg/{SpacecraftState,ThrusterCommand,AvoidanceZone}.msg
│   └── srv/AssignTask.srv
├── osr_gazebo/
│   ├── gazebo_space_adapter.py
│   └── worlds/iss_lvlh.world
├── scripts/ina260/ina260_battery_publisher.py
└── test/
    ├── test_orbital_dynamics.py
    ├── test_thruster_allocation.py
    └── test_safety_filter.py

Novelty

Component Status
ROSA LLM agent + orbital IK as callable tool NOVEL
ISS Node Bridge with Ed25519 sovereign attestation NOVEL
Swarm coordinator with CW-aware collision avoidance NOVEL
LLM → ROSA → orbital IK → thruster allocation → hardware NOVEL
CW dynamics Clohessy 1960
LP thruster allocation Bodson 2002
Safety filter (ellipsoidal CBF) Ames 2019, adapted

Proof Obligations

Obligation Status
CW dynamics preserve energy (unforced) ✅ Φ symplectic
Thruster allocation feasible ∀ wrench ∈ convex hull ✅ LP duality
TDMA schedule collision-free ✅ Round-robin + guard bands
Safety filter keep-out ⚠️ CBF proof pending
ROSA tool calls → valid wrenches ⚠️ Property-based test pending

Connection to the Sovereign Stack

  • Ed25519 command signing — Sovereign Trust Deed, same as LOCKER WORM chain
  • WORM ledger — every command sealed, every state transition recorded
  • ERE gates — invalid commands rejected before execution
  • Sovereign Hypervisor — 6502 agent VMs can run the ROSA agents
  • BOB Voyager — ISS telemetry already tracked via Forth + NORAD 25544

The ground rover bug was the entry point. The orbital dynamics is the extension. The sovereign stack is the security layer underneath it all.


License

Tri-license — AGPL-3.0 | BSL 1.1 → MIT | MIT
Copyright (C) 2026 Ahmad Ali Parr, Jessica L. Williams / SNAPKITTYWEST
Bel Esprit D'Accord Irrevocable Trust

About

LLM-driven orbital free-flyer agents — extends NASA JPL OSR (bug fixed) to 6-DOF space ops. CW dynamics · ROSA · Ed25519 sovereign attestation · swarm coordination

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages