.db file, message by message, each observation stamped with its time and the robot’s pose (the recorder also captures the live TF tree). This is the memory2 episode store.
The result is a portable file that contains the robot’s entire sensory experience of a session. Four things you can do with it:
Recording is generic
Recording is not a Go2 feature - it is a module you can put in any blueprint. The stacks that ship with a recorder wired in:
To record your own stack, compose a
Recorder (dimos/memory2/module.py) into the blueprint and wire the streams you care about into it - Go2Memory in the Go2 blueprints is a thirty-line example of exactly this. The store path is configured on the recorder and printed at startup.
Record a session
No hardware needed to try it - this replays a bundled dataset through the full Go2 stack and records what flows:Inspect a recording
dimos mem rerun is the fastest way to scrub through what the robot saw - it writes an .rrd file and opens the viewer. Both commands accept a bare dataset name (resolved from the working directory, data/, or LFS) or a path.
Replay a session
Replay feeds a recorded database back through the stack as if the sensors were live - the robot connection is replaced by a playback connection, and everything downstream (mapping, planning, perception) runs for real against recorded inputs:--replay-db takes a bundled preset name (go2_short, go2_bigoffice, downloaded automatically) or your own .db. This is how you develop navigation and perception on the couch: record once on hardware, iterate against the recording forever.
Replay drives the software stack with recorded data. It is different from physically re-executing motion on a robot - that exists too, for taught arm episodes:
dimos a1z replay (Galaxea A1Z).Query it from Python
The same file is a queryable store - five lines to see what is inside:skip
