PlaCo
SoftwareTask-space inverse kinematics and dynamics library with a C++ implementation and Python bindings. [1] [2] [3]
Installation & first result →Official websiteGetting started
- 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
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.
What you need
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.
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.
| Layer | Availability / license |
|---|---|
| software | available · 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] |
| documentation | available · 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.
- S001 README.md
Revision, date & where cited
Rhoban/placo contributors · github.com · revision
b7306f9· README.md at · Accessed Nov 1, 2026
Used for: Overview, Is this for you?, What you need, Installation & first result and 3 more - S002 LICENSE
Revision, date & where cited
Rhoban/placo contributors · github.com · revision
b7306f9· LICENSE at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Separate solver state from physical commands and 1 more - S003 src/placo/kinematics/kinematics_solver.cpp
Revision, date & where cited
Rhoban/placo contributors · github.com · revision
b7306f9· src/placo/kinematics/kinematics_solver.cpp at · Accessed Nov 1, 2026
Used for: Is this for you?, What you need, Installation & first result, Separate solver state from physical commands and 1 more
Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5