Skip to content

[DO NOT MERGE] Curobo in Droid env #450

Draft
xyao-nv wants to merge 33 commits intomainfrom
neel/droid_curobo
Draft

[DO NOT MERGE] Curobo in Droid env #450
xyao-nv wants to merge 33 commits intomainfrom
neel/droid_curobo

Conversation

@xyao-nv
Copy link
Collaborator

@xyao-nv xyao-nv commented Feb 27, 2026

Summary

Experimental project

Detailed description

  • Multi-obj PnP with relationship solver
  • Pre-defined grasping
  • Confirguable PnP order

@xyao-nv xyao-nv changed the title Curobo in Droid env [DO NOT MERGE] Curobo in Droid env Mar 3, 2026
xyao-nv and others added 7 commits March 3, 2026 14:47
## Summary
Add IK feasibility heuristic to A* planner with multi-demo collection

## Detailed description
- **What was the reason for the change?**
The A* symbolic planner in `droid_v3_tabletop_pick_and_place` only used
Euclidean distance as its heuristic, with no awareness of whether the
robot could actually reach grasp/place poses. This led to wasted sim
time executing doomed pick-and-place sequences on kinematically
infeasible layouts. There was also no support for collecting multiple
successful demos in a loop.

- **What has been changed?**
- Added `ik_utils.py` with standalone `check_ik_feasibility()` and
`get_current_joint_config()` functions that wrap cuRobo's IK solver with
user-controllable position/rotation thresholds and seed chaining. Kept
outside the IsaacLab submodule so changes can be committed directly to
Arena.
- Modified the A* planner in `plan_pick_order()` to evaluate IK as a
sequential kinematic chain (home → grasp(1) → place(1) → grasp(2) →
...), seeding each IK solve from the previous solution. Orderings with
IK failures are penalized so A* prefers feasible sequences. Now returns
`(order, total_ik_penalty)`.
- Added a demo collection loop to the run script (`--num_demos`,
`--max_attempts`). Layouts with any IK penalty are skipped immediately
and re-randomized, avoiding ~30s of wasted sim time per infeasible
layout.
- Added `--ik_pos_threshold` and `--ik_rot_threshold` CLI args to
control IK feasibility sensitivity.

- **What is the impact of this change?**
The planner now filters out unreachable layouts before execution (~1s IK
check vs 30s+ failed sim run), making multi-demo data collection
practical. The A* produces pick orderings that are guaranteed
IK-feasible when such an ordering exists. Users can tune feasibility
sensitivity via CLI thresholds and collect N successful demos with a
single command.
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.

3 participants