Add coordinated dual-arm atomic actions#323
Open
skywhite1024 wants to merge 43 commits into
Open
Conversation
Captures the review of embodichain/lab/sim/atomic_actions and the proposed typed-targets / WorldState / TrajectoryBuilder redesign. Co-Authored-By: Claude <noreply@anthropic.com>
13-task TDD plan implementing the design spec at docs/superpowers/specs/2026-06-21-atomic-actions-redesign-design.md. Co-Authored-By: Claude <noreply@anthropic.com>
Move Affordance, AntipodalAffordance, and InteractionPoints out of core.py into a dedicated affordance.py module. AntipodalAffordance now stores mesh_vertices, mesh_triangles, generator_cfg, gripper_collision_cfg, force_reannotate, and is_draw_grasp_xpos as typed dataclass fields rather than smuggling them through a shared geometry / custom_config dict. Remove the geometry-aliasing footgun from ObjectSemantics.__post_init__: it no longer assigns self.affordance.geometry = self.geometry, so an Affordance never silently inherits a mutable dict from its semantics parent. __post_init__ now only binds the affordance's object_label. Update actions.py, engine.py, and __init__.py imports to source the affordance types from the new module. Update test_core.py, test_engine.py, and test_actions.py to import Affordance from affordance, drop the duplicate Affordance/InteractionPoints tests now covered by test_affordance.py, and stop asserting the removed geometry alias. Co-Authored-By: Claude <noreply@anthropic.com>
…ngs) Co-Authored-By: Claude <noreply@anthropic.com>
… slim ABC Co-Authored-By: Claude <noreply@anthropic.com>
…en tests) Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
- MoveAction, PickUpAction, MoveObjectAction, PlaceAction all inherit AtomicAction directly. _HandCloseAction is removed. - Each holds a TrajectoryBuilder for shared helpers. - execute() takes a typed target + WorldState and returns ActionResult with a full-DoF trajectory. - Cfg classes are flat (no inheritance among Grasp/HandClose variants). Co-Authored-By: Claude <noreply@anthropic.com>
…rror types) Co-Authored-By: Claude <noreply@anthropic.com>
Drops SemanticAnalyzer, _resolve_target, _action_context, execute_static. Keeps the global register_action / unregister_action / get_registered_actions. Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Refresh the module docstring to reflect the four current primitives (move/pick_up/move_object/place) and the typed-target / WorldState design. Export list was already correct from the incremental task updates. Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Rewrite the skill to match the new API: sibling actions inheriting AtomicAction directly, TrajectoryBuilder composition, typed targets, WorldState/ActionResult contract, engine.register + run. Drops the old tuple-return / validate / _builtin_action_map / GraspActionCfg-parent guidance. Co-Authored-By: Claude <noreply@anthropic.com>
…/DexForce/EmbodiChain into refactor/atomic-actions-redesign
ef6bde1 to
d5eb97c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Validation
Note: Full pytest in the local conda environment aborts during DexSim/Optix CUDA initialization on this machine.