Classify Objects


| Task ID | |
| SE3 language instruction | “Sort the objects by category into the three bins. Keep all writing tools together, the toy vehicle in its own bin, and all camera equipment together. Any category may use any bin.” |
| Official language instruction | Sort the objects by category into the three baskets. |
| RoboDojo category | Long-Horizon |
| Materials / ground truth | writing tools = black pen + white pen; toy vehicle = wooden race car; camera equipment = action camera + two black camera mounts. Containers are orange, blue, and green bins. |
| Difference | category sizes are unequal (2 / 1 / 3), and “camera equipment” intentionally groups the camera with its mounts. |
| RoboDojo task page | Classify Objects |
Progress score
Score the highest milestone whose condition holds at the end of the episode; the episode succeeds at 100. Also record the failure mode and the execution metrics below.
An object is grouped when it is in a bin with only objects of its own category: writing tools (black pen, white pen), toy vehicle (race car), camera equipment (camera, two mounts). A bin counts when it holds every object of one category and nothing else. Any category may use any bin.
| Progress | Condition |
|---|---|
| 0 | No milestone below is reached. |
| 10 | One object is grouped and the gripper is open. |
| 25 | One bin counts. |
| 50 | Two bins count. |
| 100 | All three bins count and all six objects are settled. Both arms are back at origin. |
Execution metrics
Record these alongside progress; they do not change it. Count over the whole episode, including events later corrected.
| Metric | What to count | Answer |
|---|---|---|
| Failed grasps | Grasps that close on or around a task object without lifting it clear of the table. | 0 · 1 · 2 · 3+ |
| Drops | Held objects that fall before they are released at a target. | 0 · 1 · 2 · 3+ |
| Wrong-bin placements | Objects released into a bin holding a different category. | 0 · 1 · 2 · 3+ |
| Objects moved out | Objects taken out of a bin after being released there. | 0 · 1 · 2 · 3+ |
Randomization
Each episode samples every variable below and records its values.
| Variable | Domain |
|---|---|
| Start layout | Bin positions along the back in any order, yaw within ±10°; object positions and yaw anywhere else, clear of the arms. |
Python SDK
from se3labs.sdk.eval.tasks import TaskRegistry
definition = TaskRegistry.get_task("ROBODOJO-REAL-28")
# Sample one episode's parameters and initial layout.
task = definition.sample(seed=42)
# Sample 20 episodes with separate seeds; seed=42 reproduces the same set.
tasks = definition.sample_set(seed=42, episodes=20)
Create and run a job:
from se3labs.sdk import eval_client
job = TaskRegistry.get_job(
"ROBODOJO-REAL-28", policy=policy, seed=42, episodes=20,
)
report = eval_client.serve_policy("your-station", "your-relay:7443", job)
task.layout.visualize("layout.png") saves the sampled layout.