strands-robots¶
One Robot object drives any robot, in simulation or on real hardware, through six
contracts, on about twenty thousand lines of code, and one command proves it works against
real backends with no mocks.
from strands_robots import Robot, make_policy
arm = Robot("so101", mode="sim") # the SO-101 MJCF in MuJoCo
arm.act({"shoulder_pan": 0.3}) # position control, one tick
obs = arm.observe() # joints, cameras, sensors, typed
arm.preflight(make_policy("mock", dof=6)) # refuses a unit mismatch BEFORE motion
Get started¶
Install one extra, move an arm in MuJoCo, then the same four lines on a real SO-101.
Six contracts¶
Robot, Driver, Policy, SimEngine, Transport, Recorder. Generated from the source at build.
Coverage matrix¶
Which policy runs on which robot, sim / real / twin, with a witness mark per cell. A table, never a promise.
Agent tools¶
Fourteen tools over one facade. mode="sim" and dry_run=True by default; real motion
needs confirm=True.
Acceptance¶
bash acceptance/all.sh runs the real thing and prints what it verified:
ACCEPTANCE GREEN (n real / m skipped).
Architecture¶
Seven layers, one rule: a module imports only from layers below it. CI is the referee.