Source code for isaaclab_newton.physics.featherstone_manager_cfg
# Copyright (c) 2022-2026, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
"""Configuration for Newton physics manager."""
from __future__ import annotations
from typing import TYPE_CHECKING
from isaaclab.utils.configclass import configclass
from .newton_manager_cfg import NewtonSolverCfg
if TYPE_CHECKING:
from isaaclab_newton.physics import NewtonManager
[docs]
@configclass
class FeatherstoneSolverCfg(NewtonSolverCfg):
"""A semi-implicit integrator using symplectic Euler.
It operates on reduced (also called generalized) coordinates to simulate articulated rigid body dynamics
based on Featherstone's composite rigid body algorithm (CRBA).
See: Featherstone, Roy. Rigid Body Dynamics Algorithms. Springer US, 2014.
Semi-implicit time integration is a variational integrator that
preserves energy, however it is not unconditionally stable, and requires a time-step
small enough to support the required stiffness and damping forces.
See: https://en.wikipedia.org/wiki/Semi-implicit_Euler_method
"""
class_type: type[NewtonManager] | str = "{DIR}.featherstone_manager:NewtonFeatherstoneManager"
"""Manager class for the Featherstone solver."""
solver_type: str = "featherstone"
"""Solver type. Can be "featherstone"."""
angular_damping: float = 0.05
"""Angular damping parameter for rigid contact simulation."""
update_mass_matrix_interval: int = 1
"""Frequency (in simulation steps) at which to update the mass matrix."""
friction_smoothing: float = 1.0
"""Friction smoothing parameter."""
use_tile_gemm: bool = False
"""Whether to use tile-based GEMM for the mass matrix."""
fuse_cholesky: bool = True
"""Whether to fuse the Cholesky decomposition."""