GlobMP

Continuous-Time Motion Planning and Steering with Global Convergence
Paper (arXiv) Code (GitHub) Code and data (Hugging Face)

Method

Planning and steering as one continuous-time program

GlobMP represents each motion as a piecewise polynomial, so every constraint, whether an obstacle, a separation between robots, or closeness to a learned policy's proposal, becomes a polynomial that must stay nonnegative over the whole motion, not only at sampled times. A gradient projection method alternates a step that lowers the smoothness cost with a restoration step that makes the curve feasible again. Every iterate stays feasible, and under mild assumptions the cost approaches the global optimum as the number of pieces grows.

Two robots, A and B, planned jointly among ellipsoidal obstacles. Top: each robot's path. Bottom: clearance to each obstacle and to the other robot over time; below zero is a collision. (1) The direct paths collide. (2) Checking the constraints at 8 sample times misses collisions between them. (3) GlobMP's curves keep every clearance nonnegative over the whole motion.

Experiments

Tightness and cost on synthetic instances

Tightness and cost
Clearance of the returned trajectory on one instance (a) and on all instances (b), and cost relative to GlobMP against the number of robots (c). Below zero is a violation.

Multi-robot experiments

Robotarium, twelve robots, five scenarios, six planners (5× speed)

CD
MMD-CBS
PCD-SHD
Final Proj.
DiRecT
GlobMP (ours)

Steering

Steering tactile-reactive dexterous policies on a bimanual humanoid

GlobMP steers the action chunks of a learned policy (GR00T N1.7, π0.5) on a bimanual robot with two XHAND1 hands. A meta-reasoner picks the constraint blocks once per episode, and GlobMP returns a curve that meets every block at every instant while staying close to the policy.

Bag into box
Tissue-box handover
Pull a tissue
Pick up a full or empty cup

Force magnitude per fingertip (raw sensor units), above its resting value. Dashed lines: first and last frame with motion.

Steered motion planning, handover
Steered motion planning, illustrated on the handover task: the meta-reasoner sets keep-out, keep-in and grip blocks once; GlobMP returns a smooth, collision-free curve close to the policy.
Steered rollouts on the robot and real-robot results: coming soon

Obstacle avoidance

Collision-free motion in end-effector space (D3IL avoiding-v0)

A planar end-effector must reach the goal while avoiding pillars. GlobMP is the projection step of DiRecT's diffusion sampler, compared with ten diffusion planners over 100 rollouts each.

GlobMP rollouts on avoiding-v0 (seed 0, 100 episodes: 95 safe, 98 reach the goal), replayed in the simulator. Blue: test-time constraints. The robot runs four rollouts, then all 100 paths appear, safe in navy and violating in red.
(c) safety rate against task success
Safety rate against task success, 100 episodes per method. Only the upper right both reaches the goal and avoids.

Maze2D

Safe navigation in a nonconvex maze (D4RL maze2d-large)

A point robot crosses a nonconvex maze while avoiding keep-out regions. GlobMP picks a corridor by breadth-first search and enforces the keep-outs in continuous time; GlobMP is deterministic, the ten baselines run 10 episodes each.

Broad setting. Dark stretches marked × are inside a keep-out; the badge counts runs that entered one.
Narrow setting, with six keep-outs.

Quick Start

Code on GitHub and Hugging Face

git clone https://github.com/GlobalMotionPlanning/GlobMP.git
cd globmp
pip install -e .
python -m pytest globmp/tests    # about 10 s on one CPU core

BibTeX

@misc{amiri2026globmp,
  title={Continuous-Time Motion Planning and Steering with Global Convergence},
  author={Amiri, Mohsen and Didari, Sima and Ataee Tarzanagh, Davoud and Moon, Hankyu and Kwon, Yeongdae},
  year={2026},
  note={Equal contribution: Amiri, Didari, Ataee Tarzanagh}
}

Contact

Mohsen Amiri†
Sima Didari†
Davoud Ataee Tarzanagh†
Hankyu Moon
Yeongdae Kwon
Samsung SDS Research America
Mountain View, CA, USA
† equal contribution

Questions and issues on GitHub