newton.controllers.DifferentialIKMethod#
- class newton.controllers.DifferentialIKMethod(*values)[source]#
Bases:
EnumInverse-Jacobian solve method for
ControllerDifferentialIKModelFree/ControllerDifferentialIK.Import directly from
newton.controllers, the same way as any other top-level enum (e.g.JointTargetMode):from newton.controllers import DifferentialIKMethod.- ADAPTIVE_DAMPING = 'adaptive_damping'#
Damped least squares with λ computed each step from
JJᵀ’s smallest eigenvalue (Maciejewski-Klein singularity-robust damping), instead of a fixeddamping. Requiresdamping=Noneandadaptive_damping_min/adaptive_damping_max/adaptive_damping_threshold.
- DAMPED_LEAST_SQUARES = 'damped_least_squares'#
q̇ = bandwidth · Jᵀ(JJᵀ + λ²I)⁻¹e. The default; usesdamping.
- PSEUDO_INVERSE = 'pseudo_inverse'#
Zero-damping Moore-Penrose pseudo-inverse (
λ = 0in the same solve). Requires every robot to have at least as many controlled DOFs as its own task dimension (the number of nonzeroaxis_weightentries), anddamping=None(there is no λ to set).
- TRANSPOSE = 'transpose'#
q̇ = bandwidth · Jᵀe, no matrix inversion. Requiresdamping=None(there is no λ to set).
- TRUNCATED_SVD = 'truncated_svd'#
a task-space direction with singular value above
truncated_svd_thresholdis inverted exactly (1/sigma²), one below it is dropped entirely (0) rather than damped. Requiresdamping=Noneandtruncated_svd_threshold.- Type:
Per-direction pseudo-inverse from
JJᵀ’s full eigendecomposition