Source code for isaaclab.assets.articulation.articulation_cfg
# Copyright (c) 2022-2025, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
from dataclasses import MISSING
from isaaclab.actuators import ActuatorBaseCfg
from isaaclab.utils import configclass
from ..asset_base_cfg import AssetBaseCfg
from .articulation import Articulation
[docs]@configclass
class ArticulationCfg(AssetBaseCfg):
"""Configuration parameters for an articulation."""
[docs] @configclass
class InitialStateCfg(AssetBaseCfg.InitialStateCfg):
"""Initial state of the articulation."""
# root velocity
lin_vel: tuple[float, float, float] = (0.0, 0.0, 0.0)
"""Linear velocity of the root in simulation world frame. Defaults to (0.0, 0.0, 0.0)."""
ang_vel: tuple[float, float, float] = (0.0, 0.0, 0.0)
"""Angular velocity of the root in simulation world frame. Defaults to (0.0, 0.0, 0.0)."""
# joint state
joint_pos: dict[str, float] = {".*": 0.0}
"""Joint positions of the joints. Defaults to 0.0 for all joints."""
joint_vel: dict[str, float] = {".*": 0.0}
"""Joint velocities of the joints. Defaults to 0.0 for all joints."""
##
# Initialize configurations.
##
class_type: type = Articulation
articulation_root_prim_path: str | None = None
"""Path to the articulation root prim under the :attr:`prim_path`. Defaults to None, in which case the class
will search for a prim with the USD ArticulationRootAPI on it.
This path should be relative to the :attr:`prim_path` of the asset. If the asset is loaded from a USD file,
this path should be relative to the root of the USD stage. For instance, if the loaded USD file at :attr:`prim_path`
contains two articulations, one at `/robot1` and another at `/robot2`, and you want to use `robot2`,
then you should set this to `/robot2`.
The path must start with a slash (`/`).
"""
init_state: InitialStateCfg = InitialStateCfg()
"""Initial state of the articulated object. Defaults to identity pose with zero velocity and zero joint state."""
soft_joint_pos_limit_factor: float = 1.0
"""Fraction specifying the range of joint position limits (parsed from the asset) to use. Defaults to 1.0.
The soft joint position limits are scaled by this factor to specify a safety region within the simulated
joint position limits. This isn't used by the simulation, but is useful for learning agents to prevent the joint
positions from violating the limits, such as for termination conditions.
The soft joint position limits are accessible through the :attr:`ArticulationData.soft_joint_pos_limits` attribute.
"""
actuators: dict[str, ActuatorBaseCfg] = MISSING
"""Actuators for the robot with corresponding joint names."""
actuator_value_resolution_debug_print = False
"""Print the resolution of actuator final value when input cfg is different from USD value, Defaults to False
"""