What it is
orbiedge-agent splits two jobs that should stay split. Basilisk is the physical truth model for a 3U CubeSat in low Earth orbit. F Prime receives that state. It does not fly the vehicle.
The stand-in attitude controller stays in the Basilisk script. TelemetryMonitor subscribes to a ZeroMQ state packet, checks it, and writes F Prime telemetry. It has no actuator port.
Why it matters
Flight software that also is the physics engine will lie to you nicely. I wanted a publisher that models the vehicle, including scripted faults, and a consumer that can only listen. If the monitor cannot command wheels, it cannot accidentally close a loop it does not own.
How it works
sim/scenarios/leo_3u_nominal.py builds a 400 km, 51.6-degree LEO scenario with a 4.39 kg 3U-class bus, reaction wheels, sensors, atmosphere, and magnetic field models as documented in the README. Faults trip on a schedule (a wheel torque/friction event, panel efficiency drop, gyro bias random walk). State goes out as a 256-byte BSK1 packet on ZeroMQ; F Prime’s TelemetryMonitor subscribes.
Basilisk and F Prime are pinned as submodules (AVSLab/basilisk, nasa/fprime). Their source is not copied into sim/ or Orbiedge/.
Status
Public at antmikinka/orbiedge-agent. This is simulation and telemetry tooling, not a flight program I am claiming to operate.