Skip to main content
rfx organizes its API into focused package surfaces:
SurfacePurpose
rfx.robotRobot contract, config, discovery, and hardware-facing abstractions
rfx.simSimulation and mock execution
rfx.collectionDataset recording and collection contracts
rfx.runtimeLifecycle, health, CLI, operational helpers
rfx.teleopTeleoperation and high-rate recording built on the same primitives

Intent

  • Keep the middleware core small and explicit.
  • Treat simulation as a primitive, not an afterthought.
  • Treat collection as a primitive, not a script on the side.
  • Keep robot adapters separate from framework identity.
  • Let workflow helpers compose on top of the primitives instead of defining them.

Usage

import rfx

robot = rfx.MockRobot(state_dim=12, action_dim=6)
obs = robot.observe()
Access package surfaces directly:
import rfx

rfx.robot       # Robot protocol, config, discovery
rfx.sim         # Simulation and mock backends
rfx.collection  # Collection and dataset APIs
rfx.runtime     # Runtime and operational helpers
rfx.teleop      # Teleop on top of the same robot/runtime contracts