All notable changes to this project will be documented in this file.
- Example: Stretch RE1
- Base class
Limit
for configuration and velocity limits - In-place integration of a velocity from a configuration
- Unit tests for configuration limits
- Unit tests for velocity limits
- Add
pink.limits
submodule - Configuration and velocity limits are now stacked rather than pre-reduced
- Move configuration limit to
ConfigurationLimit
class - Move velocity limit to
VelocityLimit
class
- Example: Draco 3 humanoid by @shbang91
- Joint-coupling task by @shbang91
- Linear holonomic task by @shbang91
- Unit tests for joint-coupling and linear holonomic tasks by @shbang91
- Refactor
apply_configuration
intoConfiguration
constructor - Refactor
assume_configuration
intoConfiguration
constructor - Refactor task dynamics into
compute_error
andcompute_jacobian
- BodyNotFound exception
- Document spatial and body minus between transforms
- Example: SigmaBan humanoid
- Forward keyword arguments of
solve_ik
to the backend QP solver
- Return type of
compute_velocity_limits
now includes optionals - VectorSpace type is now immutable
- Jacobian of the body task
- Bounded subspace of tangent space, that is, restricted to bounded joints
- CI: test on both Ubuntu and macOS images
- Tangent space from Pinocchio model
- Example: UR3 arm
- Expose
pink.Task
from top-level module - Improve joint limit computations
- Empty inequalities when model has no bounded joint
- Example: Omnidirectional three-wheeled robot
- Example: reduce Upkie model in leg extension example
- Solver keyword argument is now mandatory
- 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
- 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
- Unbounded velocities when the backend solver is CVXOPT
- Coveralls for continuous coverage testing
- Document differential inverse kinematics and task targets
- Single-task test on task target translations mapped to IK output translations
- Argument to
build_from_urdf
functions is now the path to the URDF file - Bumped status to beta
- Examples use the
jvrc_description
andupkie_description
packages - Use jvrc_description and upkie_description packages from PyPI
- Task is now an abstract base class
- Unit tests for robot models
- Joint velocity limits
- Configuration limits
- Bumped status to alpha
- Configuration limit check now has a tolerance argument
- Check configuration limits against model
- Mock configuration type for unit testing
- Tangent member of a configuration
- Unit test the body task
- Specify path when loading a model description
- Switch to the Apache 2.0 license
build_jvrc_model
is nowbuild_from_urdf
- Don't distribute robot models with the library
- IK unit test that used robot instead of configuration
- Body task
- Humanoid example
- ConfiguredRobot(model, data) type is now Configuration(model, data, q)
- Add floating base joint when loading JVRC model
- Base class for kinematic tasks
- Box minus operator
- ConfiguredRobot type in which we can query frame transforms and Jacobians
- Document joint limits API
- Use JVRC model for unit testing
- Documentation reads versions from the main module
- Remove unused mock imports
Python package infrastructure.