Developer notes
This section documents internal functions and other notes shared between contributors to this project.
Design guidelines
Pink is designed for clarity before performance
Exceptions raised by the library all derive from a Pink exception base class to avoid abstraction leakage. See this design decision for more details on the rationale behind this choice.
- Task representation strings:
Only report parameters that have an effect (for instance, the damping task does not report its
lm_damping
since its error is always zero).Parent-class attributes come after the class’s own.
A de facto practice has emerged where we define __repr__ at the bottom of task Python source files.
Exceptions
Exceptions specific to Pink.
- exception pink.exceptions.ConfigurationError
Exception raised when encountering an invalid configuration vector.
- exception pink.exceptions.FrameNotFound(name, frames)
Exception raised when a frame is not found in the robot model.
- exception pink.exceptions.NoSolutionFound(problem, results)
The QP solver did not find a solution to the differential IK problem.
- exception pink.exceptions.NotWithinConfigurationLimits(joint, value, lower, upper)
Exception thrown when a robot configuration violates its limits.
- joint
Index of the joint in the configuration vector.
- value
Invalid value of the joint.
- lower
Minimum allowed value for this joint.
- upper
Maximum allowed value for this joint.
- exception pink.exceptions.PinkError
Base class for Pink exceptions.
- exception pink.exceptions.TargetNotSet
Exception raised when attempting to compute with an unset target.
- exception pink.exceptions.TaskDefinitionError
Exception raised when a task definition is ill-formed.
- exception pink.exceptions.TaskJacobianNotSet
Exception raised when attempting to compute without a task Jacobian.