1.7 KiB
1.7 KiB
FedCatOpt
FedCatOpt is a Python SDK for federated, offline-first coordination of heterogeneous robotic fleets.
It provides:
- Typed DSL primitives for local optimization, shared state, deltas, dual variables, privacy budgets, audit logs, and policy blocks
- A deterministic Graph-of-Contracts registry for contract wiring and islanded execution
- Starter adapters for
rover_planneranddrone_controller - A category-theory-inspired canonical IR that normalizes robotics-specific control payloads
- An ADMM-lite consensus solver with deterministic delta generation and optional privacy budget consumption
- A governance ledger and short-lived certificate skeleton for Phase 1 identity flows
Project Layout
src/idea177_fedcatopt_federated_category/models.pysrc/idea177_fedcatopt_federated_category/solver.pysrc/idea177_fedcatopt_federated_category/registry.pysrc/idea177_fedcatopt_federated_category/adapters.pysrc/idea177_fedcatopt_federated_category/identity.pysrc/idea177_fedcatopt_federated_category/sdk.py
Example
from idea177_fedcatopt_federated_category import (
ADMMliteSolver,
DRONE_CONTROLLER_ADAPTER,
ROVER_PLANNER_ADAPTER,
SharedVariables,
)
rover = ROVER_PLANNER_ADAPTER.to_local_problem({"agent_id": "rover-1", "desired_speed": 3.0, "desired_heading": 1.0})
drone = DRONE_CONTROLLER_ADAPTER.to_local_problem({"agent_id": "drone-1", "desired_thrust": 0.8, "desired_yaw_rate": 0.2})
solver = ADMMliteSolver()
result = solver.solve([rover, drone], SharedVariables(variables={"speed": 0.0, "heading": 0.0, "thrust": 0.0, "yaw_rate": 0.0}))
Testing
bash test.sh
Packaging
The package name is idea177-fedcatopt-federated-category and the source distribution metadata points to this README.