RoboMME: Benchmarking and Understanding Memory for Robotic Generalist Policies
Organizations: University of Michigan · Stanford University · Figure AI
Abstract
Memory is critical for long-horizon and history-dependent robotic manipulation. Such tasks often involve counting repeated actions or manipulating objects that become temporarily occluded. Recent vision-language-action (VLA) models have begun to incorporate memory mechanisms; however, their evaluations remain confined to narrow, non-standardized settings. This limits systematic understanding, comparison, and progress measurement. To address these challenges, we introduce RoboMME: a large-scale standardized benchmark for evaluating and advancing VLA models in long-horizon, history-dependent scenarios. Our benchmark comprises 16 manipulation tasks constructed under a carefully designed taxonomy that evaluates temporal, spatial, object, and procedural memory. We further develop a suite of 14 memory-augmented VLA variants built on the π0.5 backbone to systematically explore different memory representations across multiple integration strategies. Experimental results show that the effectiveness of memory representations is highly task-dependent, with each design offering distinct advantages and limitations across different tasks. Videos and code can be found at our website https://robomme.github.io.
Figures & tables
| Task Name | Memory Type | Avg. #Steps | Task Challenge | Brief Description |
| Task Suite: Counting | ||||
| PickXTimes | T | 538 | count | Pick and place a cube of a given color for a specified number of repetitions. |
| BinFill | T | 604 | count | Place a specified number of cubes of a given color into the bin as the cubes appear over time. |
| SwingXTimes | T | 435 | count, swing-motion | Swing a cube back and forth between two targets for a specified number of cycles. |
| StopCube | T | 317 | count, time-critical | Press a button exactly when a moving cube reaches the target at a specified occurrence. |
| Dataset | Environment Complexity | Condition | Annotation | Memory Type | Total #Tasks | Total #Demos | Avg. #Steps | ||||
| Non-Markov | Partial Obs. | Dynamic | Vid. | Lang. | Subgoal | Keyframe | |||||
| RLBench18 [ 21 , 39 ] | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✓ | T | 18 | 1,800 | 137 |
| CALVIN [ 34 ] | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | T | 34 | 1,000 | 584 |
| LIBERO [ 31 ] | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | T | 130 | 6,500 | 162 |
| VLABench [ 50 ] | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | T | 100 | 1,600 | 115 |
| RoboCerebra [ 19 ] | ✗ | ✗ | ✓ | ✗ | ✓ | ✓ | ✗ | T | 100 | 1,000 | 2,972 |
| Method | Counting | Permanence | Reference | Imitation | AVG | |||||||||||||
| Bin Fill | Pick Xtimes | Swing Xtimes | Stop Cube | Video Umsk | Button Umsk | Video UmskS | Button UmskS | Pick HighL | Video Repick | Video PlcBtn | Video PlcOrd | Move Cube | Insert Peg | Pattern Lock | Route Stick | |||
| Human Performance | 96.00 | 100.0 | 80.00 | 78.00 | 90.00 | 92.00 | 92.00 | 90.00 | 92.00 | 92.00 | 98.00 | 90.00 | 90.00 | 98.00 | 84.00 | 86.00 | 90.50 | |
| MME-VLA w/ Symbolic Memory | ||||||||||||||||||
| SimpleSG | Oracle | 85.78 | 99.78 | 100.0 | 44.67 | 33.11 | 22.00 | 15.56 | 15.56 | 44.00 | 27.78 | 31.33 | 26.00 | 87.33 | 10.00 | 95.33 | 55.11 | 49.58 |
| GroundSG | Oracle | 85.78 | 100.0 | 100.0 | 49.67 | 98.78 | 95.00 | 99.22 | 80.22 | 83.33 | 97.33 | 100.0 | 100.0 | 87.78 | 15.56 | 97.00 | 55.56 | 84.08 |
| Gemini | 46.00 | 63.00 | 45.00 | 2.00 | 29.00 | 9.00 | 14.00 | 2.00 | 20.00 | 15.00 | 26.00 | 29.00 | 61.00 | 4.00 | 7.00 | 0.00 | 23.25 | |
| Method | Put Fruits | Track Cube | Repick Block | Draw Pattern | Total |
| 2/10 | 1/10 | 1/10 | 0/10 | 4/40 | |
| GroundSG + QwenVL | 9/10 | 3/10 | 5/10 | 2/10 | 19/40 |
| FrameSamp + Modul | 6/10 | 5/10 | 6/10 | 8/10 | 25/40 |
Appendix figures & tables51 assets
Supplementary material from the paper’s appendix.
Appendix
| Hyperparameter | Value |
| Batch Size | 48 |
| Warmup Ratio | 0.05 |
| LR | |
| Train Epochs | 2 |
| LoRA | rank 16, alpha 32 |
| DeepSpeed | ZeRO-2 |
| Hyperparameter | Value |
| Base model | base |
| Batch size | 64 for symbolic/perceptual, 16 for recurrent |
| Action horizon | 20 |
| Action space | Joint-space |
| Proprioception | False |
| Total steps | 80,000 |
| Hyperparameters | SAM2Act Training | SAM2Act+ Training |
| Batch size | 48 | 80 |
| LR | ||
| Optimizer | LAMB | LAMB |
| LR schedule | warmup + cosine | warmup + cosine |
| Weight decay | ||
| Warmup steps | 2000 | 2000 |
| Hyperparameter | Value |
| Base model | OpenVLA-7B (LoRA, rank ) |
| Batch size | 32 (symbolic), 24 (perceptual) |
| Action head | L1 regression, parallel decoding |
| Action horizon | 20 |
| Action space | Joint-space |
| Proprioception | True |
| Hyperparameter | Value |
| Base VLM | Prismatic VLM |
| Batch size | |
| Total steps | |
| Action head | DiT-L diffusion (depth , width , heads) |
| Action horizon | ( current future) |
| Action space | EEF |
| Hyperparameter | Value |
| Model | 1D U-Net (down dims ) |
| Visual encoder | ResNet-18 + SpatialSoftmax |
| Batch size | , single GPU |
| Total steps | |
| Conditioning | 2 cameras + -D state + CLIP ViT-B/32 text (frozen) |
| Diffusion | DDPM, steps, cosine, -pred, clip sample |
| Method | Counting | Permanence | Reference | Imitation | AVG | |||||||||||||
| Bin Fill | Pick Xtimes | Swing Xtimes | Stop Cube | Video Umsk | Button Umsk | Video UmskS | Button UmskS | Pick HighL | Video Repick | Video PlcBtn | Video PlcOrd | Move Cube | Insert Peg | Draw Pattern | Route Stick | |||
| Human | 96.00 | 100.0 | 80.00 | 78.00 | 90.00 | 92.00 | 92.00 | 90.00 | 92.00 | 92.00 | 98.00 | 90.00 | 90.00 | 98.00 | 84.00 | 86.00 | 90.50 | |
| Gemini-2.5-Pro | 78.00 | 80.00 | 58.00 | 32.00 | 86.00 | 82.00 | 18.00 | 12.00 | 78.00 | 28.00 | 50.00 | 60.00 | 66.00 | 32.00 | 4.00 | 2.00 | 47.88 | |
| GPT4o | 50.00 | 58.00 | 32.00 | 18.00 | 32.00 | 60.00 | 28.00 | 34.00 | 30.00 | 14.00 | 18.00 | 20.00 | 70.00 | 18.00 | 6.00 | 2.00 | 30.63 | |
| Qwen3-VL-32B | 54.00 | 60.00 | 54.00 | 32.00 | 26.00 | 28.00 | 22.00 | 14.00 | 14.00 | 32.00 | 26.00 | 14.00 | 66.00 | 2.00 | 2.00 | 0.00 | 27.88 | |
| Representation | Policy | Integration/VLM | Counting | Permanence | Reference | Imitation | AVG |
| No Memory ( ) | – | – | 28.78 | 17.00 | 17.17 | 8.78 | 17.93 ± 0.61 |
| Symbolic | SimpleSG | Oracle | 82.56 | 21.56 | 32.28 | 61.94 | 49.58 ± 1.33 |
| GroundSG | Oracle | 83.86 | 93.31 | 95.17 | 63.98 | 84.08 ± 1.86 | |
| Gemini | 39.00 | 13.50 | 22.50 | 18.00 | 23.25 ± 0.35 | ||
| SimpleSG | QwenVL | 44.61 | 19.61 | 25.22 | 26.56 | 29.00 ± 0.39 | |
| Gemini | 12.75 | 15.75 | 11.25 | 6.5 | 11.56 ± 0.97 |
| Category | Functional Requirement | Tasks |
| Motion-Centric | Sustained trajectory tracking and structured continuous motions (e.g., linear, circular, insertion, swinging) | PatternLock , RouteStick , SwingXtimes , InsertPeg |
| Time-Sensitive | Precise temporal coordination; success depends critically on acting at the correct moment | StopCube |
| Short-Horizon Video Reasoning | Grounding objects from short video history in mostly static or mildly dynamic scenes | VideoUnmask , VideoRepick , VideoUnmaskSwap |
| Long-Horizon Video Reasoning | Integrating information across extended temporal sequences (often steps) before acting | VideoPlaceButton , VideoPlaceOrder |
| Dynamic Online Scene-Change | Continual belief updates and online adaptation under concurrent environmental changes during execution | ButtonUnmask , ButtonUnmaskSwap , PickHighlight |
| Event-Salient | progress is marked by visually salient, discrete events that clearly signal subtask completion or manipulation intent | PickXtimes , BinFill , MoveCube |
| Representation | Policy | Integration/ VLM Type | Motion- Centric | Time- Sensitive | Short- Horizon | Long- Horizon | Scene- Change | Event- Salient |
| No Memory ( ) | 11.17 | 6.67 | 16.39 | 28.45 | 13.41 | 32.96 | ||
| Symbolic | SimpleSG | Gemini | 14.00 | 2.00 | 19.33 | 27.50 | 10.33 | 56.67 |
| QwenVL | 7.34 | 0.44 | 24.96 | 29.22 | 15.33 | 84.96 | ||
| GroundSG | Gemini | 3.25 | 3.00 | 22.00 | 9.50 | 7.67 | 20.33 | |
| QwenVL | 5.83 | 0.00 | 48.22 | 42.89 | 17.70 | 72.08 | ||
| Perceptual | TokenDrop | Context | 32.84 | 3.11 | 25.93 | 28.22 | 22.74 | 71.70 |
| Representation | Policy | Integration/ VLM Type | Counting | Permanence | ||||||
| BinFill | PickXTimes | SwingXTimes | StopCube | VideoUnmask | ButtonUnmask | VideoUnmaskSwap | ButtonUnmaskSwap | |||
| Symbolic | SimpleSG | Oracle | 85.78 ± 2.91 | 99.78 ± 0.67 | 100.0 ± 0.00 | 44.67 ± 22.25 | 33.11 ± 2.67 | 22.00 ± 3.06 | 15.56 ± 2.60 | 15.56 ± 3.84 |
| GroundSG | Oracle | 85.78 ± 1.67 | 100.00 ± 0.00 | 100.0 ± 0.00 | 49.67 ± 20.02 | 98.78 ± 1.04 | 95.00 ± 2.83 | 99.22 ± 1.04 | 80.22 ± 15.69 | |
| Symbolic | SimpleSG | Gemini | 46.00 ± 7.14 | 63.00 ± 7.07 | 45.00 ± 4.24 | 2.00 ± 0.00 | 29.00 ± 1.41 | 9.00 ± 7.07 | 14.00 ± 2.83 | 2.00 ± 2.83 |
| SimpleSG | QwenVL | 77.56 ± 2.19 | 95.33 ± 2.00 | 5.11 ± 1.45 | 0.44 ± 0.88 | 34.22 ± 3.53 | 19.33 ± 8.31 | 15.33 ± 2.83 | 9.56 ± 4.56 | |
| GroundSG | Gemini | 26.00 ± 8.49 | 18.00 ± 0.00 | 4.00 ± 0.00 | 3.00 ± 1.41 | 36.00 ± 0.00 | 14.00 ± 2.83 | 13.00 ± 1.41 | 0.00 ± 0.00 | |
| Memory Tokens | FrameSamp + Modul | TokenDrop + Modul |
| 64 | 30.42 | 18.11 |
| 128 | 36.54 | 32.76 |
| 256 | 42.90 | 36.36 |
| 512 | 44.51 | 38.02 |
| 1024 | 45.87 | 40.17 |
| Method | Memory | Observation | Language | Success |
| FrameSamp + Context | 1.5 / 8.9 | 60.2 / 84.9 | 38.3 / 63.9 | 30.68 |
| TokenDrop + Context | 4.8 / 17.0 | 45.4 / 72.9 | 49.2 / 94.8 | 34.50 |
| TokenDrop + Expert | 0.7 / 12.7 | 47.5 / 71.9 | 51.8 / 97.8 | 34.86 |
| FrameSamp + Expert | 1.3 / 21.8 | 46.0 / 68.2 | 52.7 / 96.4 | 36.25 |
| Method | Scale | Bias | Success |
| TokenDrop + Modul | 38.04 | ||
| FrameSamp + Modul | 44.51 |
| Difficulty | #Colors | #Total Cubes | #Goal Cubes |
| Easy | 1 | 4–6 | 1 |
| Medium | 2 | 8–10 | 1–2 |
| Hard | 3 | 10–12 | 2–3 |
| Difficulty | #Total Cubes | #Repetitions |
| Easy | 1 | 1–3 |
| Medium | 3 (2 distractors) | 1–3 |
| Hard | 3 (2 distractors) | 4–5 |
| Difficulty | #Total Cubes | #Repetitions |
| Easy | 1 | 1–3 |
| Medium | 3 (2 distractors) | 1–2 |
| Hard | 3 (2 distractors) | 3 |
| Difficulty | #Passes | Move Speed |
| Easy | 2–3 | slow/medium/fast |
| Medium | 3–4 | slow/medium/fast |
| Hard | 4–5 | slow/medium/fast |
| Difficulty | #Total Containers | #Goal Containers | #Total Cubes |
| Easy | 3 | 1 | 3 (red, green, blue) |
| Medium | 5 | 1 | 3 (red, green, blue) |
| Hard | 10 | 2 | 3 (red, green, blue) |
| Difficulty | #Total Containers | #Goal Containers | #Total Cubes |
| Easy | 3 | 1 | 3 (red, green, blue) |
| Medium | 5 | 1 | 3 (red, green, blue) |
| Hard | 15 | 2 | 3 (red, green, blue) |
| Difficulty | #Total Containers | #Swap Times | #Goal Containers | #Total Cubes |
| Easy | 3 | 1–2 | 1–2 | 3 (red, green, blue) |
| Medium | 4 | 1–2 | 1 | 3 (red, green, blue) |
| Hard | 4 | 2–3 | 2 | 3 (red, green, blue) |
| Difficulty | #Total Containers | #Goal Containers | #Swap Times | #Total Cubes |
| Easy | 3 | 1–2 | 1–2 | 3 (red, green, blue) |
| Medium | 4 | 1 | 1–2 | 3 (red, green, blue) |
| Hard | 4 | 2 | 2–3 | 3 (red, green, blue) |
| Difficulty | #Total Cubes | #Goal Cubes |
| Easy | 3 | 1 |
| Medium | 4 | 2 |
| Hard | 6 (cluster) | 3 |
| Difficulty | #Cubes | #Swap Times | #Repetition |
| Easy | 3 (same color) | 1–2 | 1–3 |
| Medium | 3 (same color) | 2–3 | 1–3 |
| Hard | 15 (different colors, clutter scene) | 0 | 1–3 |
| Difficulty | #Cubes | #Targets | Target Swapping |
| Easy | 1 | 3 | No |
| Medium | 3 | 4 | No |
| Hard | 3 | 4 | Yes |
| Difficulty | #Cubes | #Targets | Target Swapping |
| Easy | 1 | 4 | No |
| Medium | 3 | 4 | No |
| Hard | 3 | 4 | Yes |
| Difficulty | Grid Size | Pattern Length |
| Easy | 3 3 | 2–4 |
| Medium | 4 4 | 3–5 |
| Hard | 5 5 | 4–8 |
| Difficulty | Path Length | Backtracking |
| Easy | 2–3 | No |
| Medium | 4–5 | No |
| Hard | 4–7 | Yes |