Draft: Add order-does-not-matter composite tasks#677
Conversation
…d/order_does_not_matter_composite_task_prototype
…d/order_does_not_matter_composite_task_prototype
…d/order_does_not_matter_composite_task_prototype
…d/order_does_not_matter_composite_task_prototype
…d/order_does_not_matter_composite_task_prototype
…d/order_does_not_matter_composite_task_prototype
…d/composite_task_v03
There was a problem hiding this comment.
🤖 Isaac Lab Review Bot — PR #677
Title: Peterd/composite task v03
Author: @peterd-NV
Files Changed: 5 (composite_task_base.py, sequential_task_base.py tests, new composite task tests, environment config)
Summary
This PR introduces a CompositeTaskBase class that generalizes composite task handling where subtask completion order does not matter. The existing SequentialTaskBase is refactored to inherit from this new base class, preserving its sequential ordering semantics through method overrides.
📦 Update (5ceddde)
Changes since last review (43f9dac → 5ceddde):
-
Type annotation fixes in
composite_task_base.py:- Changed return types from
configclasstoAnyforget_scene_cfg(),make_composite_task_events_cfg(),get_events_cfg(),make_composite_task_termination_cfg(), andget_termination_cfg() - Added
from typing import Anyimport - Minor assertion message change for clarity
- Changed return types from
-
New test file
test_composite_open_door.py(379 lines):- Comprehensive tests for composite door-opening tasks with microwaves
- Tests order-independence (both subtask completion orders work)
- Tests multi-env support (2 envs)
- Tests environment reset behavior when composite task completes
- Good test coverage for the new
CompositeTaskBase
-
New test file
test_composite_task_base.py(164 lines):- Unit tests for
add_suffix_configclass_transformandremove_configclass_transform - Tests moved from
test_sequential_task_base.pyto the correct location
- Unit tests for
-
Refactored
test_sequential_task_base.py:- Removed configclass transform tests (moved to composite base tests)
- Added proper sequential task behavior tests:
test_sequential_success_advances_in_order— verifies subtask N+1 cannot succeed until N hastest_sequential_success_latches— verifies once success is latched it stays Truetest_sequential_desired_subtask_success_state— verifies desired state pattern matchingtest_sequential_reset_clears_state_and_index— verifies reset behavior per-env
-
Environment config update in
gr1_put_and_close_door_environment.py:- Changed
RANDOMIZATION_HALF_RANGE_X_Mfrom 0.0 to 0.03 - Changed
RANDOMIZATION_HALF_RANGE_Y_Mfrom 0.0 to 0.01 - Enables position randomization for training robustness
- Changed
✅ Assessment
The changes look good:
- Type annotation fixes resolve potential type checking issues with
configclassreturn types - New tests provide excellent coverage for composite task behavior
- Sequential task tests now properly verify the sequential ordering semantics
- Randomization config change is a reasonable training improvement
LGTM 👍
Summary
Adds a new CompositeTaskBase class for generic order does not matter composite tasks.
Refactor SequentialTaskBase to inherit from CompositeTaskBase as special case of composite tasks.
Detailed description