Views
No views yet
1import numpy as np
2
3from molmobot_spoc.eval.config.franka_eval_config import FR3PickPlaceMultitaskEvalConfig
4from molmobot_spoc.eval.spoc_policy import SPOCModelPolicy
5
6
7config = FR3PickPlaceMultitaskEvalConfig()
8policy = SPOCModelPolicy(config, config.task_type)
9
10obs = {
11 "exo_camera_1": np.zeros((576, 768, 3), dtype=np.uint8),
12 "wrist_camera": np.zeros((576, 768, 3), dtype=np.uint8),
13 "qpos": {
14 "arm": np.zeros((7,), dtype=np.float32),
15 "gripper": np.zeros((1,), dtype=np.float32),
16 },
17 "goal": "Pick up the <OBJECT_NAME> and place it in the <RECEPTACLE_NAME>",
18 "object_image_points": {
19 "pickup_obj": {
20 "exo_camera_1": {
21 "points": [[0.45, 0.52]]
22 }
23 },
24 "place_receptacle": {
25 "exo_camera_1": {
26 "points": [[0.55, 0.48]]
27 }
28 }
29 }
30}
31
32# NOTE: get_action saves an internal buffer with the chunk and returns actions 1 by 1.
33# To get the whole chunk, use model_output_to_action.
34action = policy.get_action(obs)
35print(action)@misc{deshpande2026molmobot,
title={MolmoB0T: Large-Scale Simulation Enables Zero-Shot Manipulation},
author={Abhay Deshpande and Maya Guru and Rose Hendrix and Snehal Jauhri and Ainaz Eftekhar and Rohun Tripathi and Max Argus and Jordi Salvador and Haoquan Fang and Matthew Wallingford and Wilbert Pumacay and Yejin Kim and Quinn Pfeifer and Ying-Chun Lee and Piper Wolters and Omar Rayyan and Mingtong Zhang and Jiafei Duan and Karen Farley and Winson Han and Eli Vanderbilt and Dieter Fox and Ali Farhadi and Georgia Chalvatzaki and Dhruv Shah and Ranjay Krishna},
year={2026},
eprint={2603.16861},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2603.16861},
}