Skip to content

Fix place_cups success condition to accept any N distinct cups - #299

Open
llm-learner wants to merge 2 commits into
stepjam:masterfrom
llm-learner:patch-2
Open

llm-learner wants to merge 2 commits into
stepjam:masterfrom
llm-learner:patch-2

Conversation

@llm-learner

Copy link
Copy Markdown

Problem

The instruction says "place 1 cup on the cup holder", without specifying which cup. However, _on_peg_conditions[:index + 1] requires mug0 for variation 0 and mug0 + mug1 for variation 1.

In place_cups/variation0/episodes/episode2 (all_variations/episodes/episode13), mug2 is placed on the holder and released. The sensor detects it, the gripper is empty, but the original success condition remains false for 200 physics steps (~10 seconds).

The video uses the PerAct fork and CoppeliaSim 4.1.0, with the original success condition. The same predicate is present in upstream 02720bba; a full-scene integration test against current upstream has not been run.

Fix

Check any N distinct cups using the existing ConditionSet and OrConditions. Keep the current sensors and NothingGrasped requirement. Multiple sensors detecting one cup still count as one cup. Variation 2 is unchanged.

Test

The regression test covers all 3 variations, 512 cup/sensor detection matrices, and both gripper states: 3,072 checks. The original predicate fails 161 checks; the corrected predicate passes all checks. These are mocked-sensor unit tests.

中文说明

指令只要求杯子数量,没有指定编号,但原判据要求固定的前 N 个杯子。视频中放好的是 mug2:传感器检测到它、夹爪已松开,但原环境仍判失败。视频来自 PerAct 环境;上游源码存在相同判据,尚未进行当前上游完整场景的集成测试。

修复改为检查任意 N 个不同杯子,保留原传感器和夹爪为空条件,不重复计数同一杯子。回归测试覆盖3,072种状态,原判据161项失败,修正后全部通过。该修改会影响 variation 0/1 的成功率统计,评测时应注明所用版本。

place_cups_test20_original_bug_zh_en.mp4

PerAct counterpart: MohitShridhar#3

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant