Repository navigation
feat(atomic-actions): extend handover coordination and slide targets - #733
Conversation
|
| scene_dependency_monitor_until={ | ||
| entity_id: 0 for entity_id in self._scene_dependencies(request) | ||
| }, |
There was a problem hiding this comment.
Exchange target stops being monitored When the existing-held route uses a scene entity as
goal.target_pose, its pose determines the exchange height. This cutoff disables monitoring from the start. If that entity moves during transfer, execution continues toward the stale height instead of replanning.
Prompt To Fix With AI
This is a comment left during a code review.
Path: embodichain/lab/sim/atomic_actions/primitives/hand_over.py
Line: 1016-1018
Comment:
**Exchange target stops being monitored** When the existing-held route uses a scene entity as `goal.target_pose`, its pose determines the exchange height. This cutoff disables monitoring from the start. If that entity moves during transfer, execution continues toward the stale height instead of replanning.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Preserve established hand closures during existing-held transfers, monitor late-bound handover targets, and retreat the released source hand in transfer-only mode. Validate satisfied Slide targets and coordinated options early, and partition centroid grasp pairs by center without duplicate dual-arm candidates.
Expose MoveJoints consistently with its public contract and keep Place targets monitored through release. Restrict AxisAlign self-motion cutoffs to the semantic object while preserving independent grasp-target monitoring.
Description
This PR isolates the Atomic Actions and direct grasp-generation changes from the larger action-engine branch. It extends held-object continuity, handover/release behavior, coordinated dual-arm release, articulated slide targets, scene-relative pose goals, and contact-aware planning diagnostics.
The change is based directly on
main. Task Engine orchestration, Task Program bundle generation, TaskSpec, Asset Engine, and Scene Engine changes remain outside this PR.Key behavior changes:
SceneEntityPosesupports world-frame displacement and orientation overrides.MoveHeldObjectsupports ordered object-pose waypoints and bounded final world-yaw alternatives while preserving the verified grasp.HandOversupports transfer-only execution, existing-held continuation, optional release-at-target behavior, and explicit source retreat phases.CoordinatedPickmentsupports synchronized release and post-release retreat.SlideGoalsupports absolute prismatic joint targets with calibrated axis signs and same-timestamp observation checks.Dependencies: none; this PR targets
main.Type of change
Validation
python -m compileall -q embodichain/lab/sim/atomic_actions embodichain/toolkits/graspkitpython docs/scripts/check_api_docs.pypassed: 2415/2415 exports documented.git diff --checkpassed.pytest -q tests/sim/atomic_actions tests/toolkitswas attempted, but collection is blocked in the current environment by the installed DexSim package:dexsim.typesdoes not exportRTRenderMode, which is imported bymain's rendering configuration before the tests load.