v3.0.0
This major release adds Control Barrier Functions developed by @domrachev03 and @simeon-ned 👍 Examples of what we can do with barriers include:
- Arm: UR5: with joints and end effector limits
- Humanoid: G1: G1 humanoid squatting via a CoM task
- Quadruped: Go2: Go 2 squatting with floating base position limits
- Dual Arms: Yumi: self-collision avoidance with spheres
- Dual Arms: Iiwa: whole-body self-collision avoidance
Screencast.from.06-25-2024.01.20.45.PM.webm
Another API-breaking change to the library is that limits are now optional and can be extended (for instance with the new acceleration limit) or disabled. New limits and tasks include:
- Limit:
AccelerationLimit
- Task:
ComTask
for center-of-mass tracking (thanks to @simeon-ned) - Task:
LowAccelerationTask
for smoother velocities.
Check out the full changelog below for other changes and fixes. May the Motion be with you!
Added
- Breaking: Updated the logic for handling the joint limits:
- Add a
limits
argument tobuild_ik
andsolve_ik
- The
check_limits
method now includes an optionalsafety_break
argument to control whether execution should stop on exception. - The
solve_ik
function now includes thesafety_break
that is forwarded tocheck_limits
.
- Add a
- Control Barrier Functions, namely: (thanks to @domrachev03 and @simeon-ned)
- Abstract Barrier
Barrier
- Frame Position Barrier
PositionBarrier
- Body Spherical Barrier
BodySphericalBarrier
- Whole-body Self-Collision Avoidance Barrier
SelfCollisionBarrier
- Abstract Barrier
- Example: UR5 manipulator and GO2 quadruped robot with
PositionBarrier
- Example: YUMI two-armed manipulator with
BodySphericalBarrier
- Example: G1 humanoid squatting through regulating CoM.
- Limit:
AccelerationLimit
- Task:
ComTask
for center-of-mass tracking (thanks to @simeon-ned) - Task:
LowAccelerationTask
for smoother velocities.
Changed
- Breaking: remove
lm_damping
parameter from DampingTask where it wasn't used - CICD: Update ruff to 0.4.3
- Configuration accepts list of Control Barrier Functions
- DampingTask: Simplify implementation
- Update to Pinocchio 3 with 2.7 backward compatibility
Fixed
- PostureTask: Match implementation and documentation formula
- Fix broken documentation links
Removed
- CICD: Disable macOS checks until upstream PyPI package is fixed