Table of Contents
Fetching ...

PlaCo: a QP-based robot planning and control framework

Marc Duclusaud, Grégoire Passault, Vincent Padois, Olivier Ly

TL;DR

PlaCo introduces a modular framework that simplifies formulating and solving convex QP-based planning and control problems for robotics. By providing a high-level problem abstraction, it supports weighted multi-objective optimization, hard and soft constraints, integrated dynamics, and problem-size reduction via QR factorization, all translated into standard QP form for efficient solvers. The kinematics solver offers a broad set of task types (absolute/relative frames, CoM, joints, gears) and constraints (range, velocity, polygonal regions, self-collision), enabling robust whole-body control across diverse platforms, including quadrupeds and loop-closed mechanisms. The framework emphasizes rapid prototyping in Python and real-time performance in C++, with open-source availability and future extensions toward a full dynamics-integrated pipeline and walking pattern generation.

Abstract

This article introduces PlaCo, a software framework designed to simplify the formulation and solution of Quadratic Programming (QP)-based planning and control problems for robotic systems. PlaCo provides a high-level interface that abstracts away the low-level mathematical formulation of QP problems, allowing users to specify tasks and constraints in a modular and intuitive manner. The framework supports both Python bindings for rapid prototyping and a C++ implementation for real-time performance.

PlaCo: a QP-based robot planning and control framework

TL;DR

PlaCo introduces a modular framework that simplifies formulating and solving convex QP-based planning and control problems for robotics. By providing a high-level problem abstraction, it supports weighted multi-objective optimization, hard and soft constraints, integrated dynamics, and problem-size reduction via QR factorization, all translated into standard QP form for efficient solvers. The kinematics solver offers a broad set of task types (absolute/relative frames, CoM, joints, gears) and constraints (range, velocity, polygonal regions, self-collision), enabling robust whole-body control across diverse platforms, including quadrupeds and loop-closed mechanisms. The framework emphasizes rapid prototyping in Python and real-time performance in C++, with open-source availability and future extensions toward a full dynamics-integrated pipeline and walking pattern generation.

Abstract

This article introduces PlaCo, a software framework designed to simplify the formulation and solution of Quadratic Programming (QP)-based planning and control problems for robotic systems. PlaCo provides a high-level interface that abstracts away the low-level mathematical formulation of QP problems, allowing users to specify tasks and constraints in a modular and intuitive manner. The framework supports both Python bindings for rapid prototyping and a C++ implementation for real-time performance.

Paper Structure

This paper contains 27 sections, 58 equations, 7 figures.

Figures (7)

  • Figure 1: Usage examples of the PlaCo IK solver on several robots. All examples are available in the example galleryfn:gallery. (A) A quadruped robot trying to reach the green target while strictly maintaining balance by enforcing the CoM to stay inside the support polygon. (B) A planar 2-DoF robot with kinematic loop following a square trajectory. (C) An humanoid robot walking following CoM, footstep and pelvis orientation trajectories. (D) A 6-DoF robotic arm following a trajectory. (E) An orbita actuator crampette2020orbita aiming at a target orientation while respecting joint limits.
  • Figure 2: Overview of the PlaCo architecture.
  • Figure 3: Overview of the robot models available in the PlaCo example galleryfn:gallery. From top left to bottom right: a large quadruped with electric linear actuators and multiple kinematic loop-closures, a 6-DoF industrial manipulator mounted on a fixed base, a small serial quadruped robot, the Sigmaban humanoid platform, a 2-DoF planar arm containing a kinematic loop, an orbita actuator crampette2020orbita with non-conventional joint arrangement, and a differential joint mechanism.
  • Figure 4: Quadruped balancing on three legs while reaching with the fourth. The green sphere marks the target for the moving leg, the red sphere the CoM projection, and the orange triangle the support polygon. The current and desired body orientation are shown by the solid and transparent frames respectively.
  • Figure 5: Planar 2-DoF robot with a kinematic loop, following a square trajectory with its end-effector (red).
  • ...and 2 more figures