11
11
class DampingTask (PostureTask ):
12
12
r"""L2-regularization on joint velocities (a.k.a. *velocity damping*).
13
13
14
- This low-priority task adds a Tikhonov/Levenberg-Marquardt term to the
15
- quadratic program, making the Hessian strictly positive-definite and
16
- selecting the **minimum-norm joint velocity ** in any redundant or
17
- near-singular situation. Formally it contributes :
14
+ This task, typically used with a low priority in the task stack, adds a
15
+ Levenberg-Marquardt term to the quadratic program, favoring **minimum-norm
16
+ joint velocities ** in redundant or near-singular situations. Formally, it
17
+ contributes the following term to the quadratic program :
18
18
19
19
.. math::
20
20
\frac{1}{2}\,\Delta \mathbf{q}^\top \Lambda\,\Delta \mathbf{q},
21
21
22
22
where :math:`\Delta \mathbf{q}\in\mathbb{R}^{n_v}` is the vector of joint
23
23
displacements and :math:`\Lambda = \mathrm{diag}(\lambda_1, \ldots, \lambda_{n_v})`
24
- is a diagonal matrix of per-DoF weights provided by ``cost``. A larger
25
- :math:`\lambda_i` reduces motion in DoF :math:`i`; with no other active
26
- tasks the robot remains at rest.
27
-
28
- This task does not favor a particular posture—only small instantaneous
29
- motion. If you need a posture bias, use an explicit :class:`~.PostureTask`.
24
+ is a diagonal matrix of per-DoF damping weights specified via ``cost``. A larger
25
+ :math:`\lambda_i` reduces motion in DoF :math:`i`. With no other active
26
+ tasks, the robot remains at rest. Unlike the `damping` parameter in
27
+ :func:`~.solve_ik`, which is uniformly applied to all DoFs, this task does
28
+ not affect the floating-base coordinates.
30
29
31
30
.. note::
32
31
33
- Floating-base coordinates are not affected by this task.
32
+ This task does not favor a particular posture, only small instantaneous motion.
33
+ If you need a posture bias, use :class:`~.PostureTask` instead.
34
34
35
35
Example:
36
36
@@ -53,7 +53,7 @@ def compute_error(self, configuration: Configuration) -> np.ndarray:
53
53
r"""Compute the damping task error.
54
54
55
55
The damping task does not chase a reference; its desired joint velocity
56
- is identically **zero**, so the error vector is always
56
+ is identically **zero**, so the task error is always:
57
57
58
58
.. math:: e = \mathbf 0 \in \mathbb R^{n_v}.
59
59
0 commit comments