dimensionalOS / dimensionalOS/dimos

Formalize manipulation time-parameterization stage in PlanningSpec

Open
#2,540 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

manipulation
Dominant language
Python
Stars
4.5k
Forks
808
Avg merge
3d 5h
Merged PRs (30d)
233

Description

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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Trace PlanningSpec, GeneratedPlan, JointTrajectoryGenerator.generate(...), and ManipulationModule.execute_plan() to map where geometric paths become trajectories. Define the boundary between untimed paths and time-parameterized artifacts, then verify that preview and execution share it. Done means the planning stack exposes this responsibility and tests cover both untimed planner output and preserved planner timestamps.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
robotics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.