Skip to content

Transfer

What it does

Picks a compatible (source container, food item, destination container) triple from the precomputed compatibility matrix and places source + destination side-by-side on the table with the food settled into the source's cavity. The robot's task is to move the food from source to destination without touching the food directly or letting it fall to the floor.

Compatibility data lives under maniguard/task_generation/utils/food_transfer_pipeline/transfer_compatibility.json and is built offline by maniguard.task_generation.utils.food_transfer_pipeline.build_transfer_compatibility; runtime inverts it into food→containers indexes.

Gate checks

Shared base gate: robot/target poses finite, robot base near floor, mount collision-free, target inside reach band.

Pipeline-specific: - The food must be OnTop or Inside the source container after the placement / settle phase. If it has not entered the source cavity (e.g. it sits next to the source), the gate fails.

LTL constraints

Generated by maniguard.utils.task_spec.generate_transfer_ltl_safety_json over the food synsets:

  • G (!food_touched_by_agent) — the agent must not directly touch the food.
  • G (!food_dropped) — food must not fall to the floor.

Source

maniguard/task_generation/transfer_scene_pipeline.py