Open Source RoboticsRobots, software & learning

PlaCo

Software

Task-space inverse kinematics and dynamics library with a C++ implementation and Python bindings. [1] [2] [3]

Installation & first result →Official websiteGetting started

For
Robotics developers evaluating the selected source workflow [1] [2] [3]
Source rights
Named licenses are documented by part. Review licenses
Unknowns
operating system, compute requirements not fully established. Review gaps

Source researched · Not tested by us
Sources checked · Research details

Licenses & related hardware

Requirements · Research details and dates

On this page

Overview

PlaCo is Rhoban's planning and control library for task-space inverse kinematics and dynamics. It exposes C++ functionality through Python bindings and expresses tasks and constraints as quadratic-program problems. This is useful for developers who already have a robot model and want to investigate constrained motion or whole-body control. The library does not supply a complete robot driver or a commissioned controller. [1]

Is this for you?

Known limitations
  • Python wheel installation does not supply the external example robot model.
  • QP solutions and integrated model state are not motor communication or verified physical control.

Editorial source-scope assessment; no installation, execution or compatibility test.

[1] [2] [3] · Editorial assessment

What you need

Dependencies
  • Python>=3.10; documented Linux/macOS x86-64 and arm64 wheels
  • C++ API requires source build; model files and correctly named robot frames

[1] [2] [3]

Installation & first result

Open the upstream getting-started guide [1] [2] [3]

  • Inspect the pinned source instructions and select the documented configuration.
  • Install only the dependencies for the chosen route; validate against the selected robot or model before hardware integration.

Editorial source-scope assessment; no installation, execution or compatibility test.

[1] [2] [3] · Editorial assessment

Project notes

Choose the Python or C++ route

The reviewed README requires Python 3.10 or later and describes wheels for Linux and macOS on x86-64 and arm64. Its Python installation command is pip install placo; using the C++ API requires building from source through the separately linked instructions. The selected packet does not reproduce that build or establish availability for another operating system. An unpinned package installation is not necessarily the reviewed source revision. [1]

The README's first example loads placo.RobotWrapper("models/6axis/"), creates placo.KinematicsSolver(robot) and masks the floating base with solver.mask_fbase(True). The model path must exist and the assumption that the robot is anchored must fit the chosen mechanism. The external examples repository is where the README directs readers for robot models and scenarios; that repository and its assets were not inspected here. [1]

It then adds a frame task named effector, configures a soft task, calls robot.update_kinematics() and solver.solve(True). Before adapting this sketch, inspect the selected model's frame names and target pose: a string from an example does not establish that the frame exists in your robot. None of these commands was executed in this review. [1]

Separate solver state from physical commands

The sampled C++ kinematics implementation contains concrete task-building methods. For example, string-based frame tasks resolve frame indices, while a frame task combines position and orientation tasks. This supports investigating how the public interface maps targets into model tasks. It is a bounded implementation excerpt, not a whole-library audit or a reproduced solver result. [3]

The README describes a lightweight rigid-body implementation using Pinocchio as a reference, coal for collision calculations and qpmad as a QP solver. Its upstream validation statement is an author report; no comparison or performance test was rerun. Solving and integrating model state does not establish motor transport, feedback timing, joint-limit enforcement on a physical machine or safe recovery after a failed solve. [1]

PlaCo is MIT licensed; the README separately identifies the bundled qpmad solver as Apache-2.0. External robot models, meshes and dependencies retain their own terms. Begin with a matched model and one task, then inspect solver outcomes and configuration before extending the setup. No wheel installation, C++ build, model loading, collision check, QP solve, simulation or hardware-control test was performed. [1] [2] [3]

What we checked

Pinned source research only; selected implementation and setup text inspected. No dependency installation, upstream build, API export, robot simulation, hardware commissioning, timing or performance test performed.

Not yet established

  • Requirements: operating system, host computer
  • Version-specific hardware compatibility (ecosystem tags alone do not establish it)

Updates

Upstream last updated
Not established
Latest release
Not established
Profile updated
Nov 1, 2026
Sources last checked
Nov 1, 2026
Next review
Dec 1, 2026
Reviewed revision
b7306f9

Source files and licenses

Distinct robotics software implementation with inspectable source, declared license and bounded initial workflow.

LayerAvailability / license
softwareavailable · MIT
Repository project notice; bundled/external dependencies and robot/model/CAD/hardware assets retain their separate terms. No whole-tree license audit or hardware rights clearance. [1] [2] [3]
documentationavailable · MIT
Repository project notice; bundled/external dependencies and robot/model/CAD/hardware assets retain their separate terms. No whole-tree license audit or hardware rights clearance. [1] [2] [3]

Software entry; no separate physical design, firmware distribution, training-weight or dataset claim selected.

References

Each source links to the exact revision we read. “Used for” shows where this page relies on it.

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history