Source code for adam.model.kindyn_mixin

from __future__ import annotations

from typing import Any


[docs] class KinDynFactoryMixin: """Shared helpers to instantiate KinDyn* classes from different model sources.""" @classmethod
[docs] def from_urdf(cls: type[KinDynFactoryMixin], urdfstring: Any, *args, **kwargs): """Instantiate using a URDF path/string. Args: urdfstring (str): path/string of a URDF Returns: KinDynFactoryMixin: An instance of the class initialized with the provided URDF and arguments. """ return cls(urdfstring, *args, **kwargs)
@classmethod
[docs] def from_mujoco_model( cls: type[KinDynFactoryMixin], mujoco_model: Any, use_mujoco_actuators: bool = False, *args, **kwargs, ): """Instantiate using a MuJoCo model. Args: mujoco_model (MjModel): MuJoCo model instance use_mujoco_actuators (bool): If True, use the names of joints under the <actuator> tags in the MuJoCo XML as joint names (i.e., set 'joints_name_list' to actuator joint names). This is useful when you want the KinDyn* instance to use actuator joint names instead of the default joint names in the xml. Default is False. Returns: KinDynFactoryMixin: An instance of the class initialized with the provided MuJoCo model """ if use_mujoco_actuators: # use as joint names the names of joints under the <actuator> tags in the mujoco xml actuator_names = [ mujoco_model.actuator(a).name for a in range(mujoco_model.nu) ] kwargs.setdefault("joints_name_list", actuator_names) return cls(mujoco_model, *args, **kwargs)