Skip to content

Formalize manipulation time-parameterization stage in PlanningSpec #2540

Description

@dimos-bot

Context

Manipulation planning currently treats GeneratedPlan as selected global joint waypoints, while execution later converts that timeless path into per-robot JointTrajectory objects through JointTrajectoryGenerator.generate(...) inside ManipulationModule.execute_plan().

Actual issue

Time-parameterization is not formalized as an explicit planning pipeline stage. The boundary between geometric planning and time-parameterized trajectory generation is implicit and currently lives in module execution/preview code. This makes preview timing, execution timing, and planner outputs easy to drift apart.

Proposed direction

  • Add an explicit time-parameterization stage to the manipulation planning pipeline.
  • Make that stage part of PlanningSpec / planning stack responsibility, not ad hoc ManipulationModule responsibility.
  • Define the data model boundary clearly:
    • geometric selected-joint path / GeneratedPlan before time-parameterization
    • time-parameterized trajectory artifact after time-parameterization
  • Ensure preview and execution consume the same time-parameterized artifact or the same formal time-parameterization service.
  • Preserve planner-provided timestamps when available, but handle untimed geometric planners like current RRT through the formal time-parameterization stage.

Acceptance criteria

  • Planning stack exposes an explicit time-parameterization responsibility/API through PlanningSpec or an adjacent planning-stage spec.
  • ManipulationModule no longer owns ad hoc path-to-trajectory timing logic.
  • Preview and execution use the same formal time-parameterized representation/path.
  • Data model and tests distinguish geometric paths from time-parameterized trajectories.
  • Untimed planner outputs and planner-provided timestamps are both covered by tests.

Synced from DIM-1027 by che

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions