Skip to content

feat(planner): integrate NVIDIA cuRobo V2#377

Draft
yuecideng wants to merge 7 commits into
mainfrom
yueci/curobo-integraion
Draft

feat(planner): integrate NVIDIA cuRobo V2#377
yuecideng wants to merge 7 commits into
mainfrom
yueci/curobo-integraion

Conversation

@yuecideng

Copy link
Copy Markdown
Contributor

Description

This draft PR adds NVIDIA cuRobo V2 as an optional CUDA collision-aware motion-planning backend for EmbodiChain.

It adds:

  • Lazy cuRobo V2 planner, profile, world configuration, and named joint mapping support.
  • MotionGenerator and supported atomic-action routing for end-effector and joint motions.
  • Batched per-environment collision worlds and dynamic obstacle updates.
  • Panda DexSim demo, optional offscreen MP4 recorder, documentation, unit tests, CUDA integration tests, and atomic end-to-end coverage.

Motivation: expose GPU-accelerated collision-aware planning through the existing robot, planner, motion-generator, and atomic-action abstractions.

Dependencies: NVIDIA cuRobo V2 is optional and must be installed in a CUDA/PyTorch-compatible environment. This PR adds no mandatory EmbodiChain dependency.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (non-breaking change which improves an existing functionality)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (existing functionality will not work without user modification)
  • Documentation update

Screenshots

The headless Panda demo can generate an MP4 recording when requested.

Draft note

The initial offscreen recorder samples wall time. Because simulation playback is very fast, a recording can appear nearly static even though trajectory generation and simulation execution are verified. Simulation-time recording is a follow-up before the PR is marked ready for review.

Checklist

  • I have run the black . command to format the code base.
  • I have made corresponding changes to the documentation.
  • I have added tests that prove the feature works.
  • Optional cuRobo V2 dependency requirements are documented.

yuecideng and others added 7 commits July 11, 2026 10:43
Add BasePlanner.preinterpolate_targets / preserve_plan_samples /
default_plan_options / with_motion_context so MotionGenerator is
capability-driven rather than special-casing NeuralPlanner. Neural
and TOPPRA migrate to the new hooks; behavior is preserved.

Co-Authored-By: Claude <noreply@anthropic.com>
Add CuroboRobotProfileCfg/CuroboWorldCfg/CuroboPlannerCfg/CuroboPlanOptions
and pure helpers (_reorder_by_names, _matrix_to_position_quaternion,
_validate_dynamic_obstacles, _require_curobo). The package exports the
configs without importing curobo; construction triggers the lazy V2 import.

Co-Authored-By: Claude <noreply@anthropic.com>
Implement CuroboPlanner.plan (pose + cspace), backend cache keyed by
(control_part, batch_size, multi_env), segment chaining without resampling,
failure/over-budget hold, dynamic obstacle updates, and close(). Add
fake-binding unit tests (require CUDA) and an optional real V2 integration
test skipped without cuRobo/CUDA. Includes the shared cuboid world asset.

Co-Authored-By: Claude <noreply@anthropic.com>
ActionCfg validates motion_source/planner_type. TrajectoryBuilder dispatches
by capability (preinterpolate_targets / preserve_plan_samples) with strict
planner-type matching, result validation, and a new plan_joint_motion path.
MoveJoints, PickUp, Place, Press allocate from returned phase lengths; Press
returns via plan_joint_motion; PickUp skips the IK prefilter for cuRobo.
Coordinated dual-arm primitives reject the cuRobo backend.

Co-Authored-By: Claude <noreply@anthropic.com>
Harden batched V2 collision worlds and add the documented atomic-action demo with tests.
@yuecideng yuecideng added enhancement New feature or request solver Robot kinematics solver motion gen Things related to motion generation for robot atomic action atomic action related functionality dexsim Things related to dexsim docs Improvements or additions to documentation labels Jul 11, 2026
@yuecideng yuecideng requested a review from chase6305 July 12, 2026 03:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

atomic action atomic action related functionality dexsim Things related to dexsim docs Improvements or additions to documentation enhancement New feature or request motion gen Things related to motion generation for robot solver Robot kinematics solver

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant