Source code for isaaclab.actuators.actuator_pd_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
from dataclasses import MISSING
from typing import TYPE_CHECKING
from isaaclab.utils import configclass
from .actuator_base_cfg import ActuatorBaseCfg
if TYPE_CHECKING:
from .actuator_pd import DCMotor, DelayedPDActuator, IdealPDActuator, ImplicitActuator, RemotizedPDActuator
"""
Implicit Actuator Models.
"""
[docs]
@configclass
class ImplicitActuatorCfg(ActuatorBaseCfg):
"""Configuration for an implicit actuator.
Note:
The PD control is handled implicitly by the simulation.
"""
class_type: type["ImplicitActuator"] | str = "{DIR}.actuator_pd:ImplicitActuator"
"""
Explicit Actuator Models.
"""
[docs]
@configclass
class IdealPDActuatorCfg(ActuatorBaseCfg):
"""Configuration for an ideal PD actuator."""
class_type: type["IdealPDActuator"] | str = "{DIR}.actuator_pd:IdealPDActuator"
[docs]
@configclass
class DCMotorCfg(IdealPDActuatorCfg):
"""Configuration for direct control (DC) motor actuator model."""
class_type: type["DCMotor"] | str = "{DIR}.actuator_pd:DCMotor"
saturation_effort: dict[str, float] | float = MISSING
"""Peak motor force/torque of the electric DC motor [N or N·m, depending on joint type].
The motor's stall torque reflected at the joint, i.e. the torque produced at zero speed.
Joints in the same group that sit behind different gear reductions need different values,
so this accepts a joint-name-pattern dictionary as well as a scalar.
"""
[docs]
@configclass
class DelayedPDActuatorCfg(IdealPDActuatorCfg):
"""Configuration for a delayed PD actuator."""
class_type: type["DelayedPDActuator"] | str = "{DIR}.actuator_pd:DelayedPDActuator"
min_delay: int = 0
"""Minimum number of physics time-steps with which the actuator command may be delayed. Defaults to 0."""
max_delay: int = 0
"""Maximum number of physics time-steps with which the actuator command may be delayed. Defaults to 0."""
[docs]
@configclass
class RemotizedPDActuatorCfg(DelayedPDActuatorCfg):
"""Configuration for a remotized PD actuator.
Note:
The torque output limits for this actuator is derived from a linear interpolation of a lookup table
in :attr:`joint_parameter_lookup`. This table describes the relationship between joint angles and
the output torques.
"""
class_type: type["RemotizedPDActuator"] | str = "{DIR}.actuator_pd:RemotizedPDActuator"
joint_parameter_lookup: list[list[float]] = MISSING
"""Joint parameter lookup table. Shape is (num_lookup_points, 3).
This tensor describes the relationship between the joint angle (rad), the transmission ratio (in/out),
and the output torque (N*m). The table is used to interpolate the output torque based on the joint angle.
"""