Rhoban/placo

Rhoban Planning and Control

What it solves

PlaCo simplifies the process of managing complex robot movements by providing a high-level way to define goals (tasks) and limitations (constraints). It solves the difficult mathematical problem of calculating the exact joint movements needed to reach a specific position or generate specific forces, known as inverse kinematics and inverse dynamics, especially for robots with many moving parts (whole-body control).

How it works

The library uses Quadratic Programming (QP) to find the best possible solution that satisfies as many tasks and constraints as possible. It is built on top of the Pinocchio library and the eiquadprog QP solver. Users can define tasks for frames, center of mass, joints, or wheels, and the library assembles these into a mathematical program that is solved to determine the robot's next state.

Who it’s for

It is designed for robotics researchers and engineers who need to implement precise control for complex robots, such as quadrupeds or humanoid robots, and want a balance between high-performance C++ execution and fast Python prototyping.

Highlights

  • Dual-Language Support: Written in C++ for runtime performance with Python bindings for rapid development.
  • Whole-Body Control: Supports both task-space inverse kinematics (IK) and inverse dynamics (ID).
  • Constraint Management: Handles physical limits such as torque, velocity, and contact points.
  • Flexible API: Allows users to express control problems as a set of modular tasks and constraints.

Related

  • Project
  • Project
  • Project
  • Project