Add move_object atomic action#313
Conversation
| @@ -238,4 +238,4 @@ is_success, traj = engine.execute_static(target_list=[target_pose]) | |||
|
|
|||
| - {doc}`planners/motion_generator` — the trajectory planner used by every action | |||
| - {doc}`sim_robot` — how control parts and IK solvers are configured | |||
There was a problem hiding this comment.
Add docs and unitest for the new atomic action
There was a problem hiding this comment.
Added both.
Docs now cover:
MoveObjectActionMoveObjectActionCfgMoveObjectTargetHeldObjectState- target resolution for
MoveObjectTarget/{"object_target_pose": ...}
Tests now cover: MoveObjectActiontarget resolution- missing held-state failure
- closed-hand trajectory padding
- held-state preservation
- engine held-state propagation/clearing
- batched pickup success handling
|
|
||
|
|
||
| @dataclass | ||
| class HeldObjectState: |
There was a problem hiding this comment.
These two class could be a part of ObjectSemantics?
There was a problem hiding this comment.
I kept them separate intentionally and documented the distinction.
ObjectSemantics is a reusable object description: geometry, affordance, label, entity.
HeldObjectState is runtime execution state produced by a successful semantic pickup. It stores the selected grasp and object-to-EEF transform.
MoveObjectTarget is an action-specific target describing where the already-held object should move.
Putting them into ObjectSemantics would mix static object semantics with per-execution robot state, which seems harder to reason about across repeated executions.
|
UprightAction is the bigger concern. It's not really "atomic" — it's a MoveObjectAction is cleaner in concept (it's a genuine primitive: move a held My recommendation: keep MoveObjectAction as-is (minus the inheritance fix), |
|
Code Review — ljd/move_object_atomic_actions vs main The branch adds two new atomic actions (UprightAction, MoveObjectAction) plus Critical — correctness bugs
Moderate — design / API
Lower severity — cleanup / altitude
Notes (not counted)
The most actionable fixes are #1 (restore the 2D return shape or update the ✻ Cogitated for 9m 32s ❯ Do you think the two new atomic action definition is reasonable? ● Short answer: the intent of both actions is reasonable, but the abstraction is UprightAction is the bigger concern. It's not really "atomic" — it's a MoveObjectAction is cleaner in concept (it's a genuine primitive: move a held My recommendation: keep MoveObjectAction as-is (minus the inheritance fix), |
Thanks, I agree with this direction. |
Thanks for the detailed review. I went through the findings and addressed the correctness issues.
|
Summary
Validation
Demo
Notes