|
| 1 | +# DIG3D Test Data For `elevation_mapping_cupy` |
| 2 | + |
| 3 | +This note points to the current March 26 DIG3D real bags that are useful when |
| 4 | +changing `elevation_mapping_cupy`. |
| 5 | + |
| 6 | +## Current local digging chain |
| 7 | + |
| 8 | +When replaying the split DIG bags with the current local digging profile, the |
| 9 | +effective height-processing chain is: |
| 10 | + |
| 11 | +- `elevation -> near_base_filtered -> despiked -> inpaint -> excavation_mapping` |
| 12 | + |
| 13 | +Important detail: |
| 14 | + |
| 15 | +- excavation mapping currently patches from `inpaint`, not directly from |
| 16 | + `despiked` |
| 17 | +- so a despike change should usually be checked in both |
| 18 | + `/mole/elevation_map_filter` and `/mole/excavation_mapping/grid_map` |
| 19 | + |
| 20 | +## Existing dataset docs |
| 21 | + |
| 22 | +- Main bag manifest: |
| 23 | + - `/home/lorenzo/mcap/dig3d_2026-03-26/bag_manifest_initial_2026-03-28.md` |
| 24 | +- Single-scoop playback priority: |
| 25 | + - `/home/lorenzo/mcap/dig3d_2026-03-26/split_single_scoops_obs_2026-03-28/PLAYBACK_PRIORITY_2026-03-28.md` |
| 26 | +- Single-scoop manifest: |
| 27 | + - `/home/lorenzo/mcap/dig3d_2026-03-26/split_single_scoops_obs_2026-03-28/single_scoop_manifest_2026-03-28.csv` |
| 28 | +- Current despike validation summary: |
| 29 | + - `/home/lorenzo/mcap/dig3d_2026-03-26/analysis/elevation_despike_2026-03-29/README.md` |
| 30 | + |
| 31 | +## Bag layouts |
| 32 | + |
| 33 | +There are two layouts in this dataset. |
| 34 | + |
| 35 | +### 1. Split full-run layout |
| 36 | + |
| 37 | +Use this when you want to replay raw lidar and run the perception stack live. |
| 38 | + |
| 39 | +Example: |
| 40 | + |
| 41 | +- `/home/lorenzo/mcap/dig3d_2026-03-26/dig3d_real_run_2026-03-26_21-09-18/` |
| 42 | + |
| 43 | +Expected structure: |
| 44 | + |
| 45 | +- `sensors/` |
| 46 | +- `state/` |
| 47 | +- `commands/` |
| 48 | +- `lidar/` |
| 49 | +- `elevation_map/` |
| 50 | +- optional `camera/` |
| 51 | + |
| 52 | +This is the cleanest layout for: |
| 53 | + |
| 54 | +- `robot_self_filter` |
| 55 | +- live `elevation_mapping_cupy` |
| 56 | +- live excavation mapping on top of the `inpaint` layer built from the despiked |
| 57 | + elevation-map chain |
| 58 | + |
| 59 | +### 2. Monolithic bag layout |
| 60 | + |
| 61 | +Use this when you want a short repro bag or a single whole-run bag in one |
| 62 | +folder. |
| 63 | + |
| 64 | +Examples: |
| 65 | + |
| 66 | +- `/home/lorenzo/mcap/dig3d_2026-03-26/trenching_single_2026-03-26_21-23-04/` |
| 67 | +- `/home/lorenzo/mcap/dig3d_2026-03-26/analysis/single_scoop_splits_2026-03-28/trenching_single_2026-03-26_21-39-24/trenching_single_2026-03-26_21-39-24__scoop_03/` |
| 68 | + |
| 69 | +Expected structure: |
| 70 | + |
| 71 | +- `<name>.mcap` |
| 72 | +- `metadata.yaml` |
| 73 | + |
| 74 | +This is the easiest layout for: |
| 75 | + |
| 76 | +- short Foxglove review |
| 77 | +- targeted repro of one failure case |
| 78 | +- offline analysis scripts |
| 79 | + |
| 80 | +## Recommended test data |
| 81 | + |
| 82 | +### Clean baseline full replay |
| 83 | + |
| 84 | +Use: |
| 85 | + |
| 86 | +- `/home/lorenzo/mcap/dig3d_2026-03-26/dig3d_real_run_2026-03-26_21-09-18/` |
| 87 | + |
| 88 | +Why: |
| 89 | + |
| 90 | +- split layout is already clean |
| 91 | +- short controlled run |
| 92 | +- good reference when checking that a filter does not damage reasonable terrain |
| 93 | + |
| 94 | +### Spike-heavy full-run repro |
| 95 | + |
| 96 | +Use: |
| 97 | + |
| 98 | +- `/home/lorenzo/mcap/dig3d_2026-03-26/trenching_single_2026-03-26_21-23-04/` |
| 99 | + |
| 100 | +Why: |
| 101 | + |
| 102 | +- strongest near-machine positive spike behavior |
| 103 | +- primary bag for validating spike rejection |
| 104 | + |
| 105 | +Related metrics: |
| 106 | + |
| 107 | +- `/home/lorenzo/mcap/dig3d_2026-03-26/analysis/elevation_despike_2026-03-29/despike_summary_212304.json` |
| 108 | + |
| 109 | +### Short focused spike repro |
| 110 | + |
| 111 | +Use: |
| 112 | + |
| 113 | +- `/home/lorenzo/mcap/dig3d_2026-03-26/analysis/single_scoop_splits_2026-03-28/trenching_single_2026-03-26_21-23-04/trenching_single_2026-03-26_21-23-04__scoop_05/` |
| 114 | + |
| 115 | +Why: |
| 116 | + |
| 117 | +- short repro bag |
| 118 | +- good when iterating quickly in Foxglove |
| 119 | + |
| 120 | +### Short mixed-quality comparison case |
| 121 | + |
| 122 | +Use: |
| 123 | + |
| 124 | +- `/home/lorenzo/mcap/dig3d_2026-03-26/analysis/single_scoop_splits_2026-03-28/trenching_single_2026-03-26_21-39-24/trenching_single_2026-03-26_21-39-24__scoop_03/` |
| 125 | + |
| 126 | +Why: |
| 127 | + |
| 128 | +- useful comparison case after the spike-heavy repro |
| 129 | +- also contains the pitch-jerk behavior investigated elsewhere |
| 130 | + |
| 131 | +## Fast guidance for future agents |
| 132 | + |
| 133 | +If the task is "change `elevation_mapping_cupy` and validate on real DIG data", |
| 134 | +point the agent to: |
| 135 | + |
| 136 | +- clean reference: |
| 137 | + - `/home/lorenzo/mcap/dig3d_2026-03-26/dig3d_real_run_2026-03-26_21-09-18/` |
| 138 | +- spike repro: |
| 139 | + - `/home/lorenzo/mcap/dig3d_2026-03-26/trenching_single_2026-03-26_21-23-04/` |
| 140 | +- short repro: |
| 141 | + - `/home/lorenzo/mcap/dig3d_2026-03-26/analysis/single_scoop_splits_2026-03-28/trenching_single_2026-03-26_21-23-04/trenching_single_2026-03-26_21-23-04__scoop_05/` |
| 142 | + |
| 143 | +The full-run split layout is the best target when the agent needs live replay |
| 144 | +with: |
| 145 | + |
| 146 | +- bag TF |
| 147 | +- raw lidar replay |
| 148 | +- `robot_self_filter` |
| 149 | +- local `elevation_mapping_cupy` |
| 150 | + |
| 151 | +The monolithic bags are better when the agent only needs one concise repro case. |
0 commit comments