mani_skill.utils.structs.link ============================= .. py:module:: mani_skill.utils.structs.link Classes ------- .. autoapisummary:: mani_skill.utils.structs.link.Link Module Contents --------------- .. py:class:: Link Bases: :py:obj:`mani_skill.utils.structs.base.PhysxRigidBodyComponentStruct`\ [\ :py:obj:`sapien.physx.PhysxArticulationLinkComponent`\ ] Wrapper around physx.PhysxArticulationLinkComponent objects .. py:method:: __hash__() .. py:method:: __repr__() .. py:method:: __str__() .. py:method:: bbox(filter) .. py:method:: create(physx_links, scene, scene_idxs) :classmethod: .. py:method:: generate_mesh(filter, mesh_name) Generates mesh objects (trimesh.Trimesh) for each managed physx link given a filter and saves them to self.meshes[mesh_name] in addition to returning them here. .. py:method:: get_articulation() .. py:method:: get_index() .. py:method:: get_joint() .. py:method:: get_name() .. py:method:: get_visual_meshes(to_world_frame = True, first_only = False) Returns the visual mesh of each managed link object. Note results of this are not cached or optimized at the moment so this function can be slow if called too often .. py:method:: merge(links, name = None) :classmethod: .. py:method:: set_collision_group(group, value) .. py:method:: set_collision_group_bit(group, bit_idx, bit) Set's a specific collision group bit for all collision shapes in all parallel actors :param group: the collision group to set the bit for. Typically you only need to use group 2 to disable collision checks between links to enable faster simulation. :type group: int :param bit_idx: the bit index to set :type bit_idx: int :param bit: the bit value to set. Must be 1/0 or True/False. :type bit: int | bool .. py:method:: set_pose(arg1) .. py:attribute:: articulation :type: mani_skill.utils.structs.Articulation :value: None the articulation that this link is a part of. If this is None, most likely this link object is a view/merged link object in which case there is no one articulation that can be referenced easily .. py:property:: index :type: torch.Tensor The indexes of the managed link objects in their respective articulations. NOTE that these do not correspond with position in the qpos and qvel of articulations. For that index use index_q .. py:property:: is_root :type: torch.Tensor .. py:attribute:: joint :type: mani_skill.utils.structs.articulation_joint.ArticulationJoint :value: None the joint of which this link is a child of. If this is a view/merged link then this joint is also a view/merged joint .. py:attribute:: merged :type: bool :value: False whether this link is result of Link.merge or not .. py:attribute:: meshes :type: dict[str, list[trimesh.Trimesh]] map from user-defined mesh groups (e.g. "handle" meshes for cabinets) to a list of trimesh.Trimesh objects corresponding to each physx link object managed here .. py:attribute:: name :type: str :value: None .. py:property:: per_scene_id :type: torch.Tensor Returns a int32 torch tensor of the link level segmentation ID for each managed link object. .. py:property:: pose :type: mani_skill.utils.structs.pose.Pose .. py:property:: render_shapes Returns each managed link objects render shape list (a list of lists)