Repository navigation
feat(dataprep): align recordings with explicit feature schemas - #4394
Conversation
There was a problem hiding this comment.
go2 replay realtime
Details
| Benchmark suite | Current: bb7ad9f | Previous: 7529659 | Ratio |
|---|---|---|---|
first frame wall |
10.729 s |
11.519 s |
0.93 |
first frame cpu |
21.835 s |
23.908 s |
0.91 |
run cpu |
31.056 s |
33.323 s |
0.93 |
run cpu (user) |
23.412 s |
25.718 s |
0.91 |
run cpu (system) |
7.644 s |
7.604 s |
1.01 |
peak memory |
2719.195 MB |
2705.062 MB |
1.01 |
peak threads |
409 threads |
406 threads |
1.01 |
disk read |
27.812 MB |
35.621 MB |
0.78 |
disk write |
11.223 MB |
11.242 MB |
1.00 |
network (transport) |
2714.779 MB |
2728.796 MB |
0.99 |
network (external rx) |
0.093 MB |
0.059 MB |
1.58 |
network (external tx) |
0.238 MB |
0.147 MB |
1.62 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'go2 replay realtime'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.08.
| Benchmark suite | Current: bb7ad9f | Previous: 7529659 | Ratio |
|---|---|---|---|
network (external rx) |
0.093 MB |
0.059 MB |
1.58 |
network (external tx) |
0.238 MB |
0.147 MB |
1.62 |
This comment was automatically generated by workflow using github-action-benchmark.
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #4394 +/- ##
==========================================
+ Coverage 80.07% 80.30% +0.22%
==========================================
Files 1615 1619 +4
Lines 151866 152546 +680
Branches 12866 12930 +64
==========================================
+ Hits 121603 122498 +895
+ Misses 26709 26471 -238
- Partials 3554 3577 +23
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 15 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
bb7ad9f to
dce4717
Compare
There was a problem hiding this comment.
go2 replay realtime (arm64)
Details
| Benchmark suite | Current: d6ae38f | Previous: aea28cf | Ratio |
|---|---|---|---|
peak memory |
1541.227 MB |
1529.824 MB |
1.01 |
peak threads |
356 threads |
346 threads |
1.03 |
network (transport) |
2723.398 MB |
2724.733 MB |
1.00 |
disk write |
1.559 MB |
1.277 MB |
1.22 |
instructions |
112.409 G |
112.227 G |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
dce4717 to
0ce4db7
Compare
Convert a raw recording file into an aligned, validated dataset. Here is the input-to-output artifact structure for a LeRobot export with an image feature:
Before: raw recording input
This PR also accepts a single
session.mcapsource file.After: prepared LeRobot dataset
The source recording stays unchanged. HDF5 export instead produces
session.hdf5plussession.dimos_meta.json.These export layouts already exist on the base branch; this PR adds explicit feature validation, causal accepted-target alignment, MCAP input and quality/fill provenance. The recording-directory layout (
schema.jsonplusrecording.mcaporrecording.db) belongs to #4396, not this PR.What is this feature?
Define feature dtype/shape/names/source semantics and share an alignment plan between inspection and export. Reconstruct sparse accepted joint targets causally, including history before episode start, and support MCAP source timestamps. Write task labels and fill provenance to HDF5.
Why do we need this?
Offline datasets must preserve configured joint order and accepted target history across SQLite and MCAP. Depends on the episode branch. Existing fill semantics are retained; this PR introduces no new fill-age limit.
Documentation
Read the offline alignment guide for the API contract and executable examples. The guide uses APIs available in this PR, without relying on later stack layers.
How to Test
67 focused core, MCAP and HDF5 tests passed; commit and lockfile hooks passed. LeRobot dispatch stays on the existing path until the separate exporter PR.
Which issue(s) does this PR close?
None. This is a review slice of #4343, following the Manipulation SDK preview. It does not close or replace the integration PR.
Checklist
AI assistance: Codex assisted with the split, validation, and description.
Review corrections and validation
SQLite inspection no longer requires the optional MCAP package. Unlabeled explicit ranges retain a configurable default task for HDF5. Standalone LeRobot export at this layer preserves boolean fill flags; the next layer uses the isolated native writer. Alignment retains numeric history and timestamps while decoding video as frames are selected, instead of retaining all decoded images. The HDF5 writer still buffers an episode, as documented in the offline guide.
102 focused tests passed at this layer, including four regressions that failed before the fixes. Four production modules passed mypy; normal hooks and the executable guide passed. The final stack passed 363 focused tests and seven production modules' typing. These are focused local results, not full CI. Exact-head CI remains under verification; benchmark investigation is paused and no gate has been waived.