Source code for brom_drake.utils.puppetmaker.puppet_signature

from dataclasses import dataclass
from pydrake.all import (
    ModelInstanceIndex,
    Joint,
    JointActuator
)
from typing import List

[docs] @dataclass class PuppeteerJointSignature: joint: Joint joint_actuator: JointActuator
[docs] @dataclass class AllJointSignatures: prismatic: List[PuppeteerJointSignature] revolute: List[PuppeteerJointSignature] @property def n_joints(self) -> int: return len(self.prismatic) + len(self.revolute)
[docs] @dataclass class PuppetSignature: name: str model_instance_index: ModelInstanceIndex prismatic_ghost_bodies: List[ModelInstanceIndex] revolute_ghost_bodies: List[ModelInstanceIndex] joints: AllJointSignatures @property def all_joint_actuators(self) -> List[JointActuator]: return [sig.joint_actuator for sig in self.joints.prismatic + self.joints.revolute] @property def all_models(self) -> List[ModelInstanceIndex]: return self.prismatic_ghost_bodies + self.revolute_ghost_bodies + [self.model_instance_index] @property def n_joints(self) -> int: return self.joints.n_joints @property def n_models(self) -> int: return len(self.all_models)