dimensionalOS / dimensionalOS/dimos
Formalize manipulation time-parameterization stage in PlanningSpec
Nobody has claimed this yet.
- 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 hocManipulationModuleresponsibility. - Define the data model boundary clearly:
- geometric selected-joint path /
GeneratedPlanbefore time-parameterization - time-parameterized trajectory artifact after time-parameterization
- geometric selected-joint path /
- 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
PlanningSpecor an adjacent planning-stage spec. ManipulationModuleno 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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