Understand the behavior of any robot in real time.
Decisions
A robot makes thousands of decisions a shift.
Complexity
Understanding how a robot thinks is complex, iterative and time‑consuming.
Decisions
A robot makes thousands of decisions a shift.
Complexity
Understanding how a robot thinks is complex, iterative and time‑consuming.
Every run carries its own evidence. Every failure arrives with its cause attached.
- 4
- SDK entry points:
task,decision,controller_switch,fault - 1
- required dependency:
opentelemetry-api - 0
- changes to your robot's control logic
How it works
An open convention.
An easy to use SDK.
An engine that never forgets.
with momentum.task("pick_place"): momentum.decision( type="grasp_selection", confidence=result.confidence)
Instrumentmomentum-sdk, next to code you already trust
Evidencestructured traces, every source attached
Momentum agentexplores the evidence when a run fails
✗ fault detectedrun #4412
Root cause — grasp_selection
Confidence collapsed to 0.62 on a reflective part; verification then passed a misplaced piece.
Fix — gate grasps below 0.75 · re-run verification
evidence: 14 traces cited →Root cause & fixranked, evidence-backed, in seconds
SDK
Up and running before your coffee's cold.
Add momentum.* calls next to the code you already have. We handle the serialization, the attribute naming, the span lifecycle: you keep total control over what your robot actually does.
import momentum_sdk as momentum # Root span — the task the robot was asked to perform with momentum.task("pick_and_place", goal=str(target)): with tracer.start_as_current_span("skill.grasp"): result = grasp_selector.run(point_cloud) momentum.decision( type="grasp_selection", inputs={"object_id": object_id, "confidence": result.confidence}, output={"grasp_id": result.id}, ) momentum.controller_switch( from_mode="position", to_mode="impedance", reason="contact_detected", ) arm.execute_grasp(result)
The value curve
Useful in the first hour.
Smarter every month after.
-
Hour one
Drop in a recording of a failed run
run_4412.mcapno code changes
✗ Diverges from run #4411 at
grasp_selection -
Month one
Your engineers confirm each diagnosis
Root cause: grasp_selection✓ confirmed
-
Month six
Ask questions across your whole history
“Why do picks fail on line 2?”
14 of 17 failures happened below 220 lux, vs 2 of 41 above.
The latest from Momentum.
We're looking for a production robot cell.
Validate decision-level diagnosis against real hardware with us. Even a one-time dataset or a single supervised session is genuinely useful.
Get in touchMomentum is an EPFL Blaze accelerated company.
Stop debugging robots in the dark.
Get in touch. We'll walk through what Momentum sees: the decision that went wrong, and the hardware response that gave it away.
Contact us