Bimanual task suites#
This page lists the dual-arm (BiMESA) benchmark task suites defined in mesa/task_suites/task_sets.py. For the single-arm suites, see task suites.
BiMESA-57 training set#
BiMESA is the dual-arm counterpart to MESA, built on a two-arm reverse-mounted YAM platform. The BiMESA-57 training set contains 57 in-distribution tasks organized into three skill blocks:
Block |
Skill |
Tasks |
Generation |
|---|---|---|---|
A |
Spatial pick-and-place |
27 |
MESA-Gen (aligned combos), teleop (cross combos) |
B |
Cross-arm handoff |
17 |
Teleop |
C |
Single-arm articulated |
13 |
MESA-Gen |
MESA-Gen synthesizes only the aligned Block A combos and all of Block C. Cross-arm handoffs (Block B) and the cross combos of Block A are collected by teleoperation — MESA-Gen does not generate handoffs.
The bimesa-id suite evaluates these same 57 tasks from unseen initial states. The remaining four suites each hold out one generalization axis.
BiMESA-ID (bimesa-id)#
The 57 in-distribution training tasks, evaluated from unseen initial states. Block A tasks carry a __<combo> suffix, Block B a handoff_ prefix, and Block C the open_and_ / _and_close articulated grammar.
Task ID |
Natural Language Instruction |
|---|---|
apple_tray_on__right_right |
put the apple on the tray |
onion_tray_on__right_right |
put the onion on the tray |
lime_tray_on__left_left |
put the lime on the tray |
tangerine_tray_on__right_right |
put the tangerine on the tray |
bell_pepper_tray_on__right_right |
put the bell pepper on the tray |
candle_tray_on__right_right |
put the candle on the tray |
coffee_cup_tray_on__right_right |
put the coffee cup on the tray |
lemon_plate_on__right_right |
put the lemon on the plate |
orange_plate_on__right_right |
put the orange on the plate |
mango_plate_on__left_left |
put the mango on the plate |
kiwi_plate_on__right_right |
put the kiwi on the plate |
beer_plate_on__left_left |
put the beer on the plate |
lime_bowl_on__right_right |
put the lime in the bowl |
mushroom_bowl_on__right_right |
put the mushroom in the bowl |
apple_bowl_on__left_left |
put the apple in the bowl |
jam_basket_contain_region__right_right |
put the jam in the basket |
yogurt_basket_contain_region__right_right |
put the yogurt in the basket |
mango_basket_contain_region__right_right |
put the mango in the basket |
bell_pepper_basket_contain_region__right_right |
put the bell pepper in the basket |
bottled_drink_basket_contain_region__left_left |
put the bottled drink in the basket |
orange_cutting_board_on__right_right |
put the orange on the cutting board |
kiwi_cutting_board_on__right_right |
put the kiwi on the cutting board |
tangerine_cutting_board_on__left_left |
put the tangerine on the cutting board |
onion_cutting_board_on__right_right |
put the onion on the cutting board |
garlic_pan_on__right_right |
put the garlic in the pan |
onion_pan_on__left_left |
put the onion in the pan |
can_pan_on__left_left |
put the can in the pan |
handoff_water_bottle_tray_on |
put the water bottle on the tray |
handoff_beer_plate_on |
put the beer on the plate |
handoff_wine_cutting_board_on |
put the wine on the cutting board |
handoff_bottled_water_basket_contain_region |
put the bottled water in the basket |
handoff_can_pan_on |
put the can in the pan |
handoff_jam_bowl_drainer_right_region |
put the jam in the right side of the dish drainer |
handoff_bottled_drink_basket_contain_region |
put the bottled drink in the basket |
handoff_coffee_cup_tray_on |
put the coffee cup on the tray |
handoff_spray_basket_contain_region |
put the spray in the basket |
handoff_milk_tray_on |
put the milk on the tray |
handoff_candle_tray_on |
put the candle on the tray |
handoff_alcohol_basket_contain_region |
put the alcohol in the basket |
handoff_jug_basket_contain_region |
put the jug in the basket |
handoff_ketchup_plate_on |
put the ketchup on the plate |
handoff_condiment_plate_on |
put the condiment on the plate |
handoff_soap_dispenser_tray_on |
put the soap dispenser on the tray |
handoff_yogurt_bowl_on |
put the yogurt in the bowl |
open_and_candle_slide_cabinet_contain_region |
open the slide cabinet and put the candle in it |
open_and_book_slide_cabinet_contain_region |
open the slide cabinet and put the book in it |
open_and_can_slide_cabinet_contain_region |
open the slide cabinet and put the can in it |
open_and_beer_slide_cabinet_contain_region |
open the slide cabinet and put the beer in it |
open_and_can_sliding_top_box_contain_region |
open the box and put the can in it |
open_and_apple_sliding_top_box_contain_region |
open the box and put the apple in it |
beer_slide_cabinet_contain_region_and_close |
put the beer in the slide cabinet and close it |
mango_slide_cabinet_contain_region_and_close |
put the mango in the slide cabinet and close it |
apple_sliding_top_box_contain_region_and_close |
put the apple in the box and close it |
lemon_sliding_top_box_contain_region_and_close |
put the lemon in the box and close it |
open_and_mango_sliding_top_box_contain_region_and_close |
open the box and put the mango in it and close it |
open_and_can_sliding_top_box_contain_region_and_close |
open the box and put the can in it and close it |
open_and_orange_slide_cabinet_contain_region_and_close |
open the slide cabinet and put the orange in it and close it |
BiMESA-Spatial (bimesa-spatial)#
38 tasks holding out a spatial configuration not seen in training: 27 held-out arm/side combos (Block A), 8 reversed handoff directions (Block B), and 3 held-out fixture sides (Block C).
Task ID |
Natural Language Instruction |
|---|---|
apple_tray_on__left_left |
put the apple on the tray |
onion_tray_on__pick_left_dest_right |
put the onion on the tray |
lime_tray_on__right_right |
put the lime on the tray |
tangerine_tray_on__pick_right_dest_left |
put the tangerine on the tray |
bell_pepper_tray_on__left_left |
put the bell pepper on the tray |
candle_tray_on__pick_right_dest_left |
put the candle on the tray |
coffee_cup_tray_on__pick_right_dest_left |
put the coffee cup on the tray |
lemon_plate_on__pick_right_dest_left |
put the lemon on the plate |
orange_plate_on__pick_left_dest_right |
put the orange on the plate |
mango_plate_on__right_right |
put the mango on the plate |
kiwi_plate_on__pick_right_dest_left |
put the kiwi on the plate |
beer_plate_on__right_right |
put the beer on the plate |
lime_bowl_on__left_left |
put the lime in the bowl |
mushroom_bowl_on__pick_left_dest_right |
put the mushroom in the bowl |
apple_bowl_on__right_right |
put the apple in the bowl |
jam_basket_contain_region__pick_left_dest_right |
put the jam in the basket |
yogurt_basket_contain_region__pick_right_dest_left |
put the yogurt in the basket |
mango_basket_contain_region__left_left |
put the mango in the basket |
bell_pepper_basket_contain_region__pick_left_dest_right |
put the bell pepper in the basket |
bottled_drink_basket_contain_region__right_right |
put the bottled drink in the basket |
orange_cutting_board_on__left_left |
put the orange on the cutting board |
kiwi_cutting_board_on__pick_left_dest_right |
put the kiwi on the cutting board |
tangerine_cutting_board_on__right_right |
put the tangerine on the cutting board |
onion_cutting_board_on__pick_right_dest_left |
put the onion on the cutting board |
garlic_pan_on__pick_left_dest_right |
put the garlic in the pan |
onion_pan_on__right_right |
put the onion in the pan |
can_pan_on__right_right |
put the can in the pan |
handoff_water_bottle_tray_on__pick_right_dest_left |
put the water bottle on the tray |
handoff_beer_plate_on__pick_right_dest_left |
put the beer on the plate |
handoff_wine_cutting_board_on__pick_right_dest_left |
put the wine on the cutting board |
handoff_can_pan_on__pick_right_dest_left |
put the can in the pan |
handoff_milk_tray_on__pick_left_dest_right |
put the milk on the tray |
handoff_jug_basket_contain_region__pick_left_dest_right |
put the jug in the basket |
handoff_condiment_plate_on__pick_left_dest_right |
put the condiment on the plate |
handoff_yogurt_bowl_on__pick_left_dest_right |
put the yogurt in the bowl |
open_and_candle_slide_cabinet_contain_region__pick_right_fixture_left |
open the slide cabinet and put the candle in it |
beer_slide_cabinet_contain_region_and_close__pick_left_fixture_right |
put the beer in the slide cabinet and close it |
open_and_orange_slide_cabinet_contain_region_and_close__pick_right_fixture_left |
open the slide cabinet and put the orange in it and close it |
BiMESA-Instance (bimesa-instance)#
18 tasks that swap a trained pick or destination object for a held-out mesh of the same instance (marked _ai): 9 pick-and-place, 5 handoff, 4 articulated.
Task ID |
Natural Language Instruction |
|---|---|
apple_ai_tray_ai_on |
put the apple on the tray |
orange_ai_plate_ai_on |
put the orange on the plate |
mushroom_ai_bowl_on |
put the mushroom in the bowl |
jam_ai_basket_contain_region |
put the jam in the basket |
apple_ai_bowl_on |
put the apple in the bowl |
bell_pepper_ai_basket_contain_region |
put the bell pepper in the basket |
orange_ai_cutting_board_on |
put the orange on the cutting board |
beer_ai_plate_ai_on |
put the beer on the plate |
bell_pepper_ai_tray_on |
put the bell pepper on the tray |
handoff_beer_ai_plate_ai_on |
put the beer on the plate |
handoff_jam_ai_bowl_drainer_right_region |
put the jam in the right side of the dish drainer |
handoff_can_pan_ai_on |
put the can in the pan |
handoff_water_bottle_tray_ai_on |
put the water bottle on the tray |
handoff_candle_tray_ai_on |
put the candle on the tray |
open_and_apple_ai_sliding_top_box_contain_region |
open the box and put the apple in it |
open_and_beer_ai_slide_cabinet_contain_region |
open the slide cabinet and put the beer in it |
open_and_orange_ai_slide_cabinet_contain_region_and_close |
open the slide cabinet and put the orange in it and close it |
apple_ai_sliding_top_box_contain_region_and_close |
put the apple in the box and close it |
BiMESA-Object (bimesa-object)#
17 tasks whose pick object comes from a category not seen in training: 10 pick-and-place, 3 handoff, 4 articulated.
Task ID |
Natural Language Instruction |
|---|---|
pear_pot_on |
put the pear in the pot |
cupcake_basket_contain_region |
put the cupcake in the basket |
beet_ai_pot_on |
put the beet in the pot |
brussel_sprout_ai_pan_on |
put the brussel sprout in the pan |
chili_pepper_ai_bowl_on |
put the chili pepper in the bowl |
ginger_ai_cutting_board_on |
put the ginger on the cutting board |
grapes_ai_basket_contain_region |
put the grapes in the basket |
radish_ai_cutting_board_on |
put the radish on the cutting board |
sausage_ai_baking_sheet_ai_on |
put the sausage on the baking sheet |
scone_ai_plate_on |
put the scone on the plate |
handoff_thermos_ai_basket_contain_region |
put the thermos in the basket |
handoff_olive_oil_bottle_ai_tray_on |
put the olive oil bottle on the tray |
handoff_pomegranate_ai_bowl_on |
put the pomegranate in the bowl |
open_and_pear_slide_cabinet_contain_region |
open the slide cabinet and put the pear in it |
open_and_cupcake_sliding_top_box_contain_region |
open the box and put the cupcake in it |
open_and_potato_ai_slide_cabinet_contain_region |
open the slide cabinet and put the potato in it |
open_and_grapes_ai_sliding_top_box_contain_region_and_close |
open the box and put the grapes in it and close it |
BiMESA-Composite (bimesa-composite)#
15 tasks composing trained primitives in unseen ways: 5 pick-and-place, 4 articulated pairs, 3 two-object placements, and 3 open-place-close chains.
Task ID |
Natural Language Instruction |
|---|---|
apple_plate_on |
put the apple on the plate |
mushroom_tray_on |
put the mushroom on the tray |
onion_bowl_on |
put the onion in the bowl |
carrot_pan_on |
put the carrot in the pan |
lemon_cutting_board_on |
put the lemon on the cutting board |
open_and_beer_sliding_top_box_contain_region |
open the box and put the beer in it |
open_and_jam_slide_cabinet_contain_region |
open the slide cabinet and put the jam in it |
open_and_apple_sliding_top_box_contain_region_and_close |
open the box and put the apple in it and close it |
open_and_mushroom_slide_cabinet_contain_region_and_close |
open the slide cabinet and put the mushroom in it and close it |
lemon_lime_basket_contain_region |
put the lemon and the lime in the basket |
broccoli_mushroom_cutting_board_on |
put the broccoli and the mushroom on the cutting board |
fish_garlic_pan_on |
put the fish and the garlic in the pan |
open_and_lemon_sliding_top_box_contain_region_and_close |
open the box and put the lemon in it and close it |
open_and_beer_slide_cabinet_contain_region_and_close |
open the slide cabinet and put the beer in it and close it |
open_and_book_slide_cabinet_contain_region_and_close |
open the slide cabinet and put the book in it and close it |
Task ID Naming Conventions#
Bimanual task IDs reuse the single-arm pick-and-place and articulated grammar for the object/target/region root, with two dual-arm additions.
Spatial combo suffix (Block A pick-and-place). A __<pick>_<dest> suffix records which arm picks and which side the destination is on:
apple_tray_on__right_right→ the right arm picks the apple, destination tray on the right.onion_tray_on__pick_left_dest_right→ the left arm picks the onion, destination tray on the right.
__right_right and __left_left are aligned combos, where a single arm performs the whole task; __pick_left_dest_right and __pick_right_dest_left are cross combos. For articulated Block C tasks, __pick_<side>_fixture_<side> records the picking arm and the side the fixture sits on.
Handoff prefix (Block B). A handoff_ prefix marks a cross-arm handoff: one arm picks the object and passes it to the other, which places it. A __pick_<side>_dest_<side> suffix, when present, fixes the handoff direction.
handoff_beer_plate_on→ pick the beer with one arm, hand it across, and place it on the plate.
As in single-arm MESA, an _ai tag on an object name marks a held-out mesh used for the instance and category generalization suites (e.g. apple_ai_tray_ai_on).