Table of Contents
Fetching ...

CppFlow: Generative Inverse Kinematics for Efficient and Robust Cartesian Path Planning

Jeremy Morgan, David Millard, Gaurav S. Sukhatme

TL;DR

CppFlow tackles rapid and robust Cartesian Path Planning for redundant manipulators by integrating a learned generative inverse kinematics model with a global discrete search and a Levenberg–Marquardt trajectory optimizer. The pipeline first generates multiple approximate motion plans with IKFlow, then selects a collision-aware path via dynamic programming over IK seeds, and finally refines the trajectory using a non-stationary LM optimization that alternates between pose accuracy and length/obstacle considerations. Key contributions include the use of a GPU-accelerated generative IK generator to seed planning, a diffusion-like seed diversification strategy with a mjac-aware graph search, and a tightly coupled LM optimizer with differentiable collision terms. The results show strong improvements in time-to-solution and planning success rate across challenging benchmarks, indicating the practical impact of combining generative planning with classical optimization for real-time robotics applications.

Abstract

In this work we present CppFlow - a novel and performant planner for the Cartesian Path Planning problem, which finds valid trajectories up to 129x faster than current methods, while also succeeding on more difficult problems where others fail. At the core of the proposed algorithm is the use of a learned, generative Inverse Kinematics solver, which is able to efficiently produce promising entire candidate solution trajectories on the GPU. Precise, valid solutions are then found through classical approaches such as differentiable programming, global search, and optimization. In combining approaches from these two paradigms we get the best of both worlds - efficient approximate solutions from generative AI which are made exact using the guarantees of traditional planning and optimization. We evaluate our system against other state of the art methods on a set of established baselines as well as new ones introduced in this work and find that our method significantly outperforms others in terms of the time to find a valid solution and planning success rate, and performs comparably in terms of trajectory length over time. The work is made open source and available for use upon acceptance.

CppFlow: Generative Inverse Kinematics for Efficient and Robust Cartesian Path Planning

TL;DR

CppFlow tackles rapid and robust Cartesian Path Planning for redundant manipulators by integrating a learned generative inverse kinematics model with a global discrete search and a Levenberg–Marquardt trajectory optimizer. The pipeline first generates multiple approximate motion plans with IKFlow, then selects a collision-aware path via dynamic programming over IK seeds, and finally refines the trajectory using a non-stationary LM optimization that alternates between pose accuracy and length/obstacle considerations. Key contributions include the use of a GPU-accelerated generative IK generator to seed planning, a diffusion-like seed diversification strategy with a mjac-aware graph search, and a tightly coupled LM optimizer with differentiable collision terms. The results show strong improvements in time-to-solution and planning success rate across challenging benchmarks, indicating the practical impact of combining generative planning with classical optimization for real-time robotics applications.

Abstract

In this work we present CppFlow - a novel and performant planner for the Cartesian Path Planning problem, which finds valid trajectories up to 129x faster than current methods, while also succeeding on more difficult problems where others fail. At the core of the proposed algorithm is the use of a learned, generative Inverse Kinematics solver, which is able to efficiently produce promising entire candidate solution trajectories on the GPU. Precise, valid solutions are then found through classical approaches such as differentiable programming, global search, and optimization. In combining approaches from these two paradigms we get the best of both worlds - efficient approximate solutions from generative AI which are made exact using the guarantees of traditional planning and optimization. We evaluate our system against other state of the art methods on a set of established baselines as well as new ones introduced in this work and find that our method significantly outperforms others in terms of the time to find a valid solution and planning success rate, and performs comparably in terms of trajectory length over time. The work is made open source and available for use upon acceptance.
Paper Structure (11 sections, 4 equations, 6 figures, 1 table)

This paper contains 11 sections, 4 equations, 6 figures, 1 table.

Figures (6)

  • Figure 1: A CppFlow generated trajectory for the 'Panda - flappy-bird' problem. In this problem the robot must navigate through a tight corridor imposed by two vertical obstacles.
  • Figure 2: The CppFlow system
  • Figure 3: Visualizations of a subset of the problems evaluated on.
  • Figure 4: The 'Fetch.Arm - hello' problem visualized. The sweeping motion of the robots arm is generated by overlaying the first 20 configurations from a trajectory $\xi$ returned by CppFlow. The red cursive 'hello' is the target path, denoted $\boldsymbol{Y}$. The target path $\boldsymbol{Y}$ is composed of $n$ target poses $y_1, ..., y_n$
  • Figure 5: Trajectory length (rad) convergence results for CppFlow and Torm. Stampede results are ommited as the planner is not anytime - it returns only a single trajectory. A lower value is better, as this indicates a trajectory that can be executed in a shorter time. Plots are generated by averaging the trajectory length convergence curves of the designated planner from 10 planning runs. The mean time to a valid solution time is the first time instant plotted. The convergence behavior for CppFlow is strictly better for 'Fetch.Full - square' and 'Panda - 1cube', as measured by initial valid solution time and asymptotic limit. CppFlow has a 1.169x larger final trajectory length for 'Fetch.Arm - circle' problem as compared to Torm, however, it takes Torm 1.83x as long for Torm to find an initial valid trajectory for this problem. The results indicate CppFlow and TORM perform comparably on this metric. CppFlow performs favorably in terms of 'Time fo valid solution' and 'Initial solution time' however.
  • ...and 1 more figures