v0.5.0
With this release, Pink handles more general joint types, including fixed or free flyer root joints, unbounded joints (called continuous
in URDF), etc. New examples showcase this on both arms 🦾 and legged 🦿 robots.
Under the hood, this release also improves on various points of the QP formulation (joint limits, posture task, ...) so that it works nicely with more solvers (e.g. CVXOPT), beyond quadprog and OSQP which were the two main solvers so far.
Added
- Body task targets can be read directly from a robot configuration
- Example: double pendulum
- Example: Kinova Gen2 arm
- Example: loading a custom URDF description
- Example: visualization in MeshCat
- Example: visualization in yourdfpy
- Generalize configuration limits to any root joint
- Handle descriptions that have no velocity limit
- Handle general root joint in configuration limits
- Handle general root joint in posture task
- Handle unbounded velocity limits in QP formulation
- Posture task targets can be read directly from a configuration
- Simple rate limiter in
pink.utils
Changed
- Raise an error when querying a body that doesn't exist
- Transition from
pink.models
torobot_descriptions
- Update reference posture in Upkie wheeled biped example
- Warn when the backend QP solver is not explicitly selected
Fixed
- Unbounded velocities when the backend solver is CVXOPT