idea177-fedcatopt-federated.../README.md

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_planner and drone_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.py
  • src/idea177_fedcatopt_federated_category/solver.py
  • src/idea177_fedcatopt_federated_category/registry.py
  • src/idea177_fedcatopt_federated_category/adapters.py
  • src/idea177_fedcatopt_federated_category/identity.py
  • src/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.